Выгружаем справочник товаров из 1С — от Excel до обмена по расписанию
Содержание
Бухгалтер просит прайс в Excel, программист сайта — файл с товарами, а новую базу нужно наполнить справочником из старой. Три задачи — три разных способа выгрузить номенклатуру из 1С, и путать их не стоит.
Самый быстрый вариант: открыть справочник Номенклатура, нажать Ещё → Вывести список и сохранить результат в Excel. Для переноса между базами 1С берут выгрузку в XML, для интернет-магазина — формат CommerceML, а для постоянной интеграции — OData или внешнюю обработку
по расписанию.
Ниже — каждый способ с точными действиями, плюс разбор типичных ошибок при экспорте справочника товаров.
Ещё → Вывести список. Сохранить в .xlsx. Код ниже не нужен.Быстрый экспорт списка номенклатуры в Excel
Этот способ работает одинаково во всех конфигурациях на платформе 8.3 и не требует ни кода, ни прав разработчика.
- Откройте список справочника
Номенклатура. - В командной панели нажмите кнопку
Ещёи выберитеВывести список…. - В открывшемся окне отметьте нужные колонки и тип документа —
Табличный документ. - Нажмите
ОК— программа сформирует таблицу. - В готовом документе:
Главное меню → Файл → Сохранить каки выберите формат.
Табличный документ сохраняется в .xlsx, .xls, .ods и .mxl. Для .csv проще пересохранить готовый файл из Excel или воспользоваться обработкой выгрузки — прямого пункта «в CSV» в окне вывода списка нет.
В окне Вывести список можно выбрать Все колонки или Только видимые. Если нужных реквизитов (артикул, ставка НДС, единица) в списке не видно — сначала добавьте их через Ещё → Изменить форму, затем выводите.
Есть два полезных нюанса. Первый: если выделить в списке несколько строк перед выводом, в документ попадут только выделенные позиции — удобно, когда нужен не весь каталог, а пара групп. Второй: при выводе списка с иерархией строки-группы попадают в таблицу вместе с товарами, поэтому для чистого прайса иерархию лучше временно отключить кнопкой режима просмотра списка.
Когда нужен не просто перечень, а прайс с ценами, вместо вывода списка берут типовой отчёт по номенклатуре или прайс-лист: его тоже можно сохранить в Excel через Файл → Сохранить как. Отчёт в отличие от списка подтягивает цены из регистров, а не только реквизиты карточки.
Где открыть сам справочник, зависит от конфигурации:
| Конфигурация | Путь к справочнику |
|---|---|
| Бухгалтерия 3.0 | Справочники → Номенклатура |
| Управление торговлей 11 | НСИ и администрирование → Номенклатура |
| Розница | раздел с нормативно-справочной информацией → Номенклатура |
Вывод списка отдаёт только то, что видит текущий пользователь. Если у сотрудника ограничены права на отдельные группы товаров, часть номенклатуры в файл не попадёт. Для полной выгрузки запускайте экспорт под учётной записью с полными правами.
Перенос товаров в другую базу 1С через XML
Когда номенклатуру нужно загрузить в другую базу 1С (например, при переходе на новую конфигурацию), Excel не подойдёт — потеряются коды, иерархия групп и ссылки на единицы измерения. Здесь работает выгрузка в XML.
Для однотипных или похожих конфигураций подходит штатная «Синхронизация данных»: в разделе администрирования включается обмен, настраивается состав выгружаемых данных, и справочники переносятся вместе с кодами.
Для разнородных баз используют универсальную обработку выгрузки и загрузки данных в формате XML. Она сохраняет выбранные объекты метаданных в файл, который затем загружается в приёмник.
Порядок работы с универсальной обработкой:
- Откройте обработку в базе-источнике (
Файл → Открытьдля внешней обработки). - На закладке выгрузки отметьте объект
Справочник.Номенклатура. - При необходимости задайте отбор — например, по конкретной группе товаров.
- Выполните выгрузку в файл
.xml. - В базе-приёмнике откройте ту же обработку в режиме загрузки и укажите этот файл.
Загрузка пройдёт корректно только если структура справочника в обеих базах совпадает. Если состав реквизитов разный, нужны правила обмена (их готовят в отдельном инструменте конвертации данных), иначе часть полей не перенесётся.
Чтобы при повторной загрузке не появились дубли, сопоставление ведут по уникальному реквизиту — коду или артикулу. Если такого поля нет, 1С создаст новые элементы вместо обновления старых.
Когда конфигурации источника и приёмника сильно различаются, одной выгрузкой объектов не обойтись — нужны правила конвертации. Их готовят в отдельном инструменте («Конвертация данных »): там описывают, какой реквизит источника во что превращается в приёмнике. Готовые правила подключают к обмену, и тогда перенос идёт даже между разными редакциями — например, из устаревшей торговой конфигурации в актуальную.
Иерархию групп XML переносит целиком: структура дерева, вложенность и ссылки на родительские группы сохраняются. Это главное преимущество перед Excel, где дерево «схлопывается» в плоскую таблицу. Ссылки на единицы измерения, ставки НДС и другие связанные справочники при выгрузке тоже уходят в файл вместе с номенклатурой, если отметить их в составе выгрузки.
Выгрузка номенклатуры в УТ и Рознице: сайт и обмен с Бухгалтерией
В торговых конфигурациях у выгрузки товаров две основные задачи: отдать каталог на сайт и передать номенклатуру в бухгалтерскую базу.
Обмен с сайтом (CommerceML). Управление торговлей, Розница и Бухгалтерия умеют формировать выгрузку товаров в формате CommerceML — это стандарт, который понимают 1С-Битрикс и большинство движков интернет-магазинов. Настройка живёт в блоке обмена с сайтами: там задаётся, какие группы и свойства номенклатуры выгружать, формируются файлы с описанием товаров и с ценами/остатками (предложениями).
Выгрузка CommerceML обычно разбита на два файла: один описывает сам каталог — товары, группы и свойства, второй — предложения, то есть цены и остатки. Каталог меняется редко, поэтому его выгружают реже, а предложения — чаще, вплоть до нескольких раз в день. При первой настройке важно выбрать группы номенклатуры и набор свойств (характеристики, картинки, описания), которые должны уйти на сайт: всё остальное останется только в базе.
Синхронизация с Бухгалтерией. Чтобы номенклатура из УТ или Розницы попала в Бухгалтерию 3.0, настраивается типовая синхронизация данных между этими конфигурациями. Справочник товаров переносится автоматически при первой же синхронизации и далее обновляется по расписанию.
При обмене с сайтом выгружается не только список товаров, но и свойства, картинки и цены. Если на сайте не обновились остатки — проверьте, что в настройках обмена включена выгрузка предложений, а не только каталога.
Выгрузка цен в этих конфигурациях опирается на виды цен (в УТ и Рознице это «Виды цен», в Бухгалтерии — «Типы цен»): перед обменом убедитесь, что по товарам заполнен тот вид цены, который указан в настройке выгрузки.
OData, COM и внешние обработки для интеграций
Когда номенклатуру регулярно забирает стороннее приложение, разовый экспорт не годится — нужен программный доступ.
Стандартный интерфейс OData. Платформа 8.3 умеет отдавать справочники по протоколу OData без программирования на стороне 1С. Нужно опубликовать базу на веб-сервере и включить стандартный интерфейс OData, предварительно задав состав объектов в конфигураторе. После этого номенклатура доступна по адресу вида:
http://сервер/база/odata/standard.odata/Catalog_Номенклатура?$format=json
Это удобно для сайтов и мобильных приложений: данные приходят в JSON или XML, фильтры задаются прямо в запросе. Нужные параметры дописывают к адресу:
$select=Code,Description— вернуть только код и наименование, а не все поля;$top=100— ограничить число строк в ответе;$filter=DeletionMark eq false— исключить помеченные на удаление.
Так можно забирать не весь справочник, а только актуальные позиции и только нужные реквизиты — это заметно ускоряет обмен при большом каталоге.
COM-соединение. Для скриптов на стороне Windows подходит внешнее соединение через V83.COMConnector. Внешняя программа подключается к базе, читает справочник и выгружает его в нужный формат. Способ требует установленной платформы и аккуратной работы с лицензиями.
Внешние обработки. Если штатных инструментов мало, пишут внешнюю обработку (.epf), которая обходит справочник и формирует файл любой структуры — от прайса в Excel до выгрузки под конкретный формат партнёра. Такая обработка потом легко ставится на расписание (см. ниже).
OData и COM открывают доступ к данным базы напрямую. Выдавайте стороннему приложению отдельного пользователя с правами только на чтение нужных справочников, а не полные права.
Типичные ошибки при экспорте справочника товаров
Чаще всего проблемы возникают не в самой выгрузке, а в данных и кодировке.
.xlsx, а при работе с .csv указывайте кодировку UTF-8 при импорте в Excel.Ещё → Изменить форму, затем выводите список заново.Отдельная причина «грязной» выгрузки — дубли и пустые группы в самом справочнике. Перед серьёзным экспортом стоит проверить номенклатуру на одинаковые наименования и артикулы: чистить лучше источник, а не выгруженный файл.
Автоматическая выгрузка номенклатуры по расписанию
Если файл с товарами нужен каждую ночь или каждый час, выгрузку ставят на автозапуск.
Регламентное задание внутри базы. В клиент-серверном варианте 1С регламентное задание работает само по расписанию. В файловой базе оно выполняется только пока открыт хотя бы один сеанс, поэтому для файловой версии чаще используют внешний запуск.
Запуск по расписанию Windows. Внешнюю обработку выгрузки можно запускать из Планировщика заданий Windows в пакетном режиме. Команда выглядит так:
"C:\Program Files\1cv8\8.3.XX.YYYY\bin\1cv8.exe" ENTERPRISE ^
/F "D:\base" /N "Выгрузка" /P "пароль" ^
/Execute "D:\export_nom.epf" /DisableStartupMessages
ENTERPRISE— запуск в режиме 1С:Предприятие;/F— путь к файловой базе (для серверной используйте/S сервер\база);/Nи/P— пользователь и пароль;/Execute— какую внешнюю обработку выполнить при старте;/DisableStartupMessages— убирает всплывающие окна, чтобы запуск не зависал.
Параметры можно передать в обработку ключом /C — например, целевую папку выгрузки. Точный номер версии в пути (8.3.XX.YYYY) подставьте по своей установленной платформе.
Выгрузка под пакетным запуском занимает лицензию и может мешать пользователям, если идёт в рабочее время. Планируйте автозапуск на ночь или на часы наименьшей нагрузки.
Обмен с сайтом по расписанию. Для выгрузки на сайт отдельная обработка не нужна — в настройках обмена с сайтом задаётся интервал, и 1С сама формирует и отправляет файлы товаров.
Частые вопросы
Можно ли выгрузить номенклатуру с ценами и остатками одним файлом?
Вывести список — нет, он отдаёт только реквизиты справочника. Цены и остатки выгружают отчётом (например, прайс-листом) или обменом с сайтом в формате CommerceML, где цены и остатки идут отдельным файлом предложений.