Выгрузка справочников из 1С 8.3: пять рабочих способов
Содержание
Выгрузить справочник из 1С проще всего через список: откройте нужный справочник (например, Номенклатура или Контрагенты), в командной панели нажмите Еще → Вывести список, выведите данные в табличный документ и сохраните его как файл Excel. Для переноса в такую же базу 1С берут обработку «Выгрузка и загрузка данных XML», для сторонних программ — текст или DBF.
Способ зависит от того, куда данные поедут. Человеку на почту или в налоговую подойдёт Excel. В такую же конфигурацию 1С нужна полная выгрузка справочников в XML со всеми ссылками. В старую учётную программу или госсистему — DBF либо текстовый файл в её формате.
Все перечисленные способы работают в типовых конфигурациях на платформе 1С 8.3 с интерфейсом «Такси»: 1С:Бухгалтерия 3.0, 1С:Зарплата и управление персоналом 3.1, 1С:Управление торговлей 11.
.xlsx. Самый быстрый путь, подходит любому справочнику.Коротко — чем способы отличаются:
| Способ | Формат файла | Что переносит | Для чего |
|---|---|---|---|
| Вывод списка | XLSX, ODS, TXT | видимые колонки, без ссылок | открыть у человека, распечатать |
| Выгрузка/загрузка XML | XML | элементы со ссылками и GUID | перенос в такую же базу |
| Универсальный обмен | XML | данные по правилам конвертации | перенос в другую конфигурацию |
| DBF / текст | DBF, TXT | поля под формат приёмника | сторонние и старые программы |
| Код и расписание | любой | что опишете в коде | регулярная автоматическая выгрузка |
Быстрый экспорт списка справочника в Excel
Это штатный механизм платформы, он есть в любой конфигурации и не требует прав разработчика.
- Откройте список справочника:
Справочники → Номенклатура(илиКонтрагенты,Физические лица— по задаче). - Настройте видимые колонки. Выгрузятся только те столбцы, что показаны в списке. Добавить их можно через
Еще → Изменить формуилиЕще → Настроить список. - Нажмите
Еще → Вывести список. - В окне выбора отметьте колонки и укажите вывод в
Табличный документ. - В полученном табличном документе:
Файл → Сохранить как, тип файла —Лист Excel 2007 (*.xlsx). Для таблицы OpenOffice/LibreOffice выберитеТаблица ODF (*.ods).
Если нужен не весь справочник, а часть — сначала поставьте отбор в списке (см. раздел про фильтры ниже), и Вывести список выгрузит только отфильтрованные строки.
Коды номенклатуры и ИНН контрагентов Excel нередко превращает в числа и обрезает ведущие нули. Чтобы сохранить коды как есть, в самом Excel задайте формату ячеек тип «Текстовый» до вставки либо открывайте файл через «Данные → Из текста» с указанием текстового формата столбца.
В окне вывода обычно есть выбор: выгрузить все колонки или только текущую, а также вывести все элементы или только выделенные мышью. Для выборочной выгрузки отметьте нужные строки в списке (с зажатым Ctrl) и укажите вывод только выделенных.
Табличный документ можно сохранить и в родном формате 1С — .mxl. Его открывает любая база 1С без потери оформления, но сторонние программы такой файл не читают — для них берите XLSX или текст.
Плюс способа — скорость и наглядность. Минус — это плоская выгрузка: иерархия групп, картинки и ссылки на другие справочники в файл не попадут, только значения видимых колонок.
Полная выгрузка справочника в XML между одинаковыми базами
Когда справочник нужно перенести в точно такую же конфигурацию той же версии — например, из рабочей базы в копию или в базу филиала, — список в Excel не годится: потеряются внутренние идентификаторы и ссылки. Здесь работает типовая обработка «Выгрузка и загрузка данных XML», которую 1С поставляет вместе с конфигурациями.
Порядок работы:
- Откройте обработку через
Файл → Открытьи выберите файл обработки (ВыгрузкаЗагрузкаДанныхXML). - На закладке выгрузки в дереве метаданных отметьте галочками нужные справочники.
- При необходимости включите выгрузку подчинённых данных по ссылкам, чтобы вместе с элементами уехали связанные объекты.
- Укажите имя XML-файла и запустите выгрузку.
- В базе-приёмнике откройте ту же обработку, перейдите на закладку загрузки, выберите файл и загрузите.
Загрузка проходит корректно только в идентичную конфигурацию: совпадают состав реквизитов справочника и версия. При загрузке в изменённую структуру часть данных не встанет или появятся ошибки сопоставления.
Главное преимущество — элементы переносятся с сохранением уникальных идентификаторов (GUID), поэтому ссылки из документов в приёмнике не «рвутся».
Перенос справочников в другую конфигурацию по правилам обмена
Если приёмник — другая конфигурация (скажем, из Управления торговлей в Бухгалтерию), прямая выгрузка XML не подойдёт: структуры справочников отличаются. Для таких случаев используют универсальный обмен данными в формате XML, который работает по правилам конвертации.
Логика такая:
- Правила обмена — это отдельный файл (
.xml), где описано, какой справочник источника во что превращается в приёмнике и как сопоставляются реквизиты. - Правила либо берут готовые из типовой поставки обмена, либо создают в конфигурации «Конвертация данных ».
- Обработка универсального обмена читает правила, выгружает данные в XML, а на стороне приёмника — загружает их по тем же правилам.
Для популярных пар программ (например, обмен между торговой и бухгалтерской конфигурациями) правила уже готовы и идут в типовой поставке обмена — создавать их с нуля не нужно. Нестандартное сопоставление реквизитов описывают вручную в «Конвертации данных».
Этот путь сложнее и обычно требует специалиста, зато переносит справочники между разными программами без потери связей. Для разовой задачи «достать список» он избыточен — тогда вернитесь к выводу списка в Excel.
Выгрузка справочника в DBF и текстовый файл
DBF и текст нужны, когда данные принимает сторонняя программа: старый складской учёт, банковское ПО, импорт в госсистему. Формат и состав полей диктует приёмник — сначала узнайте его требования, потом формируйте файл.
Текстовый файл проще всего получить тем же Еще → Вывести список, но на шаге вывода указать Текстовый документ и сохранить как .txt. Разделителем будет табуляция.
Для DBF штатной кнопки нет — файл формируют кодом через объект платформы XBase. Пример выгрузки номенклатуры в консоли кода или внешней обработке:
Экспорт = Новый XBase;
Экспорт.Кодировка = КодировкаXBase.OEM; // cp866 — для старых DBF-приёмников
Экспорт.Поля.Добавить("CODE", "S", 11);
Экспорт.Поля.Добавить("NAME", "S", 150);
Экспорт.СоздатьФайл("C:\Обмен\nomenkl.dbf");
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Экспорт.Добавить();
Экспорт.CODE = Выборка.Код;
Экспорт.NAME = Выборка.Наименование;
Экспорт.Записать();
КонецЦикла;
Экспорт.ЗакрытьФайл();
Имена полей DBF — не длиннее 10 символов и латиницей. Кодировку выбирайте под приёмник: OEM даёт cp866 (классический DBF), ANSI — windows-1251. Ошибётесь с кодировкой — получите «кракозябры» в принимающей программе.
При обратном чтении DBF перебор строк идёт в цикле с проверкой конца файла методом ВКонце() — учтите это, если позже будете загружать такой файл назад.
Отбор элементов перед выгрузкой справочника
Выгружать весь справочник целиком нужно редко. Чаще требуется часть: только активные контрагенты, номенклатура одной группы, элементы, созданные за период.
Для списка и вывода в Excel:
- 🔎 Поставьте отбор в самом списке:
Еще → Настроить список → Отбор, задайте условие (например, по реквизиту или группе). После этогоВывести списокотдаст только отобранные строки. - 📁 Для иерархических справочников перейдите внутрь нужной группы — выведется её содержимое.
- 📅 По дате создания отбор в типовом списке не всегда доступен; тогда отберите через универсальный отчёт или список документов, где элемент впервые появился.
Для выгрузки в XML отбор задаётся в самой обработке: в «Выгрузке и загрузке данных XML» можно ограничить состав элементов условиями по реквизитам, чтобы не тянуть весь справочник.
Перед большой выгрузкой проверьте отбор на экране: ровно те строки, что видите в списке после фильтра, и уедут в файл.
Автоматизация выгрузки справочников
Когда выгрузка нужна регулярно — ночью, по расписанию, в один и тот же файл для внешней программы — ручной «Вывести список » не подходит. Задачу закрывают кодом.
Два рабочих подхода:
Табличный документ из кода. Формируете ТабличныйДокумент программно и сохраняете в файл нужного формата:
ТабДок = Новый ТабличныйДокумент;
// ... заполнение строк данными выборки ...
ТабДок.Записать("C:\Обмен\spravochnik.xlsx",
ТипФайлаТабличногоДокумента.XLSX);
Для DBF используйте показанный выше XBase, для текста — ЗаписьТекста.
Регламентное задание. Код выгрузки оформляют в общий модуль и вызывают из регламентного задания по расписанию. Настройка расписания — в разделе Администрирование → Обслуживание → Регламентные и фоновые задания (в клиент-серверной базе задания выполняет сервер).
Регламентные задания в файловой базе работают только при открытом сеансе, который их обслуживает. Для стабильной выгрузки по расписанию держите базу в клиент-серверном варианте.
Если выгрузку инициирует внешняя программа, применяют COM-соединение (V83.COMConnector): внешнее приложение подключается к базе и вызывает процедуру выгрузки. Это требует настройки прав и установленного COM-компонента на машине-источнике.
В клиент-серверной базе код регламентного задания выполняется на сервере, и путь вроде C:\Обмен\ — это диск сервера, а не вашего компьютера. Указывайте каталог, доступный серверу 1С, иначе файл «потеряется» или задание упадёт на записи. Для выгрузки в сетевую папку проверьте, что у учётной записи службы 1С есть права на запись в неё.
Типичные ошибки и как их избежать
Короткий разбор того, на чём чаще спотыкаются именно при выгрузке справочников — без повтора шагов из инструкций выше.
Еще → Изменить форму до того, как нажимать Вывести список.OEM (cp866), для windows-программ — ANSI. Имена полей — латиницей и не длиннее 10 символов.Еще → Настроить список → Отбор и повторите выгрузку.Частые вопросы
Можно ли выгрузить справочник вместе с иерархией групп?
Вывести список — нет, получится плоская таблица. Структуру групп сохраняет выгрузка в XML или программная выгрузка, где иерархию переносят отдельным полем «Родитель».Как выгрузить справочник со всеми реквизитами, а не только видимыми?
Изменить форму, либо используйте выгрузку в XML — она переносит все реквизиты объекта независимо от формы списка.