Выгрузка контрагентов из 1С:Предприятие — одна из самых востребованных операций среди бухгалтеров, менеджеров по продажам и IT-специалистов. Без этого не обойтись при миграции на новую версию программы, интеграции с CRM, подготовке отчетности для налоговой или просто для резервного копирования данных. Однако универсального решения нет: методы выгрузки зависят от конфигурации 1С (Бухгалтерия 3.0, УТ 11, ERP 2.5), формата выходного файла (Excel, XML, JSON) и даже от версии платформы (8.3.20+ имеет особенности работы с внешними источниками).
В этой статье мы разберем 5 рабочих способов выгрузки контрагентов — от стандартных инструментов 1С до программного кода для автоматизации. Вы узнаете, как избежать типичных ошибок (например, потери реквизитов или дублирования записей), какие настройки влияют на результат, и что делать, если выгрузка "зависает" на больших базах. Особое внимание уделим обмену данными между разными конфигурациями 1С — это частая головная боль при переходе с УТ 10.3 на ERP 2.5 или при объединении нескольких баз.
Если вам нужно срочно выгрузить список контрагентов для отчета в налоговую или банк, начните с первого способа (экспорт в Excel через стандартный отчет). Для регулярного обмена данными с сайтом или CRM пригодится третий раздел про выгрузку в XML. А если вы разработчик или админ, не пропустите пятый способ — там разобраны скрипты на 1С:Предприятие для автоматизации.
1. Стандартный экспорт в Excel через отчет "Список контрагентов"
Самый простой и быстрый метод, который работает во всех типовых конфигурациях (1С:Бухгалтерия 3.0, Управление торговлей 11, ERP 2.0). Подходит для разовых задач, когда нужно получить таблицу с основными реквизитами (название, ИНН, КПП, адрес) без углубленной детализации.
Чтобы выгрузить данные:
- 📊 Откройте раздел
Справочники → Контрагенты(в Бухгалтерии 3.0 путь может отличаться:Покупки и продажи → Контрагенты). - 🔍 При необходимости отфильтруйте список по группе, типу (поставщик/покупатель) или статусу.
- 📥 Нажмите кнопку
Ещё → Вывести список(илиОтчеты → Список контрагентовв старых версиях). - 🖥️ В открывшемся отчете нажмите
Ещё → Выгрузитьи выберите форматExcel (.xlsx).
⚠️ Внимание: В некоторых конфигурациях (например, УТ 10.3) стандартный отчет не выгружает банковские реквизиты и контактные лица. Если они нужны, используйте способ №2 или №3.
Отключены ли фильтры (иначе выгрузится не полный список)|
Указан ли нужный период (актуально для отчетов с датами)|
Достаточно ли прав у пользователя (требуется роль "Полные права" или "Администрирование")|
Свободно ли место на диске (большие базы могут создать файл >100 МБ)
-->
Если кнопка Выгрузить отсутствует, значит в вашей конфигурации отключен механизм Управляемые формы. В этом случае:
- Перейдите в
Все функции(кнопка в правом верхнем углу). - Найдите отчет
СписокКонтрагентови откройте его. - В меню отчета выберите
Файл → Сохранить как....
2. Выгрузка через "Универсальный обмен данными" (XML, JSON, DBF)
Этот метод подходит для регулярного обмена между разными базами 1С или интеграции с внешними системами (например, Битрикс24, МойСклад). Он позволяет выгрузить не только основные реквизиты, но и историю изменений, договоры, счета и другие связанные объекты.
Инструкция для 1С:Предприятие 8.3:
- Откройте
Администрирование → Обмен данными → Универсальный обмен данными. - Создайте новый обмен, выбрав тип
Выгрузка данных. - В настройках укажите:
- 📁 Каталог выгрузки (например,
C:\Export\Контрагенты) - 📄 Формат файла —
XML(рекомендуется) илиJSON - 🔄 Объекты для выгрузки — отметьте
Справочник.Контрагентыи связанные справочники (БанковскиеСчета,КонтактнаяИнформация)
- 📁 Каталог выгрузки (например,
- Запустите выгрузку кнопкой
Выполнить. - 🎯 Фильтрацию по любым реквизитам (дата создания, ответственный менеджер, регион).
- 📊 Структуру выходного файла (переименование колонок, объединение полей).
- 🔄 Автоматизацию (выгрузка по расписанию или при событии).
⚠️ Внимание: Если выгружаете данные для 1С:ERP или 1С:КА 2.4, проверьте соответствие структуры XML целевой конфигурации. Например, в ERP 2.5 поле ЮрФизЛицо обязательно для заполнения, а в Бухгалтерии 3.0 его может не быть.
| Формат файла | Плюсы | Минусы | Когда использовать |
|---|---|---|---|
| XML | Сохраняет иерархию данных, поддерживает историю изменений | Большой размер файла, сложно редактировать вручную | Обмен между базами 1С, интеграция с CRM |
| JSON | Компактнее XML, удобен для веб-сервисов | Не все конфигурации поддерживают выгрузку в JSON | API-интеграции, обмен с современными системами |
| DBF | Простота, совместимость со старыми системами | Ограниченный набор полей, нет поддержки Unicode | Обмен с устаревшим ПО (например, 1С 7.7) |
3. Выгрузка через внешнюю обработку (для сложных задач)
Если стандартные инструменты не подходят (например, нужно выгрузить только активных контрагентов с определенным видом договора), поможет внешняя обработка. Это гибкий метод, который позволяет настроить:
Где взять обработку:
- Скачать готовые решения с сайтов:
infostart.ru(поиск по запросу "выгрузка контрагентов")1c-style.ru(раздел "Обработки для обмена данными")
1С:Предприятие).Пример кода для простой выгрузки в Excel через обработку:
Процедура ВыгрузитьВExcel(Команда)
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Наименование");
Таблица.Колонки.Добавить("ИНН");
Таблица.Колонки.Добавить("Адрес");
Выборка = Справочники.Контрагенты.Выбрать();
Пока Выборка.Следующий() Цикл
Строка = Таблица.Добавить();
Строка.Наименование = Выборка.Наименование;
Строка.ИНН = Выборка.ИНН;
Строка.Адрес = Выборка.ЮрАдрес.Представление();
КонецЦикла;
Экспорт = Новый ЭкспортВExcel;
Экспорт.Выгрузить(Таблица, "C:\Export\Контрагенты.xlsx");
КонецПроцедуры
Перед использованием внешней обработки проверьте её на тестовой базе! Некоторые обработки могут изменять данные в справочнике (например, добавлять пометки удаления).
4. Выгрузка через COM-соединение (для интеграции с Excel, Word, Access)
Этот метод позволяет автоматически обновлять данные в внешних программах (например, еженедельно актуализировать список контрагентов в Excel-отчете для руководства). Подходит для пользователей, которые работают с Microsoft Office и хотят избежать ручного импорта/экспорта.
Пошаговая инструкция:
- Откройте Excel и нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте следующий код (предварительно настройте путь к базе 1С и параметры подключения):
- 🔌 Установить драйвер ODBC для 1С (идет в комплекте с платформой).
- 🔐 Настроить права доступа в 1С для пользователя, от имени которого выполняется подключение.
- 🛡️ Отключить блокировку внешних соединений в настройках 1С:Предприятия (раздел
Администрирование → Настройки программы → Безопасность). - 🤖 Запускать выгрузку по расписанию (например, каждый день в 3:00).
- 🔗 Интегрироваться с облачными сервисами (Google Sheets, Yandex Disk).
- 📦 Выгружать данные в нестандартные форматы (например, CSV для 1С:УНФ).
- 🔑 Настроить аутентификацию (обычно используется
Basic AuthилиOAuth 2.0). - 🔒 Включить HTTPS (обмен данными по
HTTPнебезопасен!). - 📋 Ограничить права доступа для API-пользователя (например, только чтение справочника
Контрагенты).
Sub ВыгрузитьКонтрагентовИз1С()
Dim Conn, RS, i As Integer
Set Conn = CreateObject("ADODB.Connection")
Conn.Open "Driver={1C:Enterprise 8.3};Location=srv1c\base;Usr=Администратор;Pwd=;"
Set RS = Conn.Execute("ВЫБРАТЬ Наименование, ИНН, КПП ИЗ Справочник.Контрагенты")
For i = 2 To RS.RecordCount + 1
Cells(i, 1) = RS!Наименование
Cells(i, 2) = RS!ИНН
Cells(i, 3) = RS!КПП
RS.MoveNext
Next i
Conn.Close
End Sub
⚠️ Внимание: Для работы этого метода необходимо:
Что делать, если COM-соединение не работает?
1. Проверьте, запущена ли 1С в режиме предприятия (не конфигуратора).
2. Убедитесь, что в настройках Excel разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью).
3. Если используется 64-битная версия Office, установите 64-битный драйвер ODBC для 1С (и наоборот).
4. В некоторых случаях помогает переустановка компоненты 1C:Enterprise 8.3 COM Connector.
5. Программная выгрузка через скрипты (1С:Предприятие + PowerShell/Python)
Для IT-специалистов и разработчиков, которые нуждаются в максимальной автоматизации, подойдет выгрузка через скрипты. Этот метод позволяет:
Пример скрипта на PowerShell для выгрузки контрагентов в CSV:
$1CPath = "C:\Program Files\1cv8\8.3.20.1549\bin\1cv8.exe"
$BasePath = "C:\Bases\Trade"
$User = "Администратор"
$Password = ""
$OutputFile = "C:\Export\contractors_$(Get-Date -Format 'yyyyMMdd').csv"
& $1CPath DESIGNER /S "$BasePath" /N $User /P $Password /Execute "
Запрос = Новый Запрос;
Запрос.Текст = ''ВЫБРАТЬ
| Контрагенты.Наименование КАК Наименование,
| Контрагенты.ИНН КАК ИНН,
| Контрагенты.КПП КАК КПП
|ИЗ
| Справочник.Контрагенты КАК Контрагенты'';
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Текст = Новый ЗаписьТекста($OutputFile, КодировкаТекста.UTF8);
Пока Выборка.Следующий() Цикл
Текст.ЗаписатьСтроку(СтрШаблон("""%1"",""%2"",""%3""",
Выборка.Наименование, Выборка.ИНН, Выборка.КПП));
КонецЦикла;
Текст.Закрыть();"
Важно: При выгрузке больших баз (более 10 000 контрагентов) разбейте запрос на пакеты по 1 000 записей, чтобы избежать ошибки переполнения памяти.
Для автоматизации выгрузки используйте Планировщик заданий Windows (taskschd.msc). Создайте задачу, которая запускает PowerShell-скрипт ежедневно в нерабочее время.
6. Выгрузка через веб-сервисы и REST API (для облачных решений)
Если ваша 1С размещена в облаке (1С:Fresh, 1С:Линк) или интегрирована с 1С:EDT, можно использовать веб-сервисы или REST API для выгрузки данных. Это актуально для компаний, которые работают с битрикс24, amoCRM или другими SaaS-решениями.
Пример запроса к REST API 1С:Предприятия 8.3.20+:
POST /hs/ExChange/Contractors HTTP/1.1
Host: your-1c-server.ru
Content-Type: application/json
Authorization: Basic base64(user:password)
{
"filter": {
"active": true,
"dateFrom": "2023-01-01"
},
"fields": ["name", "inn", "kpp", "address", "phones"]
}
Ответ будет в формате JSON:
{
"data": [
{
"name": "ООО Ромашка",
"inn": "1234567890",
"kpp": "123456789",
"address": "г. Москва, ул. Ленина, д. 1",
"phones": ["+7(495)123-45-67"]
},
{...}
],
"total": 42
}
⚠️ Внимание: Для работы с API необходимо:
Частые ошибки и их решения
Даже при правильной настройке выгрузки могут возникать проблемы. Вот TOP-5 ошибок и способы их исправления:
| Ошибка | Причина | Решение |
|---|---|---|
Недостаточно прав для выполнения операции |
У пользователя нет роли "Администрирование" или "Выгрузка данных" | Назначьте роль в Администрирование → Пользователи или выполните выгрузку от имени администратора |
Файл не найден (C:\Export\...) |
Не существует указанной папки или нет прав на запись | Создайте папку вручную или укажите существующий путь (например, %TEMP%) |
Ошибка при записи в файл XML: недопустимый символ |
В наименовании контрагента есть спецсимволы (&, <, >) | Используйте функцию СтрЗаменить() для экранирования символов или выгружайте в CSV |
Превышен лимит памяти |
Слишком большой объем данных (например, история изменений за 10 лет) | Разбейте выгрузку на части по датам или группам контрагентов |
Не найден объект метаданных "Контрагенты" |
Опечатка в имени справочника или другая локализация 1С | Проверьте точное имя справочника в Конфигураторе (Объекты → Справочники) |
Если ошибка не исчезает, проверьте журнал регистрации (Администрирование → Журнал регистрации) — там может быть подробное описание проблемы.
FAQ: Ответы на частые вопросы
Можно ли выгрузить контрагентов вместе с историями взаиморасчетов?
Да, но не через стандартный отчет. Используйте:
- Универсальный обмен данными (способ №2) — отметьте галочками справочники
ДоговорыКонтрагентовиРасчетыСКонтрагентами. - Внешнюю обработку (способ №3) — например,
"Выгрузка взаиморасчетов с контрагентами"с Инфостарта.
В результате получите файл с детализацией по каждому контрагенту: остатки на счетах, даты последних операций, суммы дебетовой/кредитовой задолженности.
Как выгрузить контрагентов с группировкой по регионам или типам?
Используйте отчет "Анализ контрагентов":
- Перейдите в
Отчеты → Анализ контрагентов. - В настройках отчета добавьте группировку по полю
РегионилиВидКонтрагента. - Экспортируйте результат в Excel через кнопку
Выгрузить.
Если нужна более сложная группировка (например, по менеджерам + регионам), напишите запрос на языке 1С и выгрузите данные через Конфигуратор.
Почему в выгруженном файле пустые ячейки вместо ИНН/КПП?
Это типичная проблема при выгрузке через стандартный отчет (способ №1). Причины:
- В справочнике
Контрагентыне заполнены реквизиты ИНН/КПП. - В настройках отчета отключены колонки с этими полями.
- Контрагенты являются физическими лицами (у них нет КПП).
Решение: проверьте заполненность реквизитов непосредственно в справочнике Контрагенты или используйте универсальный обмен (способ №2), где можно явно указать выгружаемые поля.
Как автоматизировать выгрузку контрагентов еженедельно?
Варианты автоматизации:
- Планировщик заданий Windows:
- Создайте задачу, которая запускает PowerShell-скрипт (способ №5) или внешнюю обработку (способ №3).
- Установите триггер на нужное время (например, каждую субботу в 23:00).
- В Конфигураторе создайте регламентное задание с вызовом процедуры выгрузки.
- Настройте расписание в
Администрирование → Регламентные задания.
- Настройте вебхук, который будет отправлять данные на email или в облачное хранилище.
Для надежности комбинируйте автоматизацию с проверкой результата: например, скрипт может отправлять уведомление на почту, если файл не создан или пуст.
Можно ли выгрузить контрагентов из 1С 7.7 в 1С 8.3?
Да, но с оговорками:
- Используйте формат DBF — он поддерживается обеими версиями.
- В 1С 7.7 выгрузите данные через
Сервис → Обмен данными → Выгрузка в DBF. - В 1С 8.3 загрузите файл через
Администрирование → Загрузка данных из DBF.
⚠️ Внимание: Структура справочников в 7.7 и 8.3 отличается! Возможно, потребуется ручная доработка файла (например, приведение наименований полей к единому виду). Для сложных случаев используйте конвертацию данных через 1С:Конвертацию данных 2.0.