Выгрузка справочника номенклатуры из 1С 8.3: от Excel до обмена с сайтом

· 9 мин

Содержание

Самый быстрый способ получить номенклатуру — открыть справочник Номенклатура, нажать Еще в командной панели списка и выбрать Вывести список.... Получится табличный документ, который сохраняется в Excel. Для обмена с сайтом или маркетплейсом этого мало: там нужен структурированный XML или выгрузка по формату площадки.

Какой способ выбрать, зависит от того, куда едут данные. Для разовой таблицы «посмотреть и отправить коллеге» хватит вывода списка. Для регулярной загрузки на сайт на 1С-Битрикс нужен CommerceML. Для маркетплейса — свой формат прайса или сервис интеграции. Ниже — все рабочие варианты с точными путями и примером кода.

Что умеет штатная выгрузка списка в Excel

Откройте нужный справочник:

  • В 1С:Бухгалтерии 3.0 — Справочники → Товары и услуги → Номенклатура.
  • В Управлении торговлей 11 — раздел НСИ и администрирование → Номенклатура (или через Нормативно-справочная информация).

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

Дальше Еще → Вывести список.... В открывшемся окне отметьте галочками поля, которые попадут в таблицу, и способ вывода — Табличный документ. Нажмите ОК.

Получите табличный документ прямо в 1С. Чтобы сохранить его файлом: главное меню → Файл → Сохранить как... → выберите тип Лист Excel 2007 (*.xlsx) или Лист Excel (*.xls).

Если нужен только список наименований и артикулов для прайса — это самый короткий путь. Ни настроек обмена, ни кода.

В том же окне Вывести список... вместо табличного документа можно выбрать вывод в текстовый документ — это удобно, когда данные дальше вставляются в письмо или в другую программу обычным копированием. Табличный документ при этом полностью редактируемый: перед сохранением в Excel можно удалить лишние строки, переставить колонки, добавить итоги.

Есть нюанс с группами. Если справочник иерархический и в списке включён просмотр по группам, выгрузится содержимое открытой группы. Чтобы получить все позиции разом, переключите список в режим без иерархии (Еще → Режим просмотра → Список) — тогда «Вывести список » отдаст всю номенклатуру плоским перечнем.

Ограничение способа: выгружаются поля карточки как колонки, без цен из регистров и без остатков. Цены и остатки — это уже отчёт, а не справочник.

Выгрузка через универсальный отчёт и обработки

Когда нужны не только реквизиты карточки, но и цены, характеристики, остатки — берите отчёт.

Отчеты → Стандартные отчеты → Универсальный отчет. В шапке выберите тип источника Справочник, объект Номенклатура, вариант — основная таблица или одна из подчинённых (например, характеристики). Через Настройки добавьте нужные поля, группировки и отборы.

Готовый отчёт выгружается в Excel той же командой — главное меню → Файл → Сохранить как..., либо Еще → Сохранить.

Для цен в Управлении торговлей удобнее отчёт по видам цен: он тянет актуальные значения из регистра, а не из карточки. В Бухгалтерии цены номенклатуры хранятся в регистре Цены номенклатуры и выводятся отдельным отчётом по ценам.

Отдельно про дополнительные реквизиты и свойства. Если в карточку номенклатуры добавлены свои поля (Администрирование → Общие настройки → Дополнительные реквизиты и сведения), в универсальном отчёте они доступны для вывода наравне со стандартными — их нужно добавить в настройках как поля. В простом «Вывести список» такие реквизиты тоже видны, если соответствующие колонки включены в форму списка.

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

Экспорт в XML и JSON для обмена с сайтом

Для сайта на 1С-Битрикс стандарт — формат CommerceML 2. Его понимает штатный механизм «Обмен с сайтом».

В Управлении торговлей 11 включите обмен в разделе администрирования (НСИ и администрирование), в группе настроек интеграции с сайтом. Там задаётся узел обмена, адрес сайта и расписание. Механизм сам формирует два XML — import.xml (товары, разделы, свойства) и offers.xml (цены и остатки, торговые предложения).

