Выгрузка справочника контрагентов из 1С — одна из самых востребованных операций при миграции данных, интеграции с CRM, подготовке отчетности или аналитике. Без правильно экспортированных данных о партнерах невозможно синхронизировать учетные системы, загрузить информацию в Битрикс24, amoCRM или другие сервисы. При этом даже опытные пользователи 1С:Предприятие 8.3 сталкиваются с проблемами: данные выгружаются не полностью, нарушается структура или теряются реквизиты.
В этой статье разберем все актуальные способы выгрузки справочника контрагентов, включая ручные методы через интерфейс, автоматизированные обработки и программный код. Особое внимание уделим нюансам экспорта в Excel, XML, JSON и форматы для обмена с другими системами. Материал актуален для конфигураций 1С:Бухгалтерия 3.0, 1С:Управление торговлей 11, 1С:ERP 2.5 и других типовых решений на платформе 8.3.
Если вам нужно не просто скопировать данные, а настроить регулярный обмен с внешними системами — в конце статьи есть раздел про автоматизацию выгрузки через REST API и веб-сервисы. А для тех, кто ищет готовое решение, мы подготовили сравнительную таблицу инструментов с их плюсами и минусами.
1. Подготовка к выгрузке: что нужно проверить перед экспортом
Прежде чем приступать к выгрузке, убедитесь, что справочник контрагентов содержит актуальные и полные данные. Частая ошибка — экспорт неполных записей, из-за чего в целевой системе отсутствуют критичные реквизиты (например, ИНН, КПП или адреса).
Проверьте следующие моменты:
- 🔍 Заполненность обязательных полей: откройте справочник (
Справочники → Контрагенты) и убедитесь, что у всех записей заполненыНаименование,ИНН(для юрлиц),ФИО(для физлиц). Пустые поля могут привести к ошибкам при импорте в другие системы. - 📌 Актуальность данных: удалите или архивируйте неиспользуемых контрагентов (например, с пометкой "Не действует"). Это уменьшит объем выгружаемых данных и ускорит процесс.
- 🔄 Связанные справочники: если в вашей конфигурации контрагенты привязаны к
Договорам,Банковским счетамилиКонтактным лицам, решите, нужны ли эти данные в выгрузке. В некоторых случаях их придется экспортировать отдельно. - 🛡️ Права доступа: убедитесь, что ваша учетная запись в 1С имеет права на чтение справочника
Контрагентыи связанных объектов. При отсутствии прав система может выдать ошибку или выгрузить пустой файл.
Если вы планируете выгружать данные для дальнейшей загрузки в другую систему (например, в CRM или СБИС), уточните требования к формату файла. Некоторые сервисы принимают только XML с определенной структурой, другие — Excel с конкретными столбцами. Например, для Диадок или Контур.Диадок может потребоваться выгрузка в формате EnterpriseData.
⚠️ Внимание: Если вы используете нетиповую конфигурацию 1С с доработками, структуры справочников могут отличаться. В этом случае стандартные обработки выгрузки могут не сработать — потребуется адаптация кода или использование универсальных инструментов вроде 1С:Конвертация данных.
2. Способ 1: Выгрузка в Excel через стандартный отчет
Самый простой способ — экспорт в Excel с помощью встроенного функционала 1С. Он подходит для разовых выгрузок небольших объемов данных (до 10 000 записей). Преимущество метода — не требует программирования и доступен даже пользователям без прав администратора.
Инструкция по шагам:
- Откройте справочник
Контрагентычерез менюСправочники → Контрагенты. - Нажмите кнопку
Еще(илиДействия) в верхней панели и выберитеВывести список.... - В открывшемся окне настройте отображение колонок: добавьте все необходимые реквизиты (например,
ИНН,КПП,Юр. адрес,Телефон). Для этого нажмитеНастройки → Настроить список. - После настройки колонок нажмите
Еще → Выгрузить в Excel(илиСохранить как...в зависимости от версии). - Выберите папку для сохранения и подтвердите экспорт.
Готовый файл .xlsx будет содержать таблицу со всеми выбранными реквизитами. Однако у этого метода есть ограничения:
- 📉 Ограничение по строкам: в некоторых версиях 1С экспорт в
Excelограничен 65 536 строками (старый формат.xls). Для больших справочников используйте формат.xlsxили другие способы. - 🔄 Отсутствие иерархии: если у вас групповые контрагенты (например, "Поставщики → ОАО Ростех"), в
Excelони экспортируются как плоский список без структуры. - 🔧 Нет возможности автоматизации: этот метод требует ручных действий и не подходит для регулярных выгрузок.
Если в выгруженном файле вместо кириллицы отображаются кракозябры, сохраните файл в формате CSV (разделители — запятые) и откройте его через Excel с указанием кодировки UTF-8.
3. Способ 2: Выгрузка через обработку "Универсальный обмен данными"
Для более гибкой выгрузки, особенно если нужны данные в XML или JSON, используйте стандартную обработку Универсальный обмен данными (или Конвертация данных в новых версиях). Этот метод позволяет настроить структуру выгружаемых данных и подходит для интеграции с другими системами.
Как выполнить выгрузку:
- Перейдите в меню
Файл → Открыть...и выберите обработкуUniversalDataExchange.epf(обычно она находится в каталоге установки 1С или в шаблонах конфигурации). - В открывшемся окне выберите
Выгрузка данныхи укажите путь для сохранения файла. - В разделе
Объекты для выгрузкиотметьте галочкойСправочник.Контрагенты. - Нажмите
Выгрузитьи дождитесь завершения процесса.
Результат — файл в формате XML с полной структурой справочника, включая иерархию и все реквизиты. Этот формат подходит для загрузки в другие системы 1С или внешние сервисы через EDI-обмен.
Пример фрагмента выгруженного XML:
<Каталог Объект="Справочник.Контрагенты">
<Элемент Ссылка="Реквизит1">
<Наименование>ООО "Ромашка"</Наименование>
<ИНН>1234567890</ИНН>
<КПП>123456789</КПП>
<ЮрАдрес>г. Москва, ул. Ленина, д. 1</ЮрАдрес>
</Элемент>
</Каталог>
Если вам нужен другой формат (например, JSON), можно воспользоваться внешними конвертерами или написать небольшой скрипт на 1С или Python для преобразования XML.
⚠️ Внимание: Обработка Универсальный обмен данными может отсутствовать в базовых версиях 1С (например, в 1С:Бухгалтерия 3.0 Базовая). В этом случае используйте альтернативные методы или обратитесь к партнеру 1С за доработкой.
4. Способ 3: Выгрузка через запрос и программный код
Для опытных пользователей и программистов 1С самый гибкий способ — написание собственного кода на встроенном языке. Это позволяет выгружать данные в любом формате, фильтровать записи по условиям и автоматизировать процесс. Ниже приведен пример кода для выгрузки справочника контрагентов в 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-сервис в настройках 1С (раздел
Администрирование → Публикация на веб-сервере). - Создать пользователя с правами на чтение справочника
Контрагенты. - Настроить внешнюю систему (например, CRM или ERP) для отправки запросов к API 1С.
Пример запроса к 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С требует прав администратора и доступа к веб-серверу. Если вы используете облачную версию 1С (например, 1С:Фреш), уточните у провайдера возможности настройки API.
6. Способ 5: Использование внешних обработок и расширений
Если стандартные методы не подходят, можно воспользоваться готовыми обработками от партнеров 1С или сообщества. Например:
- 📄 1С:Конвертация данных: универсальный инструмент для обмена данными между разными конфигурациями 1С и внешними системами. Поддерживает сложные правила преобразования данных.
- 🔄 1С:Интеграция: решение для синхронизации с CRM, ERP и другими системами. Включает готовые коннекторы для Битрикс24, amoCRM, МойСклад.
- 🛠️ Универсальный обмен в формате EnterpriseData: обработка для выгрузки/загрузки данных в стандартизированном формате, который понимают многие системы.
Пример работы с 1С:Конвертация данных:
- Установите расширение через
Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. - Создайте новое правило конвертации, указав источник (
Справочник.Контрагенты) и целевой формат (например,ExcelилиXML). - Настройте соответствие полей: сопоставьте реквизиты 1С с колонками в выходном файле.
- Запустите выгрузку и сохраните файл.
Преимущество внешних обработок — они учитывают особенности типовых конфигураций и часто содержат готовые шаблоны для популярных систем обмена. Например, для выгрузки в МойСклад или Диадок уже есть предопределенные настройки, что экономит время.
| Инструмент | Форматы выгрузки | Поддержка автоматического обмена | Сложность настройки |
|---|---|---|---|
| Стандартный экспорт в 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:
- Создайте
.bat-файл, который запускает 1С в режиме предприятия с параметром выполнения вашей обработки выгрузки. - Настройте задачу в
Планировщике задачна ежедневный запуск этого файла.
- Создайте
- ⚙️ Регламентные задания в 1С:
- Создайте обработку с кодом выгрузки.
- Добавьте регламентное задание через
Администрирование → Регламентные задания. - Укажите расписание (например, ежедневно в 23:00).
- 🌐 Облачные сервисы: Если используете 1С:Фреш, настройте автоматизацию через REST API и внешний сервис (например, Zapier или Make).
Можно ли выгрузить историю изменений контрагентов?
Да, но это требует доработок. В стандартных механизмах 1С история изменений (кто и когда редактировал запись) не экспортируется автоматически. Варианты решения