Выгрузка списка контрагентов из 1С в Excel, CSV и XML
Содержание
Самый быстрый способ — открыть список Контрагенты, нажать Еще → Вывести список… и сохранить результат как файл Excel. Этого хватает, когда нужен просто перечень с наименованием, ИНН и КПП. Если же выгрузку делают регулярно, нужны отборы по группам или полный перенос контрагентов в другую базу — подойдут универсальный отчёт, типовые обработки или выгрузка в XML.
Разберём пять рабочих способов: от команды в один клик до программной выгрузки через встроенный язык. Способы отличаются набором полей, форматом файла и тем, можно ли автоматизировать повтор. Отдельно — что делать, когда в выгруженном CSV вместо русских букв «кракозябры».
Команда «Вывести список» — экспорт за один клик
Работает в любой типовой конфигурации 1С 8.3 на интерфейсе «Такси»: Бухгалтерия, ЗУП, Управление торговлей, УНФ, ERP.
- Откройте справочник контрагентов. В Бухгалтерии 3.0 это
Справочники → Покупки и продажи → Контрагенты, в УТ 11 —НСИ → Контрагенты. - В командной панели списка нажмите
Еще → Вывести список…. - В открывшемся окне выберите, куда выводить:
Табличный документ(для Excel) илиТекстовый документ. - Галочками отметьте нужные колонки — наименование, ИНН, КПП, полное наименование, страна регистрации.
- Нажмите
ОК— список откроется отдельным документом. - Сохраните его через
Главное меню → Файл → Сохранить как…и выберите форматЛист Excel 2007-… (*.xlsx)илиCSV (*.csv).
Перед выводом разверните группы справочника (кнопка показа в виде списка, без иерархии) — иначе в файл попадут только контрагенты верхнего уровня, а вложенные в папки пропустят.
Способ хорош скоростью, но выгружает ровно те колонки, что видны в списке и доступны для вывода. Банковские счета, договоры и контактные лица так не достать — для них нужен отчёт или обработка.
Настройка колонок и отборов перед выгрузкой
Чтобы в файл попало именно то, что нужно, список настраивают заранее — тогда «Вывести список » заберёт готовую выборку.
Отбор строк. Нажмите кнопку поиска или настройте отбор через Еще → Настроить список… → Отбор. Примеры условий:
- только покупатели или только поставщики (по реквизиту, если он заполняется);
- контрагенты из конкретной группы (папки справочника);
- по стране регистрации, по признаку «не резидент»;
- непомеченные на удаление — чтобы в выгрузку не попали удалённые записи.
Колонки. Через Еще → Изменить форму… можно добавить в список дополнительные реквизиты — например, полное наименование или код. То, что видно в списке, попадёт и в выгрузку.
Отбор в списке влияет только на экранный показ и на команду «Вывести список». Универсальный отчёт и обработки используют собственные настройки отбора — их задают отдельно.
Если нужна выборка по оборотам (например, «контрагенты, по которым были продажи за период»), списком этого не сделать — такие данные лежат в регистрах, и их достают отчётом.
Универсальный отчёт: гибкая выборка с полями из карточки
Универсальный отчёт тянет данные прямо из справочника и позволяет вывести реквизиты, которых нет в списке.
- Откройте
Отчеты → Стандартные отчеты → Универсальный отчет. - В верхней строке выберите тип источника
Справочник, затем объектКонтрагентыи таблицуОсновные данные. - Нажмите
Настройки— здесь задают поля (колонки), группировки и отборы. - В разделе полей добавьте
Наименование,ИНН,КПП,Полное наименование, при необходимости —Юридический адреси другие реквизиты. - В разделе отборов поставьте условия — по группе, по стране, по пометке удаления.
- Нажмите
Сформировать, затем сохраните результат черезФайл → Сохранить как…в Excel или CSV.
Главное преимущество — доступ к реквизитам, которые не выводятся в списке, и к связанным таблицам (например, контактной информации). Настройку отчёта можно сохранить кнопкой сохранения вариантов и повторять без перенастройки.
Частый практический случай — выгрузить только наименование и ИНН для массовой проверки контрагентов (сверка с реестрами, оценка благонадёжности). Для этого в полях отчёта оставьте две колонки — Наименование и ИНН — и выгрузите в Excel. Такой короткий файл удобно загружать в сервисы проверки, которые принимают список ИНН.
Сравним три «ручных» способа:
| Способ | Что выгружает | Когда применять |
|---|---|---|
| Вывести список | колонки списка (наименование, ИНН, КПП) | быстрый разовый перечень |
| Универсальный отчёт | любые реквизиты справочника + связанные таблицы | нужны поля из карточки, повтор по сохранённой настройке |
| Обработка выгрузки | весь объект с реквизитами и подчинёнными данными | перенос в другую базу, массовая выгрузка |
Экспорт в Excel и CSV без искажений
Любой из способов выше даёт на выходе табличный документ, который сохраняется в несколько форматов.
.xlsx(Лист Excel) — самый надёжный вариант. Кодировка и разделители внутри файла не важны, Excel откроет его как есть. Выбирайте его, если файл будут открывать в Excel..csv— универсальный текстовый формат для загрузки в другие системы, базы, скрипты. Именно с ним возникают проблемы кодировки (разберём ниже).- Текстовый документ
.txt— когда нужен простой список строк без таблицы.
Если файл нужен для последующей загрузки в 1С или другую программу, заранее уточните требуемый формат и кодировку у принимающей стороны. Переделывать выгрузку из-за неверного разделителя — потерянное время.
Массовая выгрузка обработками и перенос в другую базу
Когда контрагентов нужно не посмотреть, а перенести в другую информационную базу со всеми реквизитами, счетами и договорами, применяют обработки.
Выгрузка через универсальный формат (EnterpriseData). В типовых конфигурациях есть механизм синхронизации данных. Через Администрирование → Синхронизация данных настраивается обмен в формате EnterpriseData — он переносит справочники, включая контрагентов, между базами 1С без программирования.
Универсальная обработка «Выгрузка и загрузка данных XML». Это стандартная внешняя обработка от фирмы 1С (поставляется на диске ИТС). Она выгружает выбранные объекты, включая справочник Контрагенты, в XML-файл, а в приёмнике — загружает его. Подходит, когда базы имеют одинаковую или совместимую структуру метаданных.
Порядок работы с такой обработкой:
- Откройте обработку через
Файл → Открыть…(нужны права на открытие внешних обработок). - На вкладке выгрузки отметьте справочник
Контрагенты, при необходимости — подчинённые данные (банковские счета, договоры). - Задайте отбор, если нужна часть контрагентов.
- Укажите путь к XML-файлу и запустите выгрузку.
- В принимающей базе откройте ту же обработку в режиме загрузки и укажите этот файл.
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 и портит кириллицу.
Три способа это исправить:
- Сохраняйте в UTF-8 с BOM — тогда Excel распознает кодировку сам. В программной выгрузке добавьте запись метки BOM в начало файла или используйте соответствующую запись потока.
- Сохраняйте сразу в Windows-1251 — параметр
КодировкаТекста.Windowsв коде, или выбор ANSI при сохранении. - Открывайте файл через импорт — в Excel
Данные → Из текста/CSV, в мастере вручную укажите кодировку UTF-8 и разделительточка с запятой. Это не меняет файл и работает с любой кодировкой.
Разделитель полей. На русской Windows Excel ждёт в CSV разделитель ; (точка с запятой), а не запятую — это зависит от региональных настроек. Если выгрузили с запятой, все данные встанут в один столбец. Используйте ; либо задавайте разделитель в мастере импорта.
Спецсимволы внутри значений. Если в наименовании контрагента есть ;, перенос строки или кавычки, строка CSV «ломается» — поля разъезжаются. Решение — заключать такие значения в двойные кавычки, а сами кавычки внутри удваивать. В программной выгрузке это делают при формировании строки.
Чтобы не воевать с кодировкой, когда файл открывают только в Excel, сохраняйте сразу в .xlsx. Проблема кодировки есть только у текстового CSV; у xlsx её нет.
Частые вопросы
Как выгрузить контрагентов вместе с банковскими счетами и договорами?
Можно ли выгрузить только контрагентов-покупателей или только поставщиков?
Почему в выгруженном CSV русский текст отображается нечитаемо?
Данные → Из текста/CSV с явным указанием кодировки.Как перенести контрагентов в другую базу 1С без ручного ввода?
Администрирование → Синхронизация данных) или стандартную обработку выгрузки/загрузки в XML. Перед переносом проверьте результат на копии базы.