Экспорт справочника контрагентов из 1С 8.3: все рабочие способы
Содержание
Чаще всего контрагентов пытаются «выгрузить» через Файл → Сохранить, не найдя такой кнопки в карточке. Отдельной команды экспорта у справочника нет — список выгружают либо прямо из формы (Еще → Вывести список), либо типовой обработкой в XML, либо запросом к базе. Способ зависит от того, куда данные поедут: в Excel для менеджера, в другую базу 1С или в стороннюю программу.
Ниже — четыре рабочих метода для 1С 8.3 (Бухгалтерия 3.0, УТ 11, ЗУП 3.1 и других конфигураций на платформе «Такси»), от двух кликов мышью до выгрузки по расписанию. Контрагенты лежат в разделе Справочники → Контрагенты; открывать карточки для экспорта не нужно, работаем со списком целиком.
Перед любой выгрузкой стоит навести порядок в справочнике: пометить на удаление задвоенных контрагентов и неиспользуемые записи, чтобы они не уехали в файл. В типовых конфигурациях для этого есть обработка поиска и удаления дублей — прогоните её по справочнику до экспорта, иначе будете чистить задвоения уже в Excel или в принимающей системе.
Вывод списка контрагентов в Excel прямо из формы
Самый быстрый способ, когда данные нужны человеку, а не программе. Открываете список контрагентов и выгружаете его в таблицу.
- Откройте
Справочники → Контрагенты. - При необходимости отфильтруйте список: по группе, по признаку «Покупатель/Поставщик», по любому столбцу через
Еще → Настроить список. - Нажмите
Еще(меню в правом верхнем углу командной панели) →Вывести список. - В окне выбора отметьте колонки, которые должны попасть в выгрузку:
Наименование,ИНН,КПП,Полное наименованиеи т. д. - Выберите тип вывода
Табличный документи нажмитеОК.
Сформированный табличный документ сохраните в Excel: Главное меню → Файл → Сохранить как, тип файла — Лист Excel 2007 (*.xlsx). Поддерживаются также форматы .ods (OpenOffice/LibreOffice), .mxl (родной формат 1С) и .pdf.
Если нужны только видимые на экране столбцы, проще выделить строки в списке (Ctrl+A), скопировать (Ctrl+C) и вставить в открытый лист Excel. Форматирование не перенесётся, но значения встанут по колонкам.
Состав колонок в окне Вывести список не ограничен тем, что видно в форме: там предлагаются все реквизиты справочника, включая Полное наименование, Код, Страна регистрации, Юридическое/физическое лицо. Отмечайте только нужные — лишние столбцы замусорят файл. Порядок колонок в выгрузке совпадает с порядком в этом окне, перетащите строки, если важна последовательность.
Если вместо Табличный документ выбрать Текстовый документ, получится список с разделителями-табуляциями — он тоже вставляется в Excel, но без границ и заголовков. Для печати или отправки в PDF удобнее табличный вариант.
Минус метода — в выгрузку попадают только те реквизиты, что есть колонками в списке. Банковские счета, контактные лица и адреса так не получить: они хранятся в подчинённых справочниках и регистрах. Для них нужен запрос или обработка.
Выгрузка контрагентов в XML для переноса в другую базу
Когда контрагентов надо перенести в другую информационную базу той же конфигурации (например, из рабочей базы в чистую или при объединении фирм), подходит типовая обработка выгрузки в XML.
Называется она «Выгрузка и загрузка данных XML» (файл ВыгрузкаЗагрузкаДанныхXML.epf). Она не входит в саму конфигурацию — её берут из комплекта поставки типовых обработок, который идёт вместе с конфигурацией.
Порядок действий:
- Откройте обработку через
Файл → Открытьи укажите файл.epf. - На вкладке выгрузки отметьте флажком
Справочник.Контрагенты. - Добавьте отбор, если нужны не все контрагенты (по группе, по дате создания).
- Укажите имя файла выгрузки и запустите выгрузку.
На выходе — файл .xml со всеми реквизитами и ссылками. Загружают его этой же обработкой в режиме загрузки уже в базе-приёмнике: открываете обработку, переключаетесь на вкладку загрузки, указываете файл и запускаете. Обработка сама создаёт недостающие объекты и обновляет существующие по идентификатору.
Вместе с контрагентом по ссылкам подтянутся и связанные объекты — договоры, банковские счета, контактные лица, — если обработка настроена выгружать объекты «по ссылкам». Это главное преимущество XML перед выводом списка: переносится не плоская таблица, а весь куст данных контрагента.
XML-выгрузка переносит объекты по внутренним идентификаторам. Загружать её можно только в базу идентичной конфигурации и релиза. В стороннюю программу или в конфигурацию другого типа такой файл не встанет — там он нечитаем.
Этот формат не предназначен для глаз человека: открывать его в Excel смысла нет. XML здесь — транспорт между базами 1С, а не отчёт.
Сторонние и универсальные обработки выгрузки в файл
Для выгрузки в произвольный формат (CSV, DBF, свой XML под чужую программу) типовых средств не хватает — здесь применяют универсальные обработки обмена или специализированные внешние обработки.
Что обычно используют:
- Универсальный обмен данными в формате XML — настраивается планом обмена и правилами конвертации, выгружает выборочные реквизиты по заданной схеме. Тяжёлый инструмент, оправдан при регулярном обмене со сторонней системой.
- Внешние обработки выгрузки в CSV/Excel — читают справочник запросом и пишут файл в нужной структуре. Их пишут под конкретную задачу или берут готовые.
Выбор реквизитов для чужой системы удобно проектировать как сопоставление полей: слева — что берём из 1С, справа — куда это ложится в файле-приёмнике.
Если сторонняя программа принимает CSV — это самый простой общий знаменатель: запросом выбираете нужные поля и построчно пишете их через разделитель. Кодировку согласуйте заранее: Excel на русском корректно открывает CSV в Windows-1251, многие веб-системы ждут UTF-8.
Выгрузка контрагентов запросом к базе
Способ для тех, кому нужны конкретные поля и полный контроль над составом выгрузки — например, вместе с банковскими счетами или контактной информацией.
Запрос пишут в консоли запросов (внешняя обработка «Консоль запросов» из комплекта типовых обработок) или в собственной внешней обработке. Простой пример — активные контрагенты с основными реквизитами:
ВЫБРАТЬ
Контрагенты.Наименование КАК Наименование,
Контрагенты.ИНН КАК ИНН,
Контрагенты.КПП КАК КПП,
Контрагенты.ПолноеНаименование КАК ПолноеНаименование
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
НЕ Контрагенты.ПометкаУдаления
И НЕ Контрагенты.ЭтоГруппа
УПОРЯДОЧИТЬ ПО
Наименование
Результат запроса консоль умеет вывести в табличный документ — дальше его сохраняют в Excel как в первом способе.
Чтобы добавить расчётный счёт, к контрагенту присоединяют его банковские счета. Они лежат в подчинённом справочнике, у которого контрагент — владелец. Левое соединение сохранит контрагентов даже без заполненного счёта:
ВЫБРАТЬ
Контрагенты.Наименование КАК Наименование,
Контрагенты.ИНН КАК ИНН,
Контрагенты.КПП КАК КПП,
БанковскиеСчета.НомерСчета КАК НомерСчета,
БанковскиеСчета.Банк.Наименование КАК Банк
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчета КАК БанковскиеСчета
ПО БанковскиеСчета.Владелец = Контрагенты.Ссылка
ГДЕ
НЕ Контрагенты.ПометкаУдаления
И НЕ Контрагенты.ЭтоГруппа
У контрагента может быть несколько счетов — тогда он попадёт в выгрузку несколькими строками, по одной на счёт. Если нужен только основной счёт, добавьте в условие отбор по реквизиту основного банковского счёта контрагента.
Условие НЕ Контрагенты.ЭтоГруппа убирает из выгрузки папки справочника, а НЕ ПометкаУдаления — помеченные на удаление записи. Без них в файл попадёт лишнее.
Этот путь даёт любой срез данных, но требует прав на запуск внешних обработок и понимания структуры метаданных конфигурации. В облачных базах по модели аренды запуск сторонних обработок часто закрыт — тогда остаются первые два способа.
Автоматическая выгрузка контрагентов по расписанию
Когда файл с контрагентами нужен регулярно (ежедневная синхронизация с CRM, ночной бэкап списка), ручные клики не годятся. Выгрузку ставят на расписание.
Два типовых подхода:
- Регламентное задание внутри базы. В клиент-серверной базе создают регламентное задание, которое по расписанию выполняет код выгрузки: запрос к
Справочник.Контрагентыи запись результата в файл на сервере. Файл потом забирает принимающая система. Расписание (каждый час, раз в сутки, по дням недели) задаётся в свойствах задания; выполняется оно на сервере без участия пользователя. Путь к папке выгрузки должен быть виден серверу 1С, а не рабочей станции — указывайте сетевой путь или локальную папку сервера, иначе задание упадёт с ошибкой доступа к файлу. - Запуск обработки из командной строки. Платформу запускают в пакетном режиме и передают ей внешнюю обработку
параметром
/Execute:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE ^
/S "server\base" /N user /P pass ^
/Execute "C:\exchange\export_contragents.epf" /DisableStartupMessages
Такой .bat ставят в планировщик заданий Windows на нужное время. Обработка сама формирует файл и завершает работу.
Пакетный запуск входит в базу под указанной учётной записью и занимает лицензию на время работы. Пароль в .bat хранится открытым текстом — файл держите в защищённой папке, а учётке дайте минимум прав (только чтение справочника).
Ещё один вариант для внешних скриптов — внешнее соединение (COM-соединение) к базе: сторонняя программа подключается к 1С, читает справочник контрагентов запросом и забирает данные без промежуточного файла. Это удобно, когда выгрузку инициирует не 1С, а принимающая сторона, и когда нужен обмен в реальном времени, а не раз в сутки.
Для обмена с типовыми системами (сайт, маркетплейс, другая база 1С) чаще настраивают не самописную выгрузку, а штатную синхронизацию данных — она сама отслеживает изменения и выгружает только новое, не требуя кода вообще.
Типичные ошибки при выгрузке контрагентов
НЕ ЭтоГруппа и НЕ ПометкаУдаления. При выводе списка снимите с папок отбор через Еще → Настроить список.Windows-1251, для веб-систем — в UTF-8. Уточните формат у принимающей стороны до выгрузки.Вывод списка закрывается правом на интерактивный экспорт, внешние обработки — правом на их открытие. Запросите права у администратора.Как выбрать способ выгрузки
Короткий ориентир по задачам:
| Куда и зачем | Способ |
|---|---|
| Список в Excel для сотрудника | Еще → Вывести список → сохранить в .xlsx |
| Перенос в другую базу 1С (та же конфигурация) | Типовая обработка «Выгрузка и загрузка данных XML» |
| Файл в стороннюю программу (CSV, свой XML) | Универсальная или внешняя обработка |
| Нестандартный набор полей, банковские счета | Запрос к базе через консоль запросов |
| Регулярная выгрузка без участия человека | Регламентное задание или .bat в планировщике |
Частые вопросы
Можно ли выгрузить контрагентов сразу с договорами и банковскими счетами?
В какой формат лучше выгружать для Excel?
.xlsx при сохранении табличного документа — Excel откроет его без потерь. CSV берите, только если так требует принимающая программа, и следите за кодировкой.