Выгрузка контрагентов из 1С:Предприятие — одна из самых востребованных операций среди бухгалтеров, менеджеров по продажам и IT-специалистов. Без этого не обойтись при миграции на новую версию программы, интеграции с CRM, подготовке отчетности для налоговой или просто для резервного копирования данных. Однако универсального решения нет: методы выгрузки зависят от конфигурации 1С (Бухгалтерия 3.0, УТ 11, ERP 2.5), формата выходного файла (Excel, XML, JSON) и даже от версии платформы (8.3.20+ имеет особенности работы с внешними источниками).

В этой статье мы разберем 5 рабочих способов выгрузки контрагентов — от стандартных инструментов до программного кода для автоматизации. Вы узнаете, как избежать типичных ошибок (например, потери реквизитов или дублирования записей), какие настройки влияют на результат, и что делать, если выгрузка "зависает" на больших базах. Особое внимание уделим обмену данными между разными конфигурациями 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 МБ)

-->

Если кнопка Выгрузить отсутствует, значит в вашей конфигурации отключен механизм Управляемые формы. В этом случае:

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

2. Выгрузка через "Универсальный обмен данными" (XML, JSON, DBF)

Этот метод подходит для регулярного обмена между разными базами 1С или интеграции с внешними системами (например, Битрикс24, МойСклад). Он позволяет выгрузить не только основные реквизиты, но и историю изменений, договоры, счета и другие связанные объекты.

Инструкция для 1С:Предприятие 8.3:

  1. Откройте Администрирование → Обмен данными → Универсальный обмен данными.
  2. Создайте новый обмен, выбрав тип Выгрузка данных.
  3. В настройках укажите:
    • 📁 Каталог выгрузки (например, C:\Export\Контрагенты)
    • 📄 Формат файлаXML (рекомендуется) или JSON
    • 🔄 Объекты для выгрузки — отметьте Справочник.Контрагенты и связанные справочники (БанковскиеСчета, КонтактнаяИнформация)
  4. Запустите выгрузку кнопкой Выполнить.
  5. ⚠️ Внимание: Если выгружаете данные для 1С:ERP или 1С:КА 2.4, проверьте соответствие структуры XML целевой конфигурации. Например, в ERP 2.5 поле ЮрФизЛицо обязательно для заполнения, а в Бухгалтерии 3.0 его может не быть.

    Формат файла Плюсы Минусы Когда использовать
    XML Сохраняет иерархию данных, поддерживает историю изменений Большой размер файла, сложно редактировать вручную Обмен между базами 1С, интеграция с CRM
    JSON Компактнее XML, удобен для веб-сервисов Не все конфигурации поддерживают выгрузку в JSON API-интеграции, обмен с современными системами
    DBF Простота, совместимость со старыми системами Ограниченный набор полей, нет поддержки Unicode Обмен с устаревшим ПО (например, 1С 7.7)
    📊 Какой формат выгрузки используете чаще?
    Excel
    XML
    JSON
    DBF
    Другой

    3. Выгрузка через внешнюю обработку (для сложных задач)

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

    • 🎯 Фильтрацию по любым реквизитам (дата создания, ответственный менеджер, регион).
    • 📊 Структуру выходного файла (переименование колонок, объединение полей).
    • 🔄 Автоматизацию (выгрузка по расписанию или при событии).