Эти файлы можно выгрузить и вручную — для загрузки на сайт по FTP или через модуль импорта. Структура CommerceML фиксированная: каталог, группы, товары со свойствами, затем пакет предложений.

CommerceML понимает не только Битрикс — этот формат как основной или как один из поддерживаемых импорта берут и другие CMS, и многие модули интернет-магазинов. Поэтому, если сайт готов его принять, штатный обмен закрывает задачу без единой строки кода.

Если площадка ждёт не CommerceML, а произвольный XML или JSON, штатного механизма под неё нет. Такой файл формируется кодом (см. раздел про автоматизацию) или сторонней обработкой под конкретный формат. Для JSON в платформе есть объект ЗаписьJSON: он сериализует структуру с номенклатурой в корректный JSON с нужной кодировкой, без ручной сборки строк.

CommerceML завязан на идентификаторы (GUID) элементов 1С. Если выгружаете каталог кодом в обход штатного механизма, сохраняйте тот же идентификатор товара между выгрузками — иначе на приёмнике задвоятся позиции.

Форматы под разные приёмники:

ПриёмникФорматЧем формировать
Сайт на 1С-БитриксCommerceML 2 (XML)Штатный «Обмен с сайтом»
Свой сайт / CMSПроизвольный XML или JSONКод или внешняя обработка
Таблица для коллегиXLSX / XLSВывод списка, универсальный отчёт
Прайс для партнёраXLSX / CSVОтчёт по ценам

Как подготовить выгрузку под маркетплейсы

У OZON и Wildberries свой формат карточек, и прямой кнопки «выгрузить на WB» в типовой 1С нет. Работает это иначе.

Первый путь — сервис интеграции. Для маркетплейсов есть отдельные решения (в том числе от 1С и партнёров), которые забирают данные из базы и отправляют их через API площадки. В них настраивается сопоставление реквизитов 1С с полями карточки маркетплейса.

Второй путь — выгрузить прайс или остатки в Excel/CSV по шаблону площадки и загрузить вручную в личном кабинете. Шаблон (набор колонок: артикул, штрихкод, цена, остаток) задаёт сама площадка; вы готовите под него универсальный отчёт или обработку.

Штрихкоды в 1С хранятся в отдельном регистре сведений, а не в реквизите карточки, поэтому в выгрузку для маркетплейса их добавляют запросом или отчётом по штрихкодам. Если товар продаётся в вариациях (размер, цвет), на площадке каждая вариация — отдельная строка со своим штрихкодом, и в 1С ей соответствует характеристика номенклатуры. Выгрузка должна разворачивать номенклатуру по характеристикам, иначе вариации на карточке площадки «схлопнутся» в одну.

Что важно сопоставить при любом способе:

  • 🔑 Артикул и штрихкод (EAN-13) — ключ, по которому площадка узнаёт товар.
  • 💰 Цену — из нужного вида цен, а не из карточки.
  • 📦 Остаток — по складу, с которого идут отгрузки.
  • 🏷️ Характеристики (размер, цвет) — если товар с вариациями.
Куда выгружаете номенклатуру?

Кодировка и спецсимволы: почему выгрузка «ломается»

Самая частая жалоба — «выгрузил в CSV, открыл, вместо русских букв кракозябры». Причина почти всегда в кодировке.

Excel при сохранении в CSV (разделители — запятые) на русской Windows пишет файл в кодировке Windows-1251. Приёмник, который ждёт UTF-8, покажет абракадабру. И наоборот: файл в UTF-8 без BOM Excel откроет как Windows-1251.

Что делать:

  1. Уточните у приёмника требуемую кодировку — UTF-8 или Windows-1251.
  2. Если выгружаете кодом, задавайте кодировку явно при записи файла.
  3. Для CSV следите за разделителем: русский Excel по умолчанию ставит ;, а не , — приёмник должен ждать тот же.

