К статье
Практический материал

Автоматизация · 12 мин

Как сделать фид из 1С: практическое руководство

Пошаговая инструкция, как сделать фид из 1С: выгрузка товаров в YML, XML и CSV для маркетплейсов и Яндекс.Директа, настройка расписания и проверка результата.

Фид — это файл с актуальными данными о товарах (название, цена, остаток, ссылка, картинка), который регулярно забирают внешние системы: Яндекс.Директ, Google Merchant, маркетплейсы, агрегаторы цен, рекламные кабинеты ВКонтакте. Источником данных для фида почти всегда служит учётная система, и если товары, цены и остатки ведутся в 1С, логично формировать фид напрямую из неё — без ручной выгрузки в Excel и промежуточных файлов.

Способов сделать фид из 1С несколько: штатная выгрузка в YML из «Управления торговлей» или «Комплексной автоматизации», обмен с сайтом по CommerceML с последующей генерацией фида на стороне сайта, типовые модули обмена с маркетплейсами и собственная обработка, пишущая XML или CSV. Выбор зависит от того, куда отправляется фид, какая у вас конфигурация и есть ли возможность доработки.

Ниже разобраны основные варианты, пошаговая настройка типовой выгрузки, автоматизация по расписанию, проверка результата и типичные ошибки, из-за которых фид отклоняется площадками или содержит неактуальные данные.

Определите формат фида и требования площадки

Прежде чем настраивать выгрузку, выясните, какой формат принимает целевая система. Яндекс.Директ и большинство российских агрегаторов работают с YML (Yandex Market Language) — это XML-файл строгой структуры с блоками shop, categories, offers. Google Merchant принимает XML в своей схеме, а также CSV/TSV. Маркетплейсы (Ozon, Wildberries, Яндекс.Маркет по модели DBS/FBS) чаще всего требуют не файл, а обмен по API, где фид по сути заменяется передачей цен и остатков запросами.

Ключевые параметры, которые нужно зафиксировать заранее: обязательные поля (обычно id, название, цена, валюта, ссылка на товар, наличие), допустимый размер файла, частота обновления, требования к категориям (многие площадки требуют сопоставления с их собственным деревом категорий) и кодировку (как правило, UTF-8). Эти требования опубликованы в справке каждой площадки — сверяйтесь именно с ними, а не с примерами из статей.

Способ 1: штатная выгрузка в YML из типовой конфигурации

В «1С:Управление торговлей 11», «Комплексной автоматизации 2» и ERP есть встроенный механизм выгрузки каталога в YML. Обычно он находится в разделе, связанном с обменом данными или интернет-магазином: в УТ 11 путь примерно такой — «CRM и маркетинг» или «Администрирование» → «Обмен с сайтами» / «Выгрузка в Яндекс.Маркет», в зависимости от релиза. Точное расположение отличается между версиями, поэтому ищите по словам «YML», «Яндекс.Маркет», «выгрузка товаров» в командном интерфейсе.

Настройка сводится к нескольким шагам: создайте новую настройку выгрузки, укажите вид цен, из которого берётся цена, выберите склад для расчёта остатков, задайте отбор по товарам (например, только группа «Товары для сайта» с ненулевым остатком), сопоставьте категории номенклатуры категориям фида, укажите путь к файлу или FTP для выгрузки. После сохранения выполните выгрузку вручную и откройте полученный файл в браузере или текстовом редакторе — структура должна быть читаемой XML.

Настройка типовой выгрузки YML
  1. 1
    Создайте настройку выгрузки в разделе обмена с сайтами / маркетплейсами
  2. 2
    Укажите вид цен и склад для остатков
  3. 3
    Настройте отбор номенклатуры (группа, признак выгрузки, остаток больше нуля)
  4. 4
    Сопоставьте категории 1С с категориями фида
  5. 5
    Задайте путь сохранения файла или FTP-адрес
  6. 6
    Выполните выгрузку вручную и проверьте файл валидатором площадки

Ограничение типового механизма — жёсткая структура. Если площадка требует нестандартные поля (например, специфические атрибуты, несколько цен, промо-метки), штатной настройки может не хватить, и понадобится доработка или внешняя обработка.

Способ 2: фид через сайт и обмен по CommerceML

Если у вас есть интернет-магазин, часто рациональнее не формировать фид в 1С, а выгружать товары на сайт штатным обменом по CommerceML (модуль «Обмен с сайтом»), а фид генерировать уже средствами CMS — у 1С-Битрикс, Tilda, InSales и большинства движков есть готовые генераторы YML. В этом случае 1С остаётся источником цен и остатков, а сайт — точкой, где данные уже приведены к виду, удобному для внешних систем.

