Выгрузка справочника контрагентов из — одна из самых востребованных операций при миграции данных, интеграции с CRM, подготовке отчетности или аналитике. Без правильно экспортированных данных о партнерах невозможно синхронизировать учетные системы, загрузить информацию в Битрикс24, amoCRM или другие сервисы. При этом даже опытные пользователи 1С:Предприятие 8.3 сталкиваются с проблемами: данные выгружаются не полностью, нарушается структура или теряются реквизиты.

В этой статье разберем все актуальные способы выгрузки справочника контрагентов, включая ручные методы через интерфейс, автоматизированные обработки и программный код. Особое внимание уделим нюансам экспорта в Excel, XML, JSON и форматы для обмена с другими системами. Материал актуален для конфигураций 1С:Бухгалтерия 3.0, 1С:Управление торговлей 11, 1С:ERP 2.5 и других типовых решений на платформе 8.3.

Если вам нужно не просто скопировать данные, а настроить регулярный обмен с внешними системами — в конце статьи есть раздел про автоматизацию выгрузки через REST API и веб-сервисы. А для тех, кто ищет готовое решение, мы подготовили сравнительную таблицу инструментов с их плюсами и минусами.

📊 Какую конфигурацию 1С вы используете?
1С:Бухгалтерия 3.0
1С:Управление торговлей 11
1С:ERP 2.5
1С:Зарплата и Управление персоналом
Другую

1. Подготовка к выгрузке: что нужно проверить перед экспортом

Прежде чем приступать к выгрузке, убедитесь, что справочник контрагентов содержит актуальные и полные данные. Частая ошибка — экспорт неполных записей, из-за чего в целевой системе отсутствуют критичные реквизиты (например, ИНН, КПП или адреса).

Проверьте следующие моменты:

  • 🔍 Заполненность обязательных полей: откройте справочник (Справочники → Контрагенты) и убедитесь, что у всех записей заполнены Наименование, ИНН (для юрлиц), ФИО (для физлиц). Пустые поля могут привести к ошибкам при импорте в другие системы.
  • 📌 Актуальность данных: удалите или архивируйте неиспользуемых контрагентов (например, с пометкой "Не действует"). Это уменьшит объем выгружаемых данных и ускорит процесс.
  • 🔄 Связанные справочники: если в вашей конфигурации контрагенты привязаны к Договорам, Банковским счетам или Контактным лицам, решите, нужны ли эти данные в выгрузке. В некоторых случаях их придется экспортировать отдельно.
  • 🛡️ Права доступа: убедитесь, что ваша учетная запись в имеет права на чтение справочника Контрагенты и связанных объектов. При отсутствии прав система может выдать ошибку или выгрузить пустой файл.

Если вы планируете выгружать данные для дальнейшей загрузки в другую систему (например, в CRM или СБИС), уточните требования к формату файла. Некоторые сервисы принимают только XML с определенной структурой, другие — Excel с конкретными столбцами. Например, для Диадок или Контур.Диадок может потребоваться выгрузка в формате EnterpriseData.

⚠️ Внимание: Если вы используете нетиповую конфигурацию с доработками, структуры справочников могут отличаться. В этом случае стандартные обработки выгрузки могут не сработать — потребуется адаптация кода или использование универсальных инструментов вроде 1С:Конвертация данных.

2. Способ 1: Выгрузка в Excel через стандартный отчет

Самый простой способ — экспорт в Excel с помощью встроенного функционала . Он подходит для разовых выгрузок небольших объемов данных (до 10 000 записей). Преимущество метода — не требует программирования и доступен даже пользователям без прав администратора.

Инструкция по шагам:

  1. Откройте справочник Контрагенты через меню Справочники → Контрагенты.
  2. Нажмите кнопку Еще (или Действия) в верхней панели и выберите Вывести список....
  3. В открывшемся окне настройте отображение колонок: добавьте все необходимые реквизиты (например, ИНН, КПП, Юр. адрес, Телефон). Для этого нажмите Настройки → Настроить список.
  4. После настройки колонок нажмите Еще → Выгрузить в Excel (или Сохранить как... в зависимости от версии).
  5. Выберите папку для сохранения и подтвердите экспорт.

Готовый файл .xlsx будет содержать таблицу со всеми выбранными реквизитами. Однако у этого метода есть ограничения:

  • 📉 Ограничение по строкам: в некоторых версиях экспорт в Excel ограничен 65 536 строками (старый формат .xls). Для больших справочников используйте формат .xlsx или другие способы.
  • 🔄 Отсутствие иерархии: если у вас групповые контрагенты (например, "Поставщики → ОАО Ростех"), в Excel они экспортируются как плоский список без структуры.
  • 🔧 Нет возможности автоматизации: этот метод требует ручных действий и не подходит для регулярных выгрузок.