Спецсимволы тоже портят файл:

  • Перенос строки или ; внутри наименования рвут структуру CSV — такие поля заключайте в кавычки или чистите при выгрузке.
  • Амперсанд &, угловые скобки < > и кавычки недопустимы в XML как есть — их экранируют (&amp;, &lt;, &gt;). Штатная запись XML делает это сама; при ручной сборке строки — следите вручную.
  • Лишние пробелы и неразрывные пробелы в артикулах ломают сопоставление на маркетплейсе.

XML и JSON по стандарту в UTF-8 — с ними проблема кодировки возникает реже, чем с CSV. Если есть выбор формата, для обмена берите XML/JSON.

Автоматизация: регулярная выгрузка кодом

Если выгрузка нужна по расписанию или в нестандартном формате, её пишут обработкой. Логика одна: запросом собрать номенклатуру, затем выгрузить результат в файл.

Пример — выборка номенклатуры запросом и запись в текстовый файл (основа для CSV или своего формата):

Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |   Номенклатура.Код КАК Код,
    |   Номенклатура.Артикул КАК Артикул,
    |   Номенклатура.Наименование КАК Наименование
    |ИЗ
    |   Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |   НЕ Номенклатура.ПометкаУдаления
    |   И НЕ Номенклатура.ЭтоГруппа";

Выборка = Запрос.Выполнить().Выбрать();

Запись = Новый ЗаписьТекста("C:\Обмен\nomenklatura.csv", КодировкаТекста.UTF8, ";");
Пока Выборка.Следующий() Цикл
    Строка = СтрШаблон("%1;%2;%3",
        Выборка.Код, Выборка.Артикул, Выборка.Наименование);
    Запись.ЗаписатьСтроку(Строка);
КонецЦикла;
Запись.Закрыть();

Кодировка здесь задана явно (КодировкаТекста.UTF8) — это и закрывает проблему из прошлого раздела. Разделитель ; совпадает с тем, что ждёт русский Excel.

Для XML вместо ручной склейки строк надёжнее ЗаписьXML или сериализация через СериализаторXDTO — они сами экранируют спецсимволы и держат кодировку.

Чтобы выгрузка шла без участия человека, обработку оформляют как регламентное задание на сервере (Администрирование → Обслуживание → Регламентные и фоновые задания) с нужным расписанием. В клиент-серверной базе такое задание выполняет сервер 1С в фоне; в файловой — задание отработает, только пока открыт клиент, поэтому для файловой базы автоматическую выгрузку чаще вешают на внешний планировщик, запускающий 1С в пакетном режиме.

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

Регламентное задание пишет файл на сервере 1С, а не на вашем компьютере. Путь C:\Обмен\... должен существовать именно на сервере, и у службы 1С должны быть права на запись в эту папку.

Чек-лист перед настройкой автоматической выгрузки:

Проверка перед автовыгрузкой
Выполнено: 0 / 5

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

Можно ли выгрузить номенклатуру вместе с остатками и ценами одним файлом?
Из справочника напрямую — нет, там нет остатков. Нужен отчёт: универсальный отчёт или отчёт по ценам и остаткам, он тянет данные из регистров. Для сайта цены и остатки едут отдельным пакетом offers.xml.
Как выгрузить только часть номенклатуры — одну группу или по отбору?
Примените отбор в списке справочника или в настройках отчёта перед выгрузкой. Способ «Вывести список» выгружает ровно то, что показано на экране с учётом отбора и открытой группы.
В каком формате выгружать для сайта на 1С-Битрикс?
CommerceML 2 — это два XML-файла, import.xml и offers.xml. Их формирует штатный механизм «Обмен с сайтом»; вручную собирать такой файл не нужно.
Почему после выгрузки в CSV вместо русских букв непонятные символы?
Не совпала кодировка. Excel на русской Windows пишет CSV в Windows-1251, а приёмник часто ждёт UTF-8. Уточните нужную кодировку и задайте её явно при выгрузке.
Есть ли готовая кнопка «выгрузить на OZON или Wildberries»?
В типовой конфигурации прямой кнопки нет. Данные уходят либо через сервис интеграции по API площадки, либо выгрузкой в Excel/CSV по шаблону маркетплейса с ручной загрузкой в личном кабинете.