Автоматизация · 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.
- 1Создайте настройку выгрузки в разделе обмена с сайтами / маркетплейсами
- 2Укажите вид цен и склад для остатков
- 3Настройте отбор номенклатуры (группа, признак выгрузки, остаток больше нуля)
- 4Сопоставьте категории 1С с категориями фида
- 5Задайте путь сохранения файла или FTP-адрес
- 6Выполните выгрузку вручную и проверьте файл валидатором площадки
Ограничение типового механизма — жёсткая структура. Если площадка требует нестандартные поля (например, специфические атрибуты, несколько цен, промо-метки), штатной настройки может не хватить, и понадобится доработка или внешняя обработка.
Способ 2: фид через сайт и обмен по CommerceML
Если у вас есть интернет-магазин, часто рациональнее не формировать фид в 1С, а выгружать товары на сайт штатным обменом по CommerceML (модуль «Обмен с сайтом»), а фид генерировать уже средствами CMS — у 1С-Битрикс, Tilda, InSales и большинства движков есть готовые генераторы YML. В этом случае 1С остаётся источником цен и остатков, а сайт — точкой, где данные уже приведены к виду, удобному для внешних систем.
Плюс подхода — меньше доработок в 1С и проще поддержка. Минус — добавляется промежуточное звено: если обмен с сайтом сломался, фид устареет, даже если в 1С всё в порядке. Контролируйте оба звена: дату последнего успешного обмена в 1С и дату обновления фида на сайте.
Сравнение способов формирования фида
Подходит для УТ 11/КА 2/ERP без доработок; ограничена типовой структурой и требует настроенных цен и остатков
Удобен при работающем интернет-магазине; зависит от стабильности обмена 1С↔сайт
Полная гибкость под любые требования площадки; нужен разработчик и сопровождение при обновлениях
Актуальные цены и остатки в реальном времени; требует типового модуля или интеграции, это уже не файловый фид
Способ 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-сервер, публикация файла в каталоге веб-сервера, выгрузка напрямую в папку сайта. Проверьте, что ссылка открывается без авторизации и не меняется от выгрузки к выгрузке.
"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 — площадка видит «новые» товары
Файл принят без критических ошибок
Отклонение по обязательным полям или формату
Ограничения и когда нужен разработчик
Самостоятельно, без привлечения программиста, реально настроить: типовую выгрузку YML в УТ 11/КА 2/ERP, обмен с сайтом по CommerceML, типовые модули обмена с маркетплейсами. Это работа для внедренца или грамотного администратора 1С, требующая в основном аккуратной настройки отборов, цен и расписания.
Разработчик понадобится, если: конфигурация старая или самописная и штатной выгрузки нет; площадка требует нестандартные поля или формат; нужна выгрузка по API с подтверждением доставки данных; требуется сложная логика цен (разные цены для разных площадок, наценки, округления). Также к специалисту стоит обратиться, если база клиент-серверная и регламентные задания должны работать под нагрузкой — ошибки в коде фоновых заданий могут влиять на производительность всей системы.
Как выбрать действие
FAQ
Можно ли сделать фид из 1С:Розница или УНФ?
Да. В «Управлении нашей фирмой» есть штатные механизмы обмена с сайтами и маркетплейсами, через которые формируется выгрузка каталога. В «Рознице» типовой выгрузки YML может не быть — там фид обычно делают через обмен с сайтом или внешнюю обработку. Проверьте раздел обмена данными в вашей версии конфигурации.
Как часто нужно обновлять фид?
Ориентируйтесь на скорость изменения цен и остатков. Если остатки меняются в течение дня, выгружайте файл каждые 1–4 часа; при стабильном каталоге достаточно раза в сутки. Учитывайте расписание забора файла площадкой — оно указано в её кабинете.
Почему площадка отклоняет фид с ошибкой в структуре?
Чаще всего причины — неэкранированные спецсимволы (&, кавычки) в названиях товаров, неверная кодировка, отсутствие обязательных полей или цены в неверном формате. Откройте файл в браузере: он покажет строку с ошибкой XML. Затем прогоните файл через валидатор площадки — он перечислит оставшиеся проблемы.
Можно ли выгружать в фид только часть товаров?
Да, и это правильная практика. В типовых настройках выгрузки есть отборы: по группе номенклатуры, по наличию остатка, по признаку выгрузки. Рекомендуется завести отдельное свойство или флажок «Выгружать в фид» и отбирать по нему — так проще управлять составом, не трогая настройку.
Что делать, если в фиде должны быть разные цены для разных площадок?
Заведите в 1С отдельный вид цен для каждой площадки и настройте отдельную выгрузку под каждую. Если типовой механизм не позволяет несколько настроек, потребуется доработка — либо вторая обработка, либо параметризация существующей.
Обязательно ли выкладывать фид на FTP?
Нет. Главное требование — файл должен быть доступен площадке по постоянной публичной ссылке без авторизации. Это может быть FTP, каталог вашего сайта или любой веб-сервер. Выбирайте вариант, который проще поддерживать в вашей инфраструктуре.
Что важно запомнить
Начните с требований площадки и выберите способ: штатная выгрузка YML, фид на стороне сайта или собственная обработка. Настройте отбор товаров, стабильные id и выгрузку по расписанию, выложите файл по постоянной ссылке и проверьте валидатором. Доработки делайте расширением и тестируйте на копии базы.