Где взять обработку:

  1. Скачать готовые решения с сайтов:
    • infostart.ru (поиск по запросу "выгрузка контрагентов")
    • 1c-style.ru (раздел "Обработки для обмена данными")
  • Написать самому в Конфигураторе (требуются знания 1С:Предприятие).
  • Заказать у партнера 1С (если нужна уникальная логика).
  • Пример кода для простой выгрузки в Excel через обработку:

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

    Таблица = Новый ТаблицаЗначений;

    Таблица.Колонки.Добавить("Наименование");

    Таблица.Колонки.Добавить("ИНН");

    Таблица.Колонки.Добавить("Адрес");

    Выборка = Справочники.Контрагенты.Выбрать();

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

    Строка = Таблица.Добавить();

    Строка.Наименование = Выборка.Наименование;

    Строка.ИНН = Выборка.ИНН;

    Строка.Адрес = Выборка.ЮрАдрес.Представление();

    КонецЦикла;

    Экспорт = Новый ЭкспортВExcel;

    Экспорт.Выгрузить(Таблица, "C:\Export\Контрагенты.xlsx");

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

    💡

    Перед использованием внешней обработки проверьте её на тестовой базе! Некоторые обработки могут изменять данные в справочнике (например, добавлять пометки удаления).

    4. Выгрузка через COM-соединение (для интеграции с Excel, Word, Access)

    Этот метод позволяет автоматически обновлять данные в внешних программах (например, еженедельно актуализировать список контрагентов в Excel-отчете для руководства). Подходит для пользователей, которые работают с Microsoft Office и хотят избежать ручного импорта/экспорта.

    Пошаговая инструкция:

    1. Откройте Excel и нажмите Alt + F11, чтобы открыть редактор VBA.
    2. Вставьте следующий код (предварительно настройте путь к базе 1С и параметры подключения):
    3. 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

      ⚠️ Внимание: Для работы этого метода необходимо:

      • 🔌 Установить драйвер ODBC для 1С (идет в комплекте с платформой).
      • 🔐 Настроить права доступа в для пользователя, от имени которого выполняется подключение.
      • 🛡️ Отключить блокировку внешних соединений в настройках 1С:Предприятия (раздел Администрирование → Настройки программы → Безопасность).
      Что делать, если COM-соединение не работает?

      1. Проверьте, запущена ли 1С в режиме предприятия (не конфигуратора).

      2. Убедитесь, что в настройках Excel разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью).

      3. Если используется 64-битная версия Office, установите 64-битный драйвер ODBC для 1С (и наоборот).

      4. В некоторых случаях помогает переустановка компоненты 1C:Enterprise 8.3 COM Connector.

      5. Программная выгрузка через скрипты (1С:Предприятие + PowerShell/Python)

      Для IT-специалистов и разработчиков, которые нуждаются в максимальной автоматизации, подойдет выгрузка через скрипты. Этот метод позволяет:

      • 🤖 Запускать выгрузку по расписанию (например, каждый день в 3:00).
      • 🔗 Интегрироваться с облачными сервисами (Google Sheets, Yandex Disk).
      • 📦 Выгружать данные в нестандартные форматы (например, CSV для 1С:УНФ).

      Пример скрипта на 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С: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 необходимо:

      • 🔑 Настроить аутентификацию (обычно используется Basic Auth или OAuth 2.0).
      • 🔒 Включить HTTPS (обмен данными по HTTP небезопасен!).
      • 📋 Ограничить права доступа для API-пользователя (например, только чтение справочника Контрагенты).

    Частые ошибки и их решения

    Даже при правильной настройке выгрузки могут возникать проблемы. Вот TOP-5 ошибок и способы их исправления:

    Ошибка Причина Решение
    Недостаточно прав для выполнения операции У пользователя нет роли "Администрирование" или "Выгрузка данных" Назначьте роль в Администрирование → Пользователи или выполните выгрузку от имени администратора
    Файл не найден (C:\Export\...) Не существует указанной папки или нет прав на запись Создайте папку вручную или укажите существующий путь (например, %TEMP%)
    Ошибка при записи в файл XML: недопустимый символ В наименовании контрагента есть спецсимволы (&, <, >) Используйте функцию СтрЗаменить() для экранирования символов или выгружайте в CSV
    Превышен лимит памяти Слишком большой объем данных (например, история изменений за 10 лет) Разбейте выгрузку на части по датам или группам контрагентов
    Не найден объект метаданных "Контрагенты" Опечатка в имени справочника или другая локализация 1С Проверьте точное имя справочника в Конфигураторе (Объекты → Справочники)

    Если ошибка не исчезает, проверьте журнал регистрации (Администрирование → Журнал регистрации) — там может быть подробное описание проблемы.

    📊 С какой ошибкой выгрузки сталкивались?
    Недостаточно прав
    Файл не найден
    Ошибка XML/JSON
    Превышен лимит памяти
    Другая ошибка
    Никогда не было ошибок

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

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

    Да, но не через стандартный отчет. Используйте:

    • Универсальный обмен данными (способ №2) — отметьте галочками справочники ДоговорыКонтрагентов и РасчетыСКонтрагентами.
    • Внешнюю обработку (способ №3) — например, "Выгрузка взаиморасчетов с контрагентами" с Инфостарта.
    • В результате получите файл с детализацией по каждому контрагенту: остатки на счетах, даты последних операций, суммы дебетовой/кредитовой задолженности.

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

    Используйте отчет "Анализ контрагентов":

    1. Перейдите в Отчеты → Анализ контрагентов.
    2. В настройках отчета добавьте группировку по полю Регион или ВидКонтрагента.
    3. Экспортируйте результат в Excel через кнопку Выгрузить.
    4. Если нужна более сложная группировка (например, по менеджерам + регионам), напишите запрос на языке 1С и выгрузите данные через Конфигуратор.

    Почему в выгруженном файле пустые ячейки вместо ИНН/КПП?

    Это типичная проблема при выгрузке через стандартный отчет (способ №1). Причины:

    • В справочнике Контрагенты не заполнены реквизиты ИНН/КПП.
    • В настройках отчета отключены колонки с этими полями.
    • Контрагенты являются физическими лицами (у них нет КПП).

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

    Как автоматизировать выгрузку контрагентов еженедельно?

    Варианты автоматизации:

    1. Планировщик заданий Windows:
      • Создайте задачу, которая запускает PowerShell-скрипт (способ №5) или внешнюю обработку (способ №3).
      • Установите триггер на нужное время (например, каждую субботу в 23:00).
  • Регламентное задание в 1С:
    • В Конфигураторе создайте регламентное задание с вызовом процедуры выгрузки.
    • Настройте расписание в Администрирование → Регламентные задания.
    • Облачный сервис (например, 1С:Линк):
      • Настройте вебхук, который будет отправлять данные на email или в облачное хранилище.

    Для надежности комбинируйте автоматизацию с проверкой результата: например, скрипт может отправлять уведомление на почту, если файл не создан или пуст.

  • Можно ли выгрузить контрагентов из 1С 7.7 в 1С 8.3?

    Да, но с оговорками:

    • Используйте формат DBF — он поддерживается обеими версиями.
    • В 1С 7.7 выгрузите данные через Сервис → Обмен данными → Выгрузка в DBF.
    • В 1С 8.3 загрузите файл через Администрирование → Загрузка данных из DBF.

    ⚠️ Внимание: Структура справочников в 7.7 и 8.3 отличается! Возможно, потребуется ручная доработка файла (например, приведение наименований полей к единому виду). Для сложных случаев используйте конвертацию данных через 1С:Конвертацию данных 2.0.