Экспорт справочника номенклатуры из 1С 8.3: все способы
Содержание
Быстрее всего выгрузить номенклатуру в таблицу: откройте Справочники → Номенклатура, нажмите Ещё → Вывести список и сохраните результат как файл .xlsx. Это разовая выгрузка для прайса, инвентаризации или проверки — настраивать ничего не нужно. Для переноса справочника в другую базу 1С понадобится обмен XML или выгрузка .dt, а для регулярной отдачи данных на сайт или в стороннюю программу — OData или COM-соединение.
Способ зависит от задачи. Разовый список — вывод в Excel. Перенос в новую базу той же конфигурации — XML или полная копия .dt. Автоматическая синхронизация — REST-интерфейс OData или внешнее COM-подключение. Ниже — каждый способ с точными путями меню и примерами.
Ещё → Вывести список, сохранить как .xlsx. Ничего настраивать не нужно..dt, если базы на одной конфигурации и переносите всё целиком..dt через конфигуратор или резервная копия из режима предприятия.Вывод списка номенклатуры в Excel
Самый простой путь, доступный любому пользователю без прав администратора.
- Откройте список:
Справочники → Номенклатура(в УТ 11 —НСИ и администрирование → Номенклатура). - При необходимости включите отбор — например, по группе или виду номенклатуры, чтобы выгрузить не весь справочник, а нужную часть.
- В командной панели списка нажмите
Ещё → Вывести список. - В открывшемся окне отметьте колонки, которые должны попасть в файл: код, артикул, наименование, единицу, ставку НДС и прочее. Выберите вывод в табличный документ.
- Полученную таблицу сохраните:
Главное меню → Файл → Сохранить как, тип файла —Лист 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-запросу, без установки платформы на стороне клиента.
Чтобы интерфейс заработал, нужно два шага.
- Включить состав OData. В режиме предприятия откройте
Главное меню → Все функции → Стандартный интерфейс ODataи отметьте объекты, которые будут доступны, — в нашем случае справочник номенклатуры. Без этого запрос вернёт пустой ответ. (Если пункта «Все функции» нет, его включают вСервис → Параметры → Отображать команду «Все функции».) - Опубликовать интерфейс на веб-сервере. При публикации базы на 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.
Через конфигуратор:
- Запустите базу в режиме
Конфигуратор. - Откройте
Администрирование → Выгрузить информационную базу. - Укажите имя файла
.dtи дождитесь завершения.
Загрузка в приёмник — обратной командой Администрирование → Загрузить информационную базу.
Выгрузка .dt требует монопольного доступа: все пользователи должны выйти из базы, иначе конфигуратор не начнёт операцию. Загрузка .dt полностью затирает базу-приёмник — её данные будут потеряны. Делайте это только на пустой или заведомо ненужной базе.
Важные оговорки по .dt:
- Файл содержит всю базу, а не только номенклатуру: выборочно вытащить из него один справочник нельзя.
- Загрузить
.dtможно только в базу с идентичной конфигурацией той же редакции. В другую конфигурацию он не встанет.
В типовых конфигурациях (например, в Бухгалтерии 3.0) резервную копию можно создать и без конфигуратора — в режиме предприятия через раздел обслуживания и резервного копирования. Это удобно, когда доступа к конфигуратору нет, но суть та же: сохраняется вся база.
Типичные ошибки при выгрузке номенклатуры
Ещё → Изменить форму, затем повторите Вывести список.Все функции → Стандартный интерфейс OData и флажок публикации на веб-сервере.comcntr.dll нужной версии или не совпадает разрядность платформы и скрипта. Зарегистрируйте библиотеку из каталога bin того же релиза..dt переносится только между идентичными конфигурациями.Отдельно про кодировку: если выгружаете в CSV и в Excel получаете «кракозябры», сохраняйте сразу в формат .xlsx — он хранит кодировку корректно, в отличие от текстового CSV.
Частые вопросы
Можно ли выгрузить только одну группу номенклатуры, а не весь справочник?
Вывести список установите в списке отбор по группе или откройте нужную папку — в файл попадут только отображаемые строки.Сохранятся ли при выгрузке в Excel картинки, штрихкоды и цены?
Чем выгрузка XML отличается от выгрузки `.dt`?
.dt — это вся база одной конфигурации одним файлом, загружается только в идентичную базу с полной перезаписью. XML — выборочные объекты (например, только номенклатуру), и через правила обмена их можно перенести даже в другую конфигурацию.Нужны ли права администратора, чтобы выгрузить номенклатуру?
.dt нужен доступ к конфигуратору и монопольный вход, для публикации OData — права на веб-сервере.