Выгрузка справочника номенклатуры из 1С 8.3: от Excel до обмена с сайтом
Содержание
Самый быстрый способ получить номенклатуру — открыть справочник Номенклатура, нажать Еще в командной панели списка и выбрать Вывести список.... Получится табличный документ, который сохраняется в 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) — ключ, по которому площадка узнаёт товар.
- 💰 Цену — из нужного вида цен, а не из карточки.
- 📦 Остаток — по складу, с которого идут отгрузки.
- 🏷️ Характеристики (размер, цвет) — если товар с вариациями.
Еще → Вывести список) или универсальный отчёт → сохранить в XLSX.Кодировка и спецсимволы: почему выгрузка «ломается»
Самая частая жалоба — «выгрузил в CSV, открыл, вместо русских букв кракозябры». Причина почти всегда в кодировке.
Excel при сохранении в CSV (разделители — запятые) на русской Windows пишет файл в кодировке Windows-1251. Приёмник, который ждёт UTF-8, покажет абракадабру. И наоборот: файл в UTF-8 без BOM Excel откроет как Windows-1251.
Что делать:
- Уточните у приёмника требуемую кодировку — UTF-8 или Windows-1251.
- Если выгружаете кодом, задавайте кодировку явно при записи файла.
- Для CSV следите за разделителем: русский Excel по умолчанию ставит
;, а не,— приёмник должен ждать тот же.
Спецсимволы тоже портят файл:
- Перенос строки или
;внутри наименования рвут структуру CSV — такие поля заключайте в кавычки или чистите при выгрузке. - Амперсанд
&, угловые скобки<>и кавычки недопустимы в XML как есть — их экранируют (&,<,>). Штатная запись 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С должны быть права на запись в эту папку.
Чек-лист перед настройкой автоматической выгрузки:
Частые вопросы
Можно ли выгрузить номенклатуру вместе с остатками и ценами одним файлом?
offers.xml.Как выгрузить только часть номенклатуры — одну группу или по отбору?
В каком формате выгружать для сайта на 1С-Битрикс?
import.xml и offers.xml. Их формирует штатный механизм «Обмен с сайтом»; вручную собирать такой файл не нужно.