Выгрузка списка контрагентов из 1С в Excel, CSV и XML

· 9 мин

Содержание

Самый быстрый способ — открыть список Контрагенты, нажать Еще → Вывести список… и сохранить результат как файл Excel. Этого хватает, когда нужен просто перечень с наименованием, ИНН и КПП. Если же выгрузку делают регулярно, нужны отборы по группам или полный перенос контрагентов в другую базу — подойдут универсальный отчёт, типовые обработки или выгрузка в XML.

Разберём пять рабочих способов: от команды в один клик до программной выгрузки через встроенный язык. Способы отличаются набором полей, форматом файла и тем, можно ли автоматизировать повтор. Отдельно — что делать, когда в выгруженном CSV вместо русских букв «кракозябры».

Команда «Вывести список» — экспорт за один клик

Работает в любой типовой конфигурации 1С 8.3 на интерфейсе «Такси»: Бухгалтерия, ЗУП, Управление торговлей, УНФ, ERP.

  1. Откройте справочник контрагентов. В Бухгалтерии 3.0 это Справочники → Покупки и продажи → Контрагенты, в УТ 11 — НСИ → Контрагенты.
  2. В командной панели списка нажмите Еще → Вывести список….
  3. В открывшемся окне выберите, куда выводить: Табличный документ (для Excel) или Текстовый документ.
  4. Галочками отметьте нужные колонки — наименование, ИНН, КПП, полное наименование, страна регистрации.
  5. Нажмите ОК — список откроется отдельным документом.
  6. Сохраните его через Главное меню → Файл → Сохранить как… и выберите формат Лист Excel 2007-… (*.xlsx) или CSV (*.csv).

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

Способ хорош скоростью, но выгружает ровно те колонки, что видны в списке и доступны для вывода. Банковские счета, договоры и контактные лица так не достать — для них нужен отчёт или обработка.

Настройка колонок и отборов перед выгрузкой

Чтобы в файл попало именно то, что нужно, список настраивают заранее — тогда «Вывести список » заберёт готовую выборку.

Отбор строк. Нажмите кнопку поиска или настройте отбор через Еще → Настроить список… → Отбор. Примеры условий:

  • только покупатели или только поставщики (по реквизиту, если он заполняется);
  • контрагенты из конкретной группы (папки справочника);
  • по стране регистрации, по признаку «не резидент»;
  • непомеченные на удаление — чтобы в выгрузку не попали удалённые записи.

Колонки. Через Еще → Изменить форму… можно добавить в список дополнительные реквизиты — например, полное наименование или код. То, что видно в списке, попадёт и в выгрузку.

Отбор в списке влияет только на экранный показ и на команду «Вывести список». Универсальный отчёт и обработки используют собственные настройки отбора — их задают отдельно.

Если нужна выборка по оборотам (например, «контрагенты, по которым были продажи за период»), списком этого не сделать — такие данные лежат в регистрах, и их достают отчётом.

Универсальный отчёт: гибкая выборка с полями из карточки

Универсальный отчёт тянет данные прямо из справочника и позволяет вывести реквизиты, которых нет в списке.

  1. Откройте Отчеты → Стандартные отчеты → Универсальный отчет.
  2. В верхней строке выберите тип источника Справочник, затем объект Контрагенты и таблицу Основные данные.
  3. Нажмите Настройки — здесь задают поля (колонки), группировки и отборы.
  4. В разделе полей добавьте Наименование, ИНН, КПП, Полное наименование, при необходимости — Юридический адрес и другие реквизиты.
  5. В разделе отборов поставьте условия — по группе, по стране, по пометке удаления.
  6. Нажмите Сформировать, затем сохраните результат через Файл → Сохранить как… в Excel или CSV.

Главное преимущество — доступ к реквизитам, которые не выводятся в списке, и к связанным таблицам (например, контактной информации). Настройку отчёта можно сохранить кнопкой сохранения вариантов и повторять без перенастройки.

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

