Эта инструкция описывает рабочую схему связки 1С → Eofferix → UMI.CMS для каталога и штатную схему UMI.CMS → 1С для заказов. Общая установка модуля и базовое подключение описаны в статье «Импорт каталога в UMI.CMS через Eofferix», а здесь собран именно сценарий 1С: полный каталог, обмен изменениями, идентификаторы и диагностика заказов.
Как работает связка
1С отправляет в Eofferix файлы каталога: товары, разделы, торговые предложения, цены, остатки, изображения и свойства. Eofferix собирает, преобразует и отправляет подготовленный результат в модуль на сайте UMI.CMS. Модуль записывает данные в каталог UMI.CMS.
Заказы идут другим путем. Когда покупатель оформляет заказ на сайте, UMI.CMS сама формирует обмен с 1С. Eofferix в этот момент не передает заказ. Поэтому задача Eofferix - заранее загрузить каталог так, чтобы UMI.CMS могла передать в 1С понятные идентификаторы товара и выбранного торгового предложения.
Что Eofferix должен загрузить для заказов
| Данные | Где настраивается | Зачем это нужно |
|---|---|---|
Товарный external_id | В полях идентификации товаров и в снапшоте у узла товара | По нему UMI.CMS и 1С понимают, какая номенклатура была заказана. |
external_id торгового предложения | В полях идентификации торговых предложений и в снапшоте внутри роли ТП | По нему 1С понимает конкретный вариант: размер, цвет, упаковку или другой вариант товара. |
| Торговые предложения | В снапшоте через роль «Торговое предложение» | Если предложения не созданы, сайт может показать общий остаток товара, но заказ не будет связан с вариантом 1С. |
| Цена и остаток предложения | В полях внутри роли ТП | Покупатель должен заказать именно тот вариант, у которого есть цена и остаток. |
Артикул ТП vendor_code | В системных полях торгового предложения, если нужен артикул | Это видимый артикул предложения. Он не заменяет external_id, но может использоваться для поиска, если так выбрано в шаблоне. |
Главное правило идентификации
Пользователь может выбрать любое поле для поиска товаров и предложений. Если в шаблоне выбран external_id, Eofferix ищет по external_id. Если выбран артикул, Eofferix ищет по артикулу. Сервис не должен сам подменять выбранное поле другим.

External ID, GUID, ID страницы и Артикул ТП
| Поле | Что это значит | Использовать для заказов 1С |
|---|---|---|
external_id | Штатный 1С-идентификатор объекта. Для товара и ТП это разные значения. | Да, обычно это основной вариант. |
Служебный ключ Eofferix guid | Внутренний ключ Eofferix для сличения внутри сервиса. | Нет, это не поле обмена заказами UMI.CMS. |
ID страницы UMI id | Внутренний ID страницы или объекта в конкретной установке UMI.CMS. | Нет, кроме сценария обратной загрузки в тот же сайт. |
Артикул товара artikul | Обычное поле товара в шаблонах данных UMI.CMS. | Можно использовать только если бизнес специально сличает по артикулу товара. |
Артикул ТП vendor_code | Системное поле торгового предложения UMI.CMS. | Можно использовать для поиска ТП, если это выбрано в шаблоне. Для 1С-заказов external_id все равно нужно проверить отдельно. |
Снапшот для полного каталога 1С
В полном каталоге нужно отметить роли: раздел, товар и торговое предложение. Значение с идентификатором товара привяжите к external_id товара. Значение с идентификатором предложения привяжите к external_id торгового предложения. Цены, остатки, размеры, цвета и другие свойства предложения должны быть внутри роли ТП.

Если товары и предложения приходят отдельно
В 1С файлы import.xml и offers.xml могут приходить отдельно. В этом случае предложения нужно связать с товарами по ключу товара. Иногда внешний код предложения выглядит так: product-guid#offer-guid. Тогда из части до # получают ключ товара, а из части после # - ключ предложения.
Такой способ не заменяет роли снапшота. Он только помогает Eofferix понять, к какому товару относится предложение, когда в исходных файлах товары и предложения лежат в разных ветках.
Свойства торговых предложений
Свойства ТП должны записываться в data-object конкретного предложения, обычно в группу trade_offers. Размер, цвет, артикул ТП, цена предложения и остаток предложения не должны попадать в свойства родительского товара, если в снапшоте они находятся внутри роли торгового предложения.

