Экспорт справочника номенклатуры из 1С 8.3: все способы

· 8 мин

Содержание

Быстрее всего выгрузить номенклатуру в таблицу: откройте Справочники → Номенклатура, нажмите Ещё → Вывести список и сохраните результат как файл .xlsx. Это разовая выгрузка для прайса, инвентаризации или проверки — настраивать ничего не нужно. Для переноса справочника в другую базу 1С понадобится обмен XML или выгрузка .dt, а для регулярной отдачи данных на сайт или в стороннюю программу — OData или COM-соединение.

Способ зависит от задачи. Разовый список — вывод в Excel. Перенос в новую базу той же конфигурации — XML или полная копия .dt. Автоматическая синхронизация — REST-интерфейс OData или внешнее COM-подключение. Ниже — каждый способ с точными путями меню и примерами.

Что вам нужно сделать с номенклатурой?

Вывод списка номенклатуры в Excel

Самый простой путь, доступный любому пользователю без прав администратора.

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

Если в списке не хватает нужной колонки, сначала добавьте её через Ещё → Изменить форму — после этого колонка появится в окне вывода.

Такой файл удобен для прайса, сверки остатков или загрузки в сторонний каталог. Картинки, штрихкоды и файлы к номенклатуре в таблицу не попадают — выводятся только значения колонок. Цены тоже не хранятся в самом справочнике: они лежат в отдельном регистре, и для прайса с ценами формируют отчёт по ценам, а не выгрузку справочника.

Альтернатива для совсем быстрой задачи — выделить строки в списке мышью и скопировать их через Ctrl+C, затем вставить в Excel. Подходит для небольшого фрагмента.

Перенос номенклатуры в другую базу через XML

Когда справочник нужно передать в другую информационную базу, список в Excel не поможет — потеряются ссылки на единицы измерения, виды номенклатуры и прочие связанные данные. Для этого в 1С есть обмен в формате XML.

Есть два разных инструмента, и путать их не стоит.

Выгрузка и загрузка данных XML — простая обработка для баз на одинаковой конфигурации. Она выгружает объекты по типам метаданных без правил обмена. Открывается через Главное меню → Файл → Открыть (файл обработки ВыгрузкаЗагрузкаДанныхXML.epf) либо из раздела дополнительных обработок, если он подключён. В ней отмечаете Справочник.Номенклатура и связанные справочники, получаете один XML-файл, в приёмнике загружаете его этой же обработкой.

Универсальный обмен данными в формате XML — для баз с разными конфигурациями. Здесь без правил обмена не обойтись: их готовят в конфигурации «Конвертация данных », где описывают соответствие справочника номенклатуры источника и приёмника. Это задача для специалиста, зато так переносят данные, например, из УТ в БП.

Перед загрузкой XML в рабочую базу сделайте её резервную копию. Загрузка создаёт и изменяет объекты, и откатить результат частично нельзя.

Если обе базы на одной и той же конфигурации и одной редакции, а перенести нужно вообще всё, — проще не возиться с XML, а выгрузить всю базу в .dt (способ ниже).

Выгрузка номенклатуры через COM-соединение

COM-соединение подходит, когда номенклатуру нужно вытягивать из базы внешней программой или скриптом — например, по расписанию на сервере, без участия пользователя.

Механизм работает через объект V83.COMConnector. Внешний код подключается к базе и обходит справочник выборкой:

Коннектор = Новый COMОбъект("V83.COMConnector");
Соединение = Коннектор.Connect("File=""C:\Bases\Buh"";Usr=""Экспорт"";Pwd=""12345""");

Выборка = Соединение.Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.Код + " — " + Выборка.Наименование);
КонецЦикла;

Для серверной базы строку соединения меняют на Srvr="имя-сервера";Ref="имя-базы";Usr="...";Pwd="...". Из полученной выборки значения выгружают куда угодно — в текстовый файл, CSV или напрямую в стороннюю СУБД.

Несколько условий, без которых COM не заработает:

  • 📦 На компьютере, где выполняется скрипт, должна быть установлена платформа 1С и зарегистрирована библиотека comcntr.dll той же версии. Регистрируют её командой regsvr32 с полным путём к файлу в каталоге bin нужного релиза платформы.
  • 🧩 Разрядность платформы и внешней программы должна совпадать: 32-битный скрипт не подключится к 64-битному comcntr.
  • 🔐 Пользователь, под которым идёт подключение, должен иметь право на чтение номенклатуры.

Для разовой выборки COM избыточен — проще вывести список в Excel. COM оправдан там, где выгрузка идёт регулярно и без человека.

Выгрузка номенклатуры через OData (REST)

Для облачных баз 1С:Fresh и веб-опубликованных баз есть стандартный REST-интерфейс OData — он отдаёт данные в JSON или XML по обычному HTTP-запросу, без установки платформы на стороне клиента.