Сравним три «ручных» способа:

СпособЧто выгружаетКогда применять
Вывести списокколонки списка (наименование, ИНН, КПП)быстрый разовый перечень
Универсальный отчётлюбые реквизиты справочника + связанные таблицынужны поля из карточки, повтор по сохранённой настройке
Обработка выгрузкивесь объект с реквизитами и подчинёнными даннымиперенос в другую базу, массовая выгрузка

Экспорт в Excel и CSV без искажений

Любой из способов выше даёт на выходе табличный документ, который сохраняется в несколько форматов.

  • .xlsx (Лист Excel) — самый надёжный вариант. Кодировка и разделители внутри файла не важны, Excel откроет его как есть. Выбирайте его, если файл будут открывать в Excel.
  • .csv — универсальный текстовый формат для загрузки в другие системы, базы, скрипты. Именно с ним возникают проблемы кодировки (разберём ниже).
  • Текстовый документ .txt — когда нужен простой список строк без таблицы.

Если файл нужен для последующей загрузки в 1С или другую программу, заранее уточните требуемый формат и кодировку у принимающей стороны. Переделывать выгрузку из-за неверного разделителя — потерянное время.

Массовая выгрузка обработками и перенос в другую базу

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

Выгрузка через универсальный формат (EnterpriseData). В типовых конфигурациях есть механизм синхронизации данных. Через Администрирование → Синхронизация данных настраивается обмен в формате EnterpriseData — он переносит справочники, включая контрагентов, между базами 1С без программирования.

Универсальная обработка «Выгрузка и загрузка данных XML». Это стандартная внешняя обработка от фирмы 1С (поставляется на диске ИТС). Она выгружает выбранные объекты, включая справочник Контрагенты, в XML-файл, а в приёмнике — загружает его. Подходит, когда базы имеют одинаковую или совместимую структуру метаданных.

Порядок работы с такой обработкой:

  1. Откройте обработку через Файл → Открыть… (нужны права на открытие внешних обработок).
  2. На вкладке выгрузки отметьте справочник Контрагенты, при необходимости — подчинённые данные (банковские счета, договоры).
  3. Задайте отбор, если нужна часть контрагентов.
  4. Укажите путь к XML-файлу и запустите выгрузку.
  5. В принимающей базе откройте ту же обработку в режиме загрузки и укажите этот файл.

XML-выгрузка переносит объекты по внутренним идентификаторам. Если структура баз отличается (разные версии конфигурации, доработки), загрузка может завершиться с ошибками. Сначала проверьте перенос на копии базы.

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

Программная выгрузка через встроенный язык

Если выгрузку нужно повторять по расписанию или формировать файл в нестандартном формате, пишут небольшой код на встроенном языке 1С. Запустить его можно в консоли кода (внешняя обработка) или в собственной обработке.

Пример: выгрузка непомеченных контрагентов в CSV-файл.

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    Контрагенты.Наименование КАК Наименование,
|    Контрагенты.ИНН КАК ИНН,
|    Контрагенты.КПП КАК КПП
|ИЗ
|    Справочник.Контрагенты КАК Контрагенты
|ГДЕ
|    НЕ Контрагенты.ПометкаУдаления
|    И НЕ Контрагенты.ЭтоГруппа";

Выборка = Запрос.Выполнить().Выбрать();

Запись = Новый ЗаписьТекста("C:\Выгрузка\kontragenty.csv", КодировкаТекста.UTF8);
Запись.ЗаписатьСтроку("Наименование;ИНН;КПП");
Пока Выборка.Следующий() Цикл
    Строка = Выборка.Наименование + ";" + Выборка.ИНН + ";" + Выборка.КПП;
    Запись.ЗаписатьСтроку(Строка);
КонецЦикла;
Запись.Закрыть();

Код выбирает контрагентов без пометки удаления и без групп, затем построчно пишет их в файл с разделителем ;. Кодировку задаёт параметр КодировкаТекста.UTF8 — замените на Windows (так в платформе называется кодировка Windows-1251), если принимающая программа ждёт именно её.