💡

Если в выгруженном файле вместо кириллицы отображаются кракозябры, сохраните файл в формате CSV (разделители — запятые) и откройте его через Excel с указанием кодировки UTF-8.

3. Способ 2: Выгрузка через обработку "Универсальный обмен данными"

Для более гибкой выгрузки, особенно если нужны данные в XML или JSON, используйте стандартную обработку Универсальный обмен данными (или Конвертация данных в новых версиях). Этот метод позволяет настроить структуру выгружаемых данных и подходит для интеграции с другими системами.

Как выполнить выгрузку:

  1. Перейдите в меню Файл → Открыть... и выберите обработку UniversalDataExchange.epf (обычно она находится в каталоге установки или в шаблонах конфигурации).
  2. В открывшемся окне выберите Выгрузка данных и укажите путь для сохранения файла.
  3. В разделе Объекты для выгрузки отметьте галочкой Справочник.Контрагенты.
  4. Нажмите Выгрузить и дождитесь завершения процесса.

Результат — файл в формате XML с полной структурой справочника, включая иерархию и все реквизиты. Этот формат подходит для загрузки в другие системы или внешние сервисы через EDI-обмен.

Пример фрагмента выгруженного XML:

<Каталог Объект="Справочник.Контрагенты">

<Элемент Ссылка="Реквизит1">

<Наименование>ООО "Ромашка"</Наименование>

<ИНН>1234567890</ИНН>

<КПП>123456789</КПП>

<ЮрАдрес>г. Москва, ул. Ленина, д. 1</ЮрАдрес>

</Элемент>

</Каталог>

Если вам нужен другой формат (например, JSON), можно воспользоваться внешними конвертерами или написать небольшой скрипт на или Python для преобразования XML.

⚠️ Внимание: Обработка Универсальный обмен данными может отсутствовать в базовых версиях (например, в 1С:Бухгалтерия 3.0 Базовая). В этом случае используйте альтернативные методы или обратитесь к партнеру за доработкой.

4. Способ 3: Выгрузка через запрос и программный код

Для опытных пользователей и программистов самый гибкий способ — написание собственного кода на встроенном языке. Это позволяет выгружать данные в любом формате, фильтровать записи по условиям и автоматизировать процесс. Ниже приведен пример кода для выгрузки справочника контрагентов в Excel и JSON.

Пример 1: Выгрузка в Excel через COMОбъект

Процедура ВыгрузитьКонтрагентовВExcel()

// Создаем объект Excel

Excel = Новый COMОбъект("Excel.Application");

Книга = Excel.Workbooks.Add();

Лист = Книга.Worksheets(1);

// Заголовки столбцов

Лист.Cells(1, 1).Value = "Наименование";

Лист.Cells(1, 2).Value = "ИНН";

Лист.Cells(1, 3).Value = "КПП";

Лист.Cells(1, 4).Value = "Адрес";

// Выбираем данные из справочника

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Контрагенты.Ссылка КАК Ссылка,

| Контрагенты.Наименование КАК Наименование,

| Контрагенты.ИНН КАК ИНН,

| Контрагенты.КПП КАК КПП,

| Контрагенты.ЮрАдрес КАК Адрес

|ИЗ

| Справочник.Контрагенты КАК Контрагенты";

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

// Заполняем данные

НомерСтроки = 2;

Пока Выборка.Следующий() Цикл

Лист.Cells(НомерСтроки, 1).Value = Выборка.Наименование;

Лист.Cells(НомерСтроки, 2).Value = Выборка.ИНН;

Лист.Cells(НомерСтроки, 3).Value = Выборка.КПП;

Лист.Cells(НомерСтроки, 4).Value = Выборка.Адрес;

НомерСтроки = НомерСтроки + 1;

КонецЦикла;

// Сохраняем файл

ПутьКФайлу = "C:\Temp\Контрагенты.xlsx";

Книга.SaveAs(ПутьКФайлу);

Excel.Quit();

КонецПроцедуры

Пример 2: Выгрузка в JSON

Функция ВыгрузитьКонтрагентовВJSON()

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Контрагенты.Наименование КАК Наименование,

| Контрагенты.ИНН КАК ИНН,

| Контрагенты.КПП КАК КПП

|ИЗ

| Справочник.Контрагенты КАК Контрагенты";

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

МассивКонтрагентов = Новый Массив();

Пока Выборка.Следующий() Цикл

Элемент = Новый Структура();

Элемент.Вставить("Наименование", Выборка.Наименование);

Элемент.Вставить("ИНН", Выборка.ИНН);

Элемент.Вставить("КПП", Выборка.КПП);

МассивКонтрагентов.Добавить(Элемент);

КонецЦикла;

ЗаписьJSON = Новый ЗаписьJSON;