Полный обмен: профиль-владелец каталога
Полный обмен получает весь каталог из 1С и приводит сайт к состоянию источника. Обычно такой профиль запускают реже: например, раз в день или вручную после большой правки каталога.
Для полного обмена логично включать привязку элементов к профилю обмена. Тогда Eofferix понимает, какие товары, разделы и предложения относятся именно к этому источнику, и очистка после загрузки не должна затрагивать чужой каталог.
| Настройка полного профиля | Рекомендуемое значение |
|---|---|
| Источник | Полный каталог 1С, где есть все актуальные товары и предложения. |
| Сценарий | Полная синхронизация источника или другой полный сценарий, который выбран осознанно. |
| Привязка элементов к профилю | Включена, если профиль является владельцем каталога. |
| Очистка отсутствующих объектов | Только в рамках текущего источника и с лимитом защиты удаления. |
| Принудительное удаление пропавших картинок | Только если текущий источник гарантированно содержит полный набор картинок. |
Обмен изменениями: отдельный профиль
Обмен изменениями получает только то, что изменилось в 1С: цены, остатки, отдельные свойства, новые картинки или новые варианты. Такой профиль запускают чаще, например каждые 30 минут.
Для обмена изменениями лучше использовать отдельный источник и отдельный профиль. Этот профиль не должен забирать владение каталогом у полного профиля, если полный профиль остается главным источником правды.
| Настройка профиля изменений | Рекомендуемое значение |
|---|---|
| Источник | Отдельная точка выгрузки 1С для изменений. |
| Сценарий | Бережное обновление или другой сценарий без полной очистки каталога. |
| Привязка элементов к профилю | Отключена, если полный профиль должен оставаться владельцем каталога. |
| Удаление отсутствующих объектов | Обычно отключено. Если включены правила по нулевому остатку, они должны касаться только объектов, которые пришли в текущем изменении. |
| Пустые картинки | Не удалять существующие картинки, если в изменении картинки просто не пришли. |
Как завести два источника 1С
- Создайте или оставьте источник для полного обмена 1С.
- Создайте второй источник для обмена изменениями.
- В 1С настройте полную выгрузку в первый источник, а выгрузку изменений - во второй.
- Скопируйте профиль полного обмена, чтобы сохранить типы данных, роли и привязки полей.
- В копии замените источник на источник изменений.
- В профиле изменений отключите настройки, которые делают профиль владельцем каталога или запускают полную очистку.
- Проверьте на небольшом изменении: цена, остаток, одно новое свойство или одна новая картинка.
Безопасное удаление
Удаление в полном обмене и удаление в обмене изменениями - разные сценарии. В полном обмене отсутствующий товар может означать, что его надо убрать с сайта. В обмене изменениями отсутствующий товар чаще означает только то, что он не менялся и в этот файл не попал.
Картинки в полном и частичном обмене
Если полный каталог пришел без картинок из-за сбоя выгрузки или архива, принудительное удаление картинок может стереть изображения на сайте. В частичном обмене отсутствие картинки чаще всего не означает, что ее надо удалить.

Стоимость и повторные запуски
После первой полной загрузки повторные обмены должны в основном находить существующие товары и предложения. Если объект не изменился, он должен проходить как дешевое действие UMI.CMS · элемент без изменений. Если повторный запуск снова выглядит как создание всего каталога, проверьте поля идентификации, сохраненность external_id и привязку элементов к профилю.
Проверка перед тестовым заказом
- Откройте товар в админке UMI.CMS.
- Проверьте блок 1С-идентификатор у товара. Там должен быть внешний код 1С, а не текст «не задан».
- Откройте блок торговых предложений. Предложения должны быть в списке, а не только общий остаток у товара.
- Проверьте у выбранного предложения цену, остаток, артикул ТП и 1С-идентификатор предложения.
- Создайте тестовый заказ на сайте с конкретным вариантом товара.
- После выгрузки заказа в 1С проверьте, что 1С нашла существующую номенклатуру, а не попыталась создать новую.
Если заказ пришел в 1С без товара
| Симптом | Что проверить |
|---|---|
| В заказе нет номенклатуры | У товара и выбранного ТП не заполнен external_id или 1С не получила этот ключ из UMI.CMS. |
| 1С пытается создать новый товар | В заказ ушел ключ, которого нет в базе 1С, или в UMI.CMS записан не тот идентификатор. |
| На сайте есть товар, но нет ТП | Проверьте роль торгового предложения в снапшоте и связь предложения с товаром. |
| У товара есть общий остаток, но предложения пустые | Остаток был записан в товар, а не в торговые предложения, или ТП были удалены очисткой. |
| После обмена пропали картинки | Проверьте, не пришел ли источник без картинок и не включено ли принудительное удаление пропавших изображений. |
| Появились лишние корневые разделы | Проверьте корневой раздел UMI для выгрузки и поле идентификации разделов. |
Минимальный контрольный набор
- Один товар с двумя торговыми предложениями.
- У товара заполнен
external_id. - У каждого ТП заполнен свой
external_id. - Цена и остаток лежат на ТП, если сайт продает варианты.
- Размер и цвет лежат в свойствах ТП, а не в свойствах товара.
- Изображения не удаляются при частичном обмене без картинок.
- Полный профиль владеет каталогом, профиль изменений не забирает владение.
- Тестовый заказ с конкретным ТП находится в 1С как существующая номенклатура.