Номенклатура из 1С наружу: Excel, CSV, CommerceML и выгрузка по расписанию

· 10 мин

Содержание

Быстрее всего выгрузить каталог товаров из 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 есть обработка Администрирование → Обслуживание → Корректировка данных → Поиск и удаление дублей. Ищите по наименованию и артикулу.
  • 🏷 Артикулы и штрихкоды. Для сайта и маркетплейса артикул — ключ сопоставления. Пустой или повторяющийся артикул даёт задвоенные карточки.
  • 📁 Группы. Структура групп справочника станет структурой каталога на сайте. Разложите «Разное» и «Новые поступления» по нормальным разделам.
  • 📏 Единицы измерения. «шт», «шт.», «штука» — для внешней системы это три разные единицы.
  • 💰 Цены. Проверьте, что по нужному типу цен установлены актуальные значения документом «Установка цен номенклатуры».

Массово исправить реквизит у сотни позиций удобно обработкой Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов.

Групповое изменение и удаление дублей меняют рабочие данные сразу у всех выбранных элементов. Перед запуском сделайте резервную копию базы. Объединение дублей переписывает ссылки в документах, откатить его без копии не получится.

Справочник готов к выгрузке
Выполнено: 0 / 6

Выгрузка номенклатуры в Excel и CSV штатными средствами

Список справочника в Excel

Этот способ работает в любой конфигурации на платформе 8.3, потому что команда платформенная.

  1. Откройте Справочники → Номенклатура (в Бухгалтерии 3.0) или НСИ и администрирование → НСИ → Номенклатура (в Управлении торговлей 11).
  2. Встаньте в нужную группу. Если нужен весь каталог, переключите список в режим без иерархии или выделите корень.
  3. При необходимости поставьте отбор: по виду номенклатуры, по группе, без помеченных на удаление.
  4. Нажмите Ещё → Вывести список….
  5. В окне отметьте колонки: код, артикул, наименование, единица, вид номенклатуры. Уберите лишние.
  6. Нажмите «ОК». Откроется табличный документ.
  7. Сохраните его кнопкой с дискетой или 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 ссылки на элемент справочника. По нему сайт понимает, что товар уже есть, и обновляет его, а не создаёт новый.

Настройка обмена

  1. Включите обмен с сайтом в настройках синхронизации данных в разделе администрирования. В Управлении торговлей 11 он находится в группе настроек интеграции, в Бухгалтерии 3.0 — рядом с синхронизацией данных.
  2. Создайте узел обмена. Укажите адрес скрипта обмена на сайте, логин и пароль пользователя сайта. Для Битрикса адрес обычно заканчивается на /bitrix/admin/1c_exchange.php.
  3. Выберите, что выгружать: все группы или только отмеченные, типы цен, склады для остатков, нужны ли картинки.
  4. Выберите режим: только изменения или полная выгрузка. Для первого раза — полная.
  5. Запустите обмен вручную и откройте журнал обмена. Ошибки авторизации и превышения размера файла видны там.

Если у сайта нет 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С. Если ночью все вышли из программы, ночная выгрузка не случится. Для стабильного расписания нужна клиент-серверная база или отдельный постоянно открытый сеанс.

Своя обработка по расписанию

Есть два варианта:

  1. Через дополнительные обработки. Обработку, зарегистрированную в «Дополнительных отчетах и обработках» с командой серверного вызова, можно поставить на расписание в её карточке. Это требует, чтобы обработка была написана под механизм подключения дополнительных обработок.
  2. Через планировщик 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.
Как выгрузить только товары без услуг?
Поставьте в списке отбор по виду номенклатуры или по признаку услуги. В своей обработке добавьте это же условие в запрос.
Какие права нужны пользователю для выгрузки?
Для списка и отчёта — чтение справочника «Номенклатура» и регистра цен. Для настройки обмена с сайтом — права администратора на синхронизацию данных.
Почему после выгрузки на сайте пропали товары?
Чаще всего в настройках узла сняли группу с выгрузки, а сайт при полной выгрузке деактивирует то, что не пришло. Проверьте отмеченные группы и режим обработки отсутствующих товаров на стороне сайта.
Сколько номенклатуры выгрузит «Вывести список» без зависаний?
Десятки тысяч строк выводятся, но долго и с большим расходом памяти на клиенте. Для каталога крупнее 20–30 тысяч позиций удобнее отчёт с отбором по группам или обработка, которая пишет файл на сервере.