Торговля и Склад · 11 мин
Как создать YML-фид из 1С: настройка выгрузки товаров
Как выгрузить YML-фид из 1С для Яндекс Маркета и других площадок: типовые модули, обработки, настройка соответствий, проверка и типичные ошибки.
YML-фид (Yandex Market Language) — это XML-файл строго определённой структуры, через который интернет-магазины передают каталог товаров на маркетплейсы, в прайс-агрегаторы и рекламные системы. В 1С такой файл можно сформировать тремя путями: типовым функционалом конфигурации, готовой внешней обработкой или собственной разработкой на встроенном языке. Выбор зависит от конфигурации, объёма каталога и требований площадки.
Типовые конфигурации «1С:Управление торговлей 11», «1С:Комплексная автоматизация» и «1С:ERP» уже содержат механизмы обмена с торговыми площадками и выгрузки каталога. Если у вас старая или сильно доработанная конфигурация, чаще всего используют внешние обработки формата .epf, которые читают остатки, цены и свойства номенклатуры и формируют XML по расписанию.
Прежде чем выбирать инструмент, уточните требования конкретной площадки: Яндекс Маркет, Google Merchant и другие сервисы по-разному трактуют обязательные элементы, категории и атрибуты. Фид, принятый одной площадкой, может быть отклонён другой из-за одного отсутствующего параметра.
Какие данные должны быть в 1С до выгрузки
Фид — это зеркало вашей базы: если в карточках номенклатуры нет данных, в YML их тоже не будет. Минимальный набор для каждого товара: наименование, цена с указанием валюты, остаток или признак доступности, ссылка на страницу товара на сайте и ссылка на изображение. Без этих элементов фид не пройдёт проверку ни на одной площадке.
Проверьте заполненность карточек до настройки выгрузки. Типичные пробелы: не указан производитель (элемент vendor), нет описания (description), не заполнены штрихкоды, пустые характеристики, из-за которых невозможно сформировать параметры param. В «1С:Управление торговлей» удобно использовать отчёт по номенклатуре с группировкой по незаполненным реквизитам или типовую обработку проверки заполнения.
Отдельно проверьте цены: фид должен содержать актуальный вид цен, совпадающий с ценой на сайте. Расхождение цены в фиде и на странице товара — одна из самых частых причин отклонения товаров модерацией маркетплейсов.
Совпадает ли вид цен в 1С с ценой на сайте
Есть ли картинки и доступны ли они по публичной ссылке
Актуальны ли остатки и как трактуется нулевой остаток
Заполнены ли размер, цвет, материал для параметров param
Способ 1: типовой обмен с торговыми площадками
В конфигурациях «1С:Управление торговлей 11», «1С:Комплексная автоматизация 2» и «1С:ERP» есть встроенная подсистема интеграции с маркетплейсами и выгрузки товарных каталогов. В зависимости от версии релиза она находится в разделах «Продажи», «CRM и маркетинг» или «Интеграция с маркетплейсами». Типовой механизм позволяет сформировать YML-файл или выгрузить каталог напрямую по API площадки.
Порядок настройки обычно такой: создаётся настройка обмена с конкретной площадкой, выбирается соглашение или вид цен, настраивается отбор товаров (по сегменту, группе номенклатуры, складу), задаётся соответствие категорий 1С категориям площадки. После этого выполняется тестовая выгрузка и проверяется результат.
Преимущество типового пути — поддержка со стороны 1С и обновления при изменении требований площадок. Недостаток — ограниченная гибкость: если площадка требует нестандартный набор атрибутов или у вас нестандартная структура каталога, типового обмена может не хватить.
- 1Откройте раздел обмена с торговыми площадками и создайте новую настройку
- 2Укажите вид цен, склад и отбор товаров для выгрузки
- 3Сопоставьте категории номенклатуры с категориями площадки
- 4Выполните тестовую выгрузку на небольшой группе товаров
- 5Проверьте файл валидатором площадки и исправьте замечания
- 6Настройте регламентное задание для автоматического обновления фида
Способ 2: внешние обработки для выгрузки YML
Для конфигураций «1С:Управление торговлей 10.3», «1С:Управление нашей фирмой» и нестандартных решений чаще применяют внешние обработки (файлы .epf). Такая обработка открывается через меню «Файл — Открыть», читает данные номенклатуры, цен и остатков и формирует XML-файл в указанную папку или сразу выкладывает его на FTP/HTTP-сервер, откуда площадка забирает фид по расписанию.
При выборе готовой обработки проверяйте: поддерживает ли она вашу версию конфигурации и платформы, умеет ли выгружать характеристики как отдельные офферы, есть ли настройка соответствия категорий и возможность отбора по наличию. Обработки без отбора по остаткам будут выгружать весь справочник, включая архивные и снятые с продажи позиции.
Внешняя обработка — компромисс между скоростью внедрения и контролем. Её код при необходимости дорабатывает программист 1С: добавляет нужные теги, меняет логику формирования offer id, подключает дополнительные источники данных, например описания из присоединённых файлов.
Способ 3: собственная выгрузка на встроенном языке
Если требования площадки нестандартны или данные размазаны по нескольким источникам (несколько складов, разные виды цен, описания в отдельном справочнике), пишут собственную выгрузку. В 1С для формирования XML используют объекты ЗаписьXML или построитель DOM: последовательно создаются элементы yml_catalog, shop, categories и offers.
Типовой каркас кода выглядит так: открывается поток записи XML, записывается заголовок с указанием кодировки UTF-8, затем из запроса к остаткам и ценам выбираются товары и для каждого формируется элемент offer с атрибутом id и дочерними элементами name, price, currencyId, categoryId, picture, url.
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ПутьКФайлу, "UTF-8");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("yml_catalog");
ЗаписьXML.ЗаписатьАтрибут("date", Формат(ТекущаяДатаСеанса(), "ДФ='yyyy-MM-dd HH:mm'"));
// далее shop, categories, offers из запроса
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();Самостоятельная разработка даёт полный контроль, но требует сопровождения: при изменении требований площадки код придётся править. Обязательно предусмотрите экранирование спецсимволов XML (&, <, >, кавычки) в наименованиях и описаниях — стандартные методы записи делают это автоматически, но при ручной конкатенации строк фид ломается на первом же товаре с амперсандом в названии.
Как настроить соответствие полей и категорий
Самая трудоёмкая часть — не формирование файла, а маппинг: соответствие данных 1С требованиям YML. Каждой группе номенклатуры нужно сопоставить категорию из классификатора площадки, каждому свойству товара — параметр param с правильным именем. Например, свойство «Цвет» в 1С должно попасть в элемент param с атрибутом name="Цвет", а не в произвольный текст описания.
Обратите внимание на идентификаторы офферов. Атрибут id элемента offer должен быть стабильным: если при очередной выгрузке у товара изменится id, площадка воспримет его как новый товар, и накопленная статистика, отзывы и привязка к карточке модели потеряются. Лучший вариант — использовать GUID номенклатуры или связку «номенклатура + характеристика».
Проверка и публикация фида
Сформированный файл сначала проверяют локально: открывают в браузере или редакторе и убеждаются, что XML не обрывается, кодировка UTF-8, спецсимволы экранированы. Затем файл размещают по постоянному URL (на сайте или FTP) и указывают ссылку в кабинете площадки. Большинство площадок имеют встроенный валидатор, который покажет ошибки и предупреждения по конкретным товарам.
Частые замечания валидатора: отсутствует обязательный элемент, цена указана с текстом вместо числа, ссылка на изображение недоступна извне (проверьте, что картинки открываются без авторизации), категория не соответствует классификатору площадки. Исправляйте замечания итеративно: сначала критичные ошибки, потом предупреждения.
После успешной загрузки настройте автоматическое обновление фида. Оптимально — регламентное задание в 1С, которое формирует файл 1–2 раза в сутки или чаще, если остатки и цены меняются в течение дня. Устаревшие цены и остатки — прямой путь к отклонению товаров и штрафным санкциям площадок.
Как проверить готовый фид
XML отображается с деревом элементов
Ошибка парсинга, обрыв на элементе offer
Файл принят, ошибки отсутствуют или незначительны
Критические ошибки по обязательным полям
Совпадают с данными на сайте и в 1С
Расхождения по части товаров
Картинки открываются без авторизации
Ошибка 403/404 по ссылкам picture
Типичные ошибки и ограничения
Первая ошибка — выгрузка всего справочника без отбора. В фид попадают услуги, архивные товары, позиции с нулевой ценой, и площадка отклоняет файл целиком или частично. Вторая — нестабильные идентификаторы офферов, о которых сказано выше. Третья — ручное формирование XML конкатенацией строк без экранирования спецсимволов.
Отдельная группа проблем — производительность. При каталоге в десятки тысяч позиций формирование фида может занимать заметное время и нагружать сервер 1С. Решение: выгружать пакетами, выполнять задание в нерабочее время, кэшировать данные, которые не меняются ежедневно (описания, категории).
Что важно запомнить
Сначала приведите в порядок данные номенклатуры, затем выберите инструмент: типовой обмен для современных конфигураций, обработку или собственную выгрузку для нестандартных случаев. Обязательно проверьте фид валидатором площадки и настройте автоматическое обновление по расписанию.
Частые вопросы о выгрузке YML из 1С
Можно ли создать YML-фид без программиста?
Да, если у вас актуальная типовая конфигурация (УТ 11, КА 2, ERP, УНФ) — встроенные механизмы обмена с площадками настраиваются через интерфейс без изменения кода. Понадобится аккуратно заполнить соответствие категорий и проверить результат валидатором. Для старых или нестандартных конфигураций без доработок обычно не обойтись.
Как выгрузить товары с характеристиками (размер, цвет)?
Каждая комбинация «номенклатура + характеристика» должна стать отдельным оффером со своим id, ценой и остатком. В типовых механизмах это включается настройкой выгрузки характеристик; в собственной выгрузке запрос строится по регистру остатков с разрезом по характеристикам. Общие свойства (бренд, материал) выносятся в param каждого оффера.
Как часто нужно обновлять фид?
Минимум — раз в сутки, оптимально — несколько раз в день, если цены или остатки меняются в течение дня. Многие площадки сами забирают файл по расписанию, поэтому достаточно, чтобы регламентное задание 1С обновляло файл по постоянному URL чаще, чем площадка его считывает.
Что делать, если площадка отклоняет фид из-за категорий?
Проверьте, что каждой группе товаров в 1С сопоставлена категория из актуального классификатора площадки, а не произвольное название. Классификаторы периодически обновляются: категория, выбранная ранее, могла быть упразднена. Скачайте свежий список категорий из кабинета площадки и обновите соответствие.
Подходит ли один фид для разных площадок?
Базовая структура YML совместима, но требования к обязательным элементам, категориям и параметрам у площадок различаются. Практичный подход — сформировать один «богатый» фид с максимальным набором параметров и проверить его валидаторами каждой площадки. Если требования конфликтуют, настраивают отдельные выгрузки с разными отборами и маппингом.
Файл большого каталога формируется очень долго. Как ускорить?
Исключите из запроса лишние соединения, получайте цены и остатки одним пакетным запросом, формируйте файл в фоновом задании в нерабочие часы. Если каталог очень большой, разбейте выгрузку на несколько файлов по группам товаров — многие площадки принимают несколько фидов в одном кабинете.