Чтобы интерфейс заработал, нужно два шага.

  1. Включить состав OData. В режиме предприятия откройте Главное меню → Все функции → Стандартный интерфейс OData и отметьте объекты, которые будут доступны, — в нашем случае справочник номенклатуры. Без этого запрос вернёт пустой ответ. (Если пункта «Все функции» нет, его включают в Сервис → Параметры → Отображать команду «Все функции».)
  2. Опубликовать интерфейс на веб-сервере. При публикации базы на Apache или IIS в конфигураторе ставится флажок Публиковать стандартный интерфейс OData.

После этого номенклатура доступна по адресу вида:

http://сервер/имя-базы/odata/standard.odata/Catalog_Номенклатура?$format=json

Чтобы исключить из выгрузки группы и оставить только карточки товаров, добавьте отбор:

http://сервер/имя-базы/odata/standard.odata/Catalog_Номенклатура?$filter=IsFolder eq false&$format=json

Для 1С:Fresh возможность OData зависит от тарифа и настроек провайдера сервиса — в части подписок внешний доступ к интерфейсу ограничен, это уточняют у поставщика облака.

OData отдаёт данные тем, у кого есть логин и пароль к базе. Не публикуйте интерфейс в открытый интернет без ограничения доступа на веб-сервере.

Сохранение через внешние обработки и консоль запросов

Когда стандартного вывода списка не хватает — например, нужна выгрузка с расчётными колонками, остатками и ценами в одном файле, — задачу решают внешней обработкой .epf.

Варианты:

  • 🛠 Готовая обработка выгрузки. Открывается через Файл → Открыть или подключается в разделе Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки. Берите файлы только из проверенного источника: внешняя обработка выполняет произвольный код в вашей базе.
  • 📝 Консоль запросов. Пишете запрос к Справочник.Номенклатура, выполняете, результат сохраняете из табличного документа в Excel. Удобно, когда нужно соединить номенклатуру с остатками или ценами из регистров в одной выгрузке.
  • 👩‍💻 Своя обработка. Разработчик формирует запрос, строит таблицу значений и выгружает её в нужный формат — CSV, JSON, XML.

Этот способ даёт максимальную гибкость по составу данных, но требует либо готового файла, либо навыков встроенного языка 1С.

Полная копия базы через выгрузку DT

Если задача — не «достать номенклатуру в файл», а сохранить базу целиком перед обновлением или переносом на другой сервер, используют выгрузку информационной базы в файл .dt.

Через конфигуратор:

  1. Запустите базу в режиме Конфигуратор.
  2. Откройте Администрирование → Выгрузить информационную базу.
  3. Укажите имя файла .dt и дождитесь завершения.

Загрузка в приёмник — обратной командой Администрирование → Загрузить информационную базу.

Выгрузка .dt требует монопольного доступа: все пользователи должны выйти из базы, иначе конфигуратор не начнёт операцию. Загрузка .dt полностью затирает базу-приёмник — её данные будут потеряны. Делайте это только на пустой или заведомо ненужной базе.

Важные оговорки по .dt:

  • Файл содержит всю базу, а не только номенклатуру: выборочно вытащить из него один справочник нельзя.
  • Загрузить .dt можно только в базу с идентичной конфигурацией той же редакции. В другую конфигурацию он не встанет.

В типовых конфигурациях (например, в Бухгалтерии 3.0) резервную копию можно создать и без конфигуратора — в режиме предприятия через раздел обслуживания и резервного копирования. Это удобно, когда доступа к конфигуратору нет, но суть та же: сохраняется вся база.

Типичные ошибки при выгрузке номенклатуры

Диагностика: выберите симптом

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

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

Можно ли выгрузить только одну группу номенклатуры, а не весь справочник?
Да. Перед командой Вывести список установите в списке отбор по группе или откройте нужную папку — в файл попадут только отображаемые строки.
Сохранятся ли при выгрузке в Excel картинки, штрихкоды и цены?
Нет. В таблицу выгружаются только значения колонок справочника. Картинки и файлы хранятся отдельно, а цены лежат в регистре цен — для них формируют отчёт, а не выгрузку справочника.
Чем выгрузка XML отличается от выгрузки `.dt`?
.dt — это вся база одной конфигурации одним файлом, загружается только в идентичную базу с полной перезаписью. XML — выборочные объекты (например, только номенклатуру), и через правила обмена их можно перенести даже в другую конфигурацию.
Нужны ли права администратора, чтобы выгрузить номенклатуру?
Для вывода списка в Excel — нет, достаточно прав на чтение справочника. Для выгрузки .dt нужен доступ к конфигуратору и монопольный вход, для публикации OData — права на веб-сервере.
Как регулярно отдавать номенклатуру на сайт без ручной выгрузки?
Настройте OData на веб-опубликованной базе или напишите скрипт с COM-соединением по расписанию. Оба способа отдают данные автоматически, без участия пользователя.