ЗаписьJSON.УстановитьСтроку();

ЗаписьJSON.ЗаписатьJSON(МассивКонтрагентов);

ТекстJSON = ЗаписьJSON.Закрыть();

// Сохраняем в файл

ТекстJSON.Записать("C:\Temp\Контрагенты.json");

КонецФункции

Эти примеры можно адаптировать под свои нужды: добавить фильтрацию (например, выгружать только активных контрагентов), включить дополнительные реквизиты или изменить формат выходного файла.

Добавить обработку ошибок (try-catch)|Проверить права на запись в папку|Указать корректные пути к файлам|Протестировать на копии базы

-->

5. Способ 4: Автоматизированная выгрузка через REST API

Если вам нужна регулярная выгрузка контрагентов (например, ежедневно или по расписанию), наилучшее решение — использование REST API или веб-сервисов. Этот метод требует настройки на стороне и внешней системы, но позволяет полностью автоматизировать обмен данными.

Для настройки потребуется:

  1. Включить OData или REST-сервис в настройках (раздел Администрирование → Публикация на веб-сервере).
  2. Создать пользователя с правами на чтение справочника Контрагенты.
  3. Настроить внешнюю систему (например, CRM или ERP) для отправки запросов к API .

Пример запроса к OData для получения списка контрагентов:

GET /odata/standard.odata/Catalog_Контрагенты?$select=Ref_Key,Description,ИНН,КПП

Host: your-1c-server.ru

Authorization: Basic base64encoded_auth_string

Ответ будет в формате JSON:

{

"value": [

{

"Ref_Key": "a1b2c3d4-5678-90ef-1234-567890abcdef",

"Description": "ООО \"Ромашка\"",

"ИНН": "1234567890",

"КПП": "123456789"

},

{

"Ref_Key": "b2c3d4e5-6789-01fg-2345-678901bcdefg",

"Description": "ИП Иванов И.И.",

"ИНН": "0987654321",

"КПП": null

}

]

}

Преимущества этого метода:

  • 🔄 Автоматизация: выгрузка происходит без участия пользователя по расписанию.
  • 🔒 Безопасность: данные передаются по защищенному протоколу (HTTPS) с аутентификацией.
  • 📊 Гибкость: можно выгружать только измененные записи (дельта-обмен).
⚠️ Внимание: Настройка REST API в требует прав администратора и доступа к веб-серверу. Если вы используете облачную версию (например, 1С:Фреш), уточните у провайдера возможности настройки API.

6. Способ 5: Использование внешних обработок и расширений

Если стандартные методы не подходят, можно воспользоваться готовыми обработками от партнеров или сообщества. Например:

  • 📄 1С:Конвертация данных: универсальный инструмент для обмена данными между разными конфигурациями и внешними системами. Поддерживает сложные правила преобразования данных.
  • 🔄 1С:Интеграция: решение для синхронизации с CRM, ERP и другими системами. Включает готовые коннекторы для Битрикс24, amoCRM, МойСклад.
  • 🛠️ Универсальный обмен в формате EnterpriseData: обработка для выгрузки/загрузки данных в стандартизированном формате, который понимают многие системы.

Пример работы с 1С:Конвертация данных:

  1. Установите расширение через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки.
  2. Создайте новое правило конвертации, указав источник (Справочник.Контрагенты) и целевой формат (например, Excel или XML).
  3. Настройте соответствие полей: сопоставьте реквизиты с колонками в выходном файле.
  4. Запустите выгрузку и сохраните файл.

Преимущество внешних обработок — они учитывают особенности типовых конфигураций и часто содержат готовые шаблоны для популярных систем обмена. Например, для выгрузки в МойСклад или Диадок уже есть предопределенные настройки, что экономит время.

Инструмент Форматы выгрузки Поддержка автоматического обмена Сложность настройки
Стандартный экспорт в Excel XLSX, CSV Нет Низкая
Универсальный обмен данными XML, TXT Да (через файлы) Средняя
Программный код (1С) Excel, JSON, XML, CSV Да (при интеграции с планировщиком) Высокая
REST API / OData JSON, XML Да Высокая
1С:Конвертация данных XML, Excel, EnterpriseData Да Средняя

7. Типичные ошибки и их решение

При выгрузке справочника контрагентов пользователи часто сталкиваются с типичными проблемами. Рассмотрим самые распространенные и способы их устранения.

Ошибка 1: Пустой файл или отсутствие данных

  • 🔹 Причина: Не хватает прав на чтение справочника или применен фильтр, исключающий все записи.
  • 🔧 Решение: Проверьте права пользователя в Администрирование → Пользователи. Убедитесь, что в настройках выгрузки не установлен фильтр (например, по дате или статусу).

