Номенклатура из 1С наружу: Excel, CSV, CommerceML и выгрузка по расписанию
Содержание
Быстрее всего выгрузить каталог товаров из 1С так: откройте справочник «Номенклатура», выберите нужную группу, нажмите Ещё → Вывести список…, отметьте колонки и сохраните получившуюся таблицу в .xlsx кнопкой сохранения (Ctrl+S). Для интернет-магазина нужен другой путь — обмен с сайтом в формате CommerceML, он выгружает группы, свойства, картинки, цены и остатки.
Типичная ситуация: менеджер просит «скинуть прайс поставщику к обеду», а маркетплейсу и сайту нужен файл в своей структуре и каждый день. Первое решается за пять минут вручную. Второе — настройкой обмена или небольшой обработкой с расписанием. Ниже оба варианта для 1С:Предприятие 8.3 с интерфейсом «Такси» (Бухгалтерия 3.0, Управление торговлей 11).
Как выбрать способ выгрузки каталога
Сначала определите, кто получатель файла и как часто он нужен. От этого зависит формат.
| Способ | Формат | Когда подходит | Ограничения |
|---|---|---|---|
Ещё → Вывести список… | xlsx, xls, mxl, ods, txt | разовая выгрузка, прайс «на сейчас» | цены и остатки в список справочника не попадают |
| Отчёт с настройкой полей | xlsx, pdf, mxl | каталог с ценами, остатками, отбором по складу | нужна настройка варианта отчёта |
| Обмен с сайтом | CommerceML (XML) | интернет-магазин, CMS с модулем 1С | сайт должен поддерживать протокол |
| Своя обработка | CSV, XML, JSON | маркетплейс, B2B-портал, нестандартная структура | нужен программист или готовая обработка |
| Выгрузка в другую базу 1С | XML (EnterpriseData, правила КД) | перенос справочника между базами | для внешних систем не годится |
💡 Если файл нужен один раз — не настраивайте обмен. Если нужен еженедельно и дольше месяца — не делайте его руками: ошибки в ручной выгрузке накапливаются.
Подготовка справочника «Номенклатура» перед выгрузкой каталога
Получатель увидит ровно то, что лежит в базе. Дубли, пустые артикулы и позиции с пометкой удаления уедут вместе с каталогом. Перед первой выгрузкой стоит потратить час на чистку.
🔍 Что проверить:
- 🗑 Пометка удаления. Включите в списке отображение помеченных и решите: удалить их или исключить отбором.
- 👯 Дубли. В Бухгалтерии 3.0 есть обработка
Администрирование → Обслуживание → Корректировка данных → Поиск и удаление дублей. Ищите по наименованию и артикулу. - 🏷 Артикулы и штрихкоды. Для сайта и маркетплейса артикул — ключ сопоставления. Пустой или повторяющийся артикул даёт задвоенные карточки.
- 📁 Группы. Структура групп справочника станет структурой каталога на сайте. Разложите «Разное» и «Новые поступления» по нормальным разделам.
- 📏 Единицы измерения. «шт», «шт.», «штука» — для внешней системы это три разные единицы.
- 💰 Цены. Проверьте, что по нужному типу цен установлены актуальные значения документом «Установка цен номенклатуры».
Массово исправить реквизит у сотни позиций удобно обработкой Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов.
Групповое изменение и удаление дублей меняют рабочие данные сразу у всех выбранных элементов. Перед запуском сделайте резервную копию базы. Объединение дублей переписывает ссылки в документах, откатить его без копии не получится.
Выгрузка номенклатуры в Excel и CSV штатными средствами
Список справочника в Excel
Этот способ работает в любой конфигурации на платформе 8.3, потому что команда платформенная.
- Откройте
Справочники → Номенклатура(в Бухгалтерии 3.0) илиНСИ и администрирование → НСИ → Номенклатура(в Управлении торговлей 11). - Встаньте в нужную группу. Если нужен весь каталог, переключите список в режим без иерархии или выделите корень.
- При необходимости поставьте отбор: по виду номенклатуры, по группе, без помеченных на удаление.
- Нажмите
Ещё → Вывести список…. - В окне отметьте колонки: код, артикул, наименование, единица, вид номенклатуры. Уберите лишние.
- Нажмите «ОК». Откроется табличный документ.
- Сохраните его кнопкой с дискетой или
Ctrl+S, тип файла — «Лист Excel 2007-…» (.xlsx).
💡 В окне «Вывести список » можно вывести реквизиты, которые не видны в колонках списка. Ищите их в перечне доступных полей — там есть и дополнительные реквизиты.
Каталог с ценами и остатками
Цены и остатки хранятся не в справочнике, а в регистрах. Поэтому через «Вывести список» их не получить. Нужен отчёт.
| Конфигурация | Где взять каталог с ценами |
|---|---|
| Бухгалтерия 3.0 | раздел Отчеты → Универсальный отчет: тип источника — регистр сведений «Цены номенклатуры», отбор по типу цен |
| Управление торговлей 11 | отчёт «Прайс-лист» — найдите его поиском по интерфейсу (лупа в заголовке окна) |
В Бухгалтерии в регистре цен измерение называется «Тип цен», в Управлении торговлей — «Вид цены». Настройте поля, выведите отчёт и сохраните его так же, как список.
Как получить CSV
Табличный документ 1С напрямую в CSV с разделителем «;» не сохраняется. Есть два рабочих пути:
- 📄 Сохранить в
.xlsx, открыть в Excel и выбратьФайл → Сохранить как → CSV UTF-8 (разделители — запятые). Разделитель Excel возьмёт из региональных настроек Windows, для русской локали это точка с запятой. - ⚙️ Записать CSV программно — пример в разделе про обработки ниже. Так вы сами управляете разделителем, кодировкой и форматом чисел.
Выгрузка каталога из 1С на сайт через CommerceML
CommerceML — это открытый XML-формат обмена товарными данными. Его понимают Битрикс, большинство CMS через модули «Обмен с 1С» и многие B2B-платформы. Обмен с сайтом встроен в Бухгалтерию 3.0 и Управление торговлей 11.
Что уходит на сайт
Выгрузка состоит из двух основных файлов:
- 📦
import.xml— классификатор: группы, свойства, сами товары с артикулами, описаниями, единицами; - 💲
offers.xml— предложения: цены по выбранным типам цен и остатки по складам; - 🖼 папка
import_files— изображения товаров.
Каждый товар идёт с идентификатором — это GUID ссылки на элемент справочника. По нему сайт понимает, что товар уже есть, и обновляет его, а не создаёт новый.
Настройка обмена
- Включите обмен с сайтом в настройках синхронизации данных в разделе администрирования. В Управлении торговлей 11 он находится в группе настроек интеграции, в Бухгалтерии 3.0 — рядом с синхронизацией данных.
- Создайте узел обмена. Укажите адрес скрипта обмена на сайте, логин и пароль пользователя сайта. Для Битрикса адрес обычно заканчивается на
/bitrix/admin/1c_exchange.php. - Выберите, что выгружать: все группы или только отмеченные, типы цен, склады для остатков, нужны ли картинки.
- Выберите режим: только изменения или полная выгрузка. Для первого раза — полная.
- Запустите обмен вручную и откройте журнал обмена. Ошибки авторизации и превышения размера файла видны там.
Если у сайта нет HTTP-приёма от 1С, используйте выгрузку в каталог на диске. 1С положит те же import.xml и offers.xml в папку, а сайт или скрипт заберёт их оттуда.
Не пересоздавайте выгруженный товар в 1С новым элементом «с нуля». У нового элемента другой GUID, и на сайте появится второй товар, а старый с отзывами и ссылками останется висеть.
Внешние обработки и программная выгрузка номенклатуры
Когда маркетплейс или партнёр присылает свой шаблон с жёсткими колонками, проще всего написать небольшую обработку. Её подключают через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки или разово открывают через Файл → Открыть.
Ниже пример для Бухгалтерии 3.0: каталог с ценой по одному типу цен в CSV с точкой с запятой. Код выполняется на сервере.
&НаСервереБезКонтекста
Процедура ВыгрузитьКаталогCSV(ИмяФайла, ТипЦен)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Код КАК Код,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.ЕдиницаИзмерения.Наименование КАК Единица,
| ЕСТЬNULL(Цены.Цена, 0) КАК Цена
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК Цены
| ПО Цены.Номенклатура = Номенклатура.Ссылка
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа
| И НЕ Номенклатура.ПометкаУдаления
|УПОРЯДОЧИТЬ ПО
| Наименование";
Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
Запись = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8);
Запись.ЗаписатьСтроку("Код;Артикул;Наименование;Единица;Цена");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Строка = ПолеCSV(Выборка.Код) + ";"
+ ПолеCSV(Выборка.Артикул) + ";"
+ ПолеCSV(Выборка.Наименование) + ";"
+ ПолеCSV(Выборка.Единица) + ";"
+ Формат(Выборка.Цена, "ЧДЦ=2; ЧРД=.; ЧГ=0; ЧН=0");
Запись.ЗаписатьСтроку(Строка);
КонецЦикла;
Запись.Закрыть();
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолеCSV(Значение)
// Кавычки внутри текста удваиваем, переносы строк убираем
Текст = СтрЗаменить(Строка(Значение), """", """""");
Текст = СтрЗаменить(Текст, Символы.ПС, " ");
Текст = СтрЗаменить(Текст, Символы.ВК, "");
Возврат """" + Текст + """";
КонецФункции
Что здесь сделано осознанно:
- 🔢 цена форматируется с точкой и без разделителя тысяч:
1 250,5превращается в1250.50; - 🧷 текстовые поля в кавычках, поэтому точка с запятой в наименовании не ломает колонки;
- 🧹 переносы строк из наименования удалены — иначе одна позиция развалится на две строки;
- 📝 путь к файлу — серверный. В клиент-серверной базе файл окажется на сервере 1С, а не на компьютере пользователя.
В Управлении торговлей 11 запрос будет другим: в регистре цен измерение «Вид цены», а у позиций с характеристиками цена задаётся по характеристике. Структуру регистра смотрите в Конфигураторе, прежде чем переносить пример.
Для переноса справочника в другую базу 1С свои обработки не нужны. Есть синхронизация через EnterpriseData и обработки универсального обмена XML с правилами конвертации — но это сценарий «1С → 1С», внешняя система такой файл не прочитает.
Ошибки при экспорте каталога: кодировка, нули, числа
Почти все жалобы «файл кривой» сводятся к пяти причинам. Каждая видна по симптому.
💡 Проверяйте CSV не в Excel, а в простом текстовом редакторе: там видно реальное содержимое без «помощи» автоформата.
Автоматическая выгрузка каталога по расписанию
Обмен с сайтом
В настройках узла обмена с сайтом есть расписание. Задайте, например, выгрузку изменений каждые 30 минут и полную раз в сутки ночью. Обмен выполняется регламентным заданием.
В файловой базе регламентные задания выполняются только при открытом сеансе 1С. Если ночью все вышли из программы, ночная выгрузка не случится. Для стабильного расписания нужна клиент-серверная база или отдельный постоянно открытый сеанс.
Своя обработка по расписанию
Есть два варианта:
- Через дополнительные обработки. Обработку, зарегистрированную в «Дополнительных отчетах и обработках» с командой серверного вызова, можно поставить на расписание в её карточке. Это требует, чтобы обработка была написана под механизм подключения дополнительных обработок.
- Через планировщик Windows. Создайте bat-файл, который запускает 1С и открывает обработку. Обработка в обработчике открытия выполняет выгрузку и завершает работу программы.
"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" ENTERPRISE /F"D:\Base\Trade" /N"Обмен" /P"пароль" /Execute"D:\Scripts\ExportCatalog.epf" /DisableStartupMessages
Номер версии в пути замените на установленный у вас — он виден в папке C:\Program Files\1cv8.
Пароль в bat-файле лежит открытым текстом. Заведите для выгрузки отдельного пользователя 1С с правами только на чтение справочника и цен, а папку со скриптом закройте правами Windows.
Чтобы получатель не забрал недописанный файл, пишите во временное имя и переименовывайте после записи. Например, catalog.tmp → catalog.csv.
Как не пропустить сбой
Автоматическая выгрузка ломается тихо: файл просто перестаёт обновляться. Добавьте простые проверки:
- 📅 в имени или первой строке файла — дата и время выгрузки;
- 📊 сравнение числа строк с прошлым разом: падение на 30 % и больше — повод для уведомления;
- 📨 журнал обмена с сайтом раз в неделю глазами, даже если жалоб нет.
Частые вопросы о выгрузке каталога из 1С
Можно ли выгрузить каталог вместе с картинками в Excel?
import_files или через свою обработку, которая копирует файлы изображений рядом с CSV.