Запись файла на диск работает в толстом клиенте или на сервере. В веб-клиенте прямой доступ к файловой системе закрыт — там результат формируют в памяти и отдают пользователю через механизм сохранения файла.

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

Если нужен не CSV, а XML или JSON под внешнюю систему, в коде вместо ЗаписьТекста используют запись XML (ЗаписьXML) или сериализацию в JSON. Структуру файла в этом случае диктует принимающая сторона — её форматом и руководствуются. Для разовой задачи проще взять готовую типовую обработку, собственный код оправдан там, где выгрузку гоняют постоянно и в своём формате.

Что делать с кодировкой и спецсимволами в CSV

Самая частая жалоба после выгрузки в CSV — вместо русских букв в Excel отображаются «кракозябры». Причина почти всегда в несовпадении кодировки файла и той, которую ждёт Excel.

Почему так происходит. Excel на русской Windows по умолчанию открывает CSV в кодировке Windows-1251. Если 1С сохранила файл в UTF-8 без метки BOM, Excel читает его как 1251 и портит кириллицу.

Три способа это исправить:

  1. Сохраняйте в UTF-8 с BOM — тогда Excel распознает кодировку сам. В программной выгрузке добавьте запись метки BOM в начало файла или используйте соответствующую запись потока.
  2. Сохраняйте сразу в Windows-1251 — параметр КодировкаТекста.Windows в коде, или выбор ANSI при сохранении.
  3. Открывайте файл через импорт — в Excel Данные → Из текста/CSV, в мастере вручную укажите кодировку UTF-8 и разделитель точка с запятой. Это не меняет файл и работает с любой кодировкой.

Разделитель полей. На русской Windows Excel ждёт в CSV разделитель ; (точка с запятой), а не запятую — это зависит от региональных настроек. Если выгрузили с запятой, все данные встанут в один столбец. Используйте ; либо задавайте разделитель в мастере импорта.

Спецсимволы внутри значений. Если в наименовании контрагента есть ;, перенос строки или кавычки, строка CSV «ломается» — поля разъезжаются. Решение — заключать такие значения в двойные кавычки, а сами кавычки внутри удваивать. В программной выгрузке это делают при формировании строки.

Чтобы не воевать с кодировкой, когда файл открывают только в Excel, сохраняйте сразу в .xlsx. Проблема кодировки есть только у текстового CSV; у xlsx её нет.

Проверка перед выгрузкой контрагентов
Выполнено: 0 / 5

Частые вопросы

Как выгрузить контрагентов вместе с банковскими счетами и договорами?
Списком их не достать — это подчинённые данные. Используйте универсальный отчёт со связанными таблицами, обработку выгрузки в XML или синхронизацию в формате EnterpriseData: они переносят контрагента со всеми подчинёнными реквизитами.
Можно ли выгрузить только контрагентов-покупателей или только поставщиков?
Да, если в вашей конфигурации заполняется соответствующий признак. Настройте отбор в списке перед командой «Вывести список» или в отборах универсального отчёта.
Почему в выгруженном CSV русский текст отображается нечитаемо?
Файл сохранён в одной кодировке, а Excel открывает его в другой. Либо сохраните в UTF-8 с BOM или в Windows-1251, либо откройте через Данные → Из текста/CSV с явным указанием кодировки.
Как перенести контрагентов в другую базу 1С без ручного ввода?
Через синхронизацию данных в формате EnterpriseData (Администрирование → Синхронизация данных) или стандартную обработку выгрузки/загрузки в XML. Перед переносом проверьте результат на копии базы.
Выгрузка забрала не всех контрагентов — в чём причина?
Чаще всего список был свёрнут по группам и в файл попали только папки верхнего уровня, либо активен отбор, либо часть записей помечена на удаление. Разверните список и проверьте настройки отбора.