Ошибка 2: Кракозябры вместо кириллицы в Excel

  • 🔹 Причина: Неправильная кодировка при сохранении файла.
  • 🔧 Решение: Сохраняйте файл в формате CSV (UTF-8) или используйте Excel для открытия с указанием кодировки. В коде выгрузки явно укажите кодировку: ЗаписьТекста.УстановитьКодировку(КодировкаТекста.UTF8).

Ошибка 3: Ошибка при выгрузке в XML: "Недопустимый символ"

  • 🔹 Причина: В данных есть спецсимволы (&, <, >), которые не экранированы.
  • 🔧 Решение: Используйте функцию СтрЗаменить() для замены спецсимволов на их HTML-эквиваленты или настройте обработку на автоматическое экранирование.

Ошибка 4: Выгружаются не все реквизиты

  • 🔹 Причина: В настройках выгрузки не указаны все необходимые поля.
  • 🔧 Решение: Откройте настройки выгрузки и вручную добавьте недостающие реквизиты. В программном коде проверьте текст запроса — возможно, не все поля указаны в разделе ВЫБРАТЬ.

Ошибка 5: Медленная выгрузка большого справочника

  • 🔹 Причина: Обработка большого объема данных в одном потоке.
  • 🔧 Решение: Разбейте выгрузку на части (пакеты по 1000 записей) или используйте фоновые задания. Для Excel выгружайте данные порциями, чтобы избежать зависания.
Что делать, если выгрузка прерывается с ошибкой "Недостаточно памяти"?

Если при выгрузке большого справочника (более 50 000 записей) появляется ошибка нехватки памяти, попробуйте следующие действия:

1. Закройте все ненужные программы на компьютере.

2. Разбейте выгрузку на части: выгружайте данные порциями (например, по первым буквам наименования).

3. Используйте формат CSV вместо Excel — он менее ресурсоемкий.

4. Если выгружаете через код, добавьте вызов ГлобальныйКонтекст.ОсвободитьПамять() после обработки каждой партии записей.

8. FAQ: Ответы на частые вопросы

Можно ли выгрузить контрагентов вместе с их банковскими счетами и договорами?

Да, но для этого потребуется отдельная настройка. В стандартной выгрузке через Excel или XML связанные справочники (БанковскиеСчета, ДоговорыКонтрагентов) не включаются автоматически. Варианты решения:

  • Используйте обработку 1С:Конвертация данных и настройте правила выгрузки для связанных объектов.
  • Напишите программный код, который последовательно выгружает контрагентов, а затем их банковские счета и договоры в отдельные листы Excel или таблицы в XML.
  • Для REST API настройте отдельные endpoints для каждого справочника и свяжите их по Ссылке или Уникальному идентификатору.
Как выгрузить только активных контрагентов?

Чтобы экспортировать только активных контрагентов, добавьте фильтр в запрос или настройку выгрузки. Примеры:

  • В стандартном отчете: перед выгрузкой примените отбор по полю ПометкаУдаления = Ложь.
  • В коде:
    Запрос.Текст =
    

    "ВЫБРАТЬ ...

    |ГДЕ НЕ Контрагенты.ПометкаУдаления";

  • В обработке "Универсальный обмен": в настройках выгрузки добавьте условие ПометкаУдаления = Ложь.
Поддерживает ли 1С:Фреш (облако) выгрузку контрагентов?

Да, но с ограничениями. В 1С:Фреш доступны следующие способы:

  • Ручная выгрузка в Excel через интерфейс (аналогично локальной версии).
  • Автоматизированная выгрузка через REST API (требуется настройка на стороне 1С:Фреш и внешней системы).
  • Использование готовых интеграций с популярными сервисами (например, МойСклад, Битрикс24) через 1С:Линк.

Обратите внимание: в облачной версии нет доступа к файловой системе сервера, поэтому выгрузка через COMОбъект или сохранение файлов на диск невозможны.

Как автоматизировать выгрузку по расписанию?

Для автоматической выгрузки контрагентов по расписанию используйте один из методов:

  • 🕒 Планировщик задач Windows:
    1. Создайте .bat-файл, который запускает в режиме предприятия с параметром выполнения вашей обработки выгрузки.
    2. Настройте задачу в Планировщике задач на ежедневный запуск этого файла.
  • ⚙️ Регламентные задания в 1С:
    1. Создайте обработку с кодом выгрузки.
    2. Добавьте регламентное задание через Администрирование → Регламентные задания.
    3. Укажите расписание (например, ежедневно в 23:00).
  • 🌐 Облачные сервисы: Если используете 1С:Фреш, настройте автоматизацию через REST API и внешний сервис (например, Zapier или Make).
Можно ли выгрузить историю изменений контрагентов?

Да, но это требует доработок. В стандартных механизмах история изменений (кто и когда редактировал запись) не экспортируется автоматически. Варианты решения