Плюс подхода — меньше доработок в 1С и проще поддержка. Минус — добавляется промежуточное звено: если обмен с сайтом сломался, фид устареет, даже если в 1С всё в порядке. Контролируйте оба звена: дату последнего успешного обмена в 1С и дату обновления фида на сайте.

Сравнение способов формирования фида

Штатная выгрузка YML из 1С

Подходит для УТ 11/КА 2/ERP без доработок; ограничена типовой структурой и требует настроенных цен и остатков

Фид на стороне сайта (CommerceML + CMS)

Удобен при работающем интернет-магазине; зависит от стабильности обмена 1С↔сайт

Собственная обработка/расширение

Полная гибкость под любые требования площадки; нужен разработчик и сопровождение при обновлениях

Обмен с маркетплейсом по API

Актуальные цены и остатки в реальном времени; требует типового модуля или интеграции, это уже не файловый фид

Способ 3: собственная обработка выгрузки

Когда типовых средств не хватает — нужен нестандартный формат, выгрузка из старой конфигурации (например, УТ 10.3), особые правила ценообразования или фильтрации — пишется внешняя обработка или расширение. Типовая схема такой обработки: запросом отбирается номенклатура с ценами и остатками, результат обходится в цикле, XML формируется через объекты ЗаписьXML, файл сохраняется на диск или отправляется по FTP/HTTP.

Фрагмент каркаса такой обработки на встроенном языке выглядит примерно так:

Запись = Новый ЗаписьXML;

Запись.ОткрытьФайл(ПутьКФайлу, "UTF-8");

Запись.ЗаписатьОбъявлениеXML();

Запись.ЗаписатьНачалоЭлемента("yml_catalog");

Запись.ЗаписатьАтрибут("date", Формат(ТекущаяДата(), "ДФ='yyyy-MM-dd HH:mm'"));

// ... shop, categories, offers ...

Запись.ЗаписатьКонецЭлемента();

Запись.Закрыть();

Важные технические моменты: экранируйте спецсимволы XML в названиях товаров (амперсанды, кавычки — объекты ЗаписьXML делают это автоматически, в отличие от склейки строк), формируйте id предложений стабильными (например, по GUID номенклатуры), иначе площадка будет считать товары новыми при каждой выгрузке, и пишите остатки и цены на момент формирования, а не на дату документа.

Автоматизация: выгрузка по расписанию

Разовый файл почти никому не нужен — площадки забирают фид по ссылке регулярно, поэтому выгрузку надо автоматизировать. В файловой базе проще всего настроить запуск 1С по расписанию через планировщик Windows с параметрами командной строки: указать базу, пользователя и обработку, которую нужно выполнить (параметр /Execute). В клиент-серверном варианте используйте регламентные задания: типовые выгрузки обычно уже имеют настройку расписания, а для собственной обработки создайте своё регламентное задание.

Частота выгрузки определяется скоростью изменения данных: если цены и остатки меняются несколько раз в день, разумный интервал — от 30 минут до нескольких часов; при редких изменениях достаточно ночной выгрузки. Учтите, что площадка забирает файл по своему расписанию — сверьте, чтобы ваша выгрузка успевала завершиться до момента забора.

Файл должен быть доступен площадке по постоянной ссылке. Практические варианты: выгрузка на FTP-сервер, публикация файла в каталоге веб-сервера, выгрузка напрямую в папку сайта. Проверьте, что ссылка открывается без авторизации и не меняется от выгрузки к выгрузке.

cmd
"C:\Program Files\1cv8\8.3.22.1750\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Trade" /N"Robot" /P"***" /Execute"D:\Scripts\ExportFeed.epf" /C"ExportYML"

Проверка фида и типичные ошибки

Перед тем как отдать ссылку площадке, проверьте файл. Минимальный набор проверок: XML открывается без ошибок синтаксиса (браузер покажет ошибку разбора, если файл битый), кодировка UTF-8, цены — числа с точкой-разделителем, ссылки на товары и картинки открываются, id предложений уникальны. Для YML используйте валидатор в кабинете Яндекс.Бизнеса или Директа — он укажет конкретные строки с ошибками.

Контрольные точки

Как проверить готовый фид

Файл открывается в браузере
Норма

XML отображается деревом без ошибок разбора

Тревожный признак

Сообщение об ошибке XML — битая структура или неэкранированные символы

Цены и остатки
Норма

Совпадают с данными 1С на момент выгрузки

Тревожный признак

Нулевые цены, устаревшие остатки, пустые поля

Ссылки на товары и картинки
Норма

Открываются без авторизации, ведут на нужные страницы

Тревожный признак

404, редирект на главную, ссылки на локальный сервер

Стабильность id между выгрузками
Норма

id товара не меняется от файла к файлу

Тревожный признак

Каждая выгрузка генерирует новые id — площадка видит «новые» товары

Валидатор площадки
Норма

Файл принят без критических ошибок

Тревожный признак

Отклонение по обязательным полям или формату

Типичные ошибки при настройке фида
01
Выгрузка товаров с нулевой ценой или остатком — площадка отклоняет позиции или показывает неактуальные данные
02
Нестабильные id предложений — статистика и привязка товаров на площадке сбрасываются при каждой выгрузке
03
Неверная кодировка файла — кириллица превращается в кракозябры, фид отклоняется
04
Ссылки на картинки с недоступного сервера — товары публикуются без изображений
05
Выгрузка по расписанию настроена, но никто не контролирует её падения — фид неделями устаревший
06
Ручная правка файла после выгрузки — при следующей автоматической выгрузке правки теряются

Ограничения и когда нужен разработчик

Самостоятельно, без привлечения программиста, реально настроить: типовую выгрузку YML в УТ 11/КА 2/ERP, обмен с сайтом по CommerceML, типовые модули обмена с маркетплейсами. Это работа для внедренца или грамотного администратора 1С, требующая в основном аккуратной настройки отборов, цен и расписания.

Разработчик понадобится, если: конфигурация старая или самописная и штатной выгрузки нет; площадка требует нестандартные поля или формат; нужна выгрузка по API с подтверждением доставки данных; требуется сложная логика цен (разные цены для разных площадок, наценки, округления). Также к специалисту стоит обратиться, если база клиент-серверная и регламентные задания должны работать под нагрузкой — ошибки в коде фоновых заданий могут влиять на производительность всей системы.

Маршрут решения

Как выбрать действие

УТ 11 / КА 2 / ERP и нужен YML для ДиректаНастройте штатную выгрузку YML и регламентное задание
Есть сайт с работающим обменом CommerceMLГенерируйте фид средствами CMS, из 1С только цены и остатки
Старая или самописная конфигурацияЗакажите внешнюю обработку выгрузки у разработчика
Маркетплейс требует актуальные остатки в реальном времениПереходите с файлового фида на обмен по API

FAQ

Можно ли сделать фид из 1С:Розница или УНФ?

Да. В «Управлении нашей фирмой» есть штатные механизмы обмена с сайтами и маркетплейсами, через которые формируется выгрузка каталога. В «Рознице» типовой выгрузки YML может не быть — там фид обычно делают через обмен с сайтом или внешнюю обработку. Проверьте раздел обмена данными в вашей версии конфигурации.

Как часто нужно обновлять фид?

Ориентируйтесь на скорость изменения цен и остатков. Если остатки меняются в течение дня, выгружайте файл каждые 1–4 часа; при стабильном каталоге достаточно раза в сутки. Учитывайте расписание забора файла площадкой — оно указано в её кабинете.

Почему площадка отклоняет фид с ошибкой в структуре?

Чаще всего причины — неэкранированные спецсимволы (&, кавычки) в названиях товаров, неверная кодировка, отсутствие обязательных полей или цены в неверном формате. Откройте файл в браузере: он покажет строку с ошибкой XML. Затем прогоните файл через валидатор площадки — он перечислит оставшиеся проблемы.

Можно ли выгружать в фид только часть товаров?

Да, и это правильная практика. В типовых настройках выгрузки есть отборы: по группе номенклатуры, по наличию остатка, по признаку выгрузки. Рекомендуется завести отдельное свойство или флажок «Выгружать в фид» и отбирать по нему — так проще управлять составом, не трогая настройку.

Что делать, если в фиде должны быть разные цены для разных площадок?

Заведите в 1С отдельный вид цен для каждой площадки и настройте отдельную выгрузку под каждую. Если типовой механизм не позволяет несколько настроек, потребуется доработка — либо вторая обработка, либо параметризация существующей.

Обязательно ли выкладывать фид на FTP?

Нет. Главное требование — файл должен быть доступен площадке по постоянной публичной ссылке без авторизации. Это может быть FTP, каталог вашего сайта или любой веб-сервер. Выбирайте вариант, который проще поддерживать в вашей инфраструктуре.

Итог

Что важно запомнить

Начните с требований площадки и выберите способ: штатная выгрузка YML, фид на стороне сайта или собственная обработка. Настройте отбор товаров, стабильные id и выгрузку по расписанию, выложите файл по постоянной ссылке и проверьте валидатором. Доработки делайте расширением и тестируйте на копии базы.