Интеграция интернет-магазина на платформе 1С-Битрикс с конфигурацией 1С:Управление торговлей 11 (УТ 11) — это классическая задача для e-commerce. Однако при её реализации разработчики часто сталкиваются с дилеммой: использовать ли встроенный (штатный) механизм обмена 1С или установить специализированный модуль, предоставляемый компанией «1С-Битрикс».
В этой статье мы подробно рассмотрим, как решить две наиболее популярные и сложные задачи интеграции: выгрузку индивидуальных картинок для каждой характеристики товара (SKU) и передачу нескольких типов цен. Мы проанализируем ограничения штатного механизма, разберем преимущества модуля от Битрикса и пошагово настроим систему для корректной работы.
Штатный обмен, встроенный в 1С:УТ 11, функционирует по стандартному протоколу CommerceML. Он отлично справляется с простыми задачами (выгрузка базового каталога товаров, цен, остатков и получение заказов), но пасует перед сложными сценариями.
Специализированный модуль от «1С-Битрикс» устанавливается в базу 1С как расширение конфигурации (файл с расширением .cfe). Это позволяет сохранить конфигурацию 1С:УТ 11 на полной поддержке, не препятствуя ее типовому обновлению. Модуль существенно расширяет стандартный протокол обмена и содержит множество готовых инструментов для кастомизации данных без изменения программного кода 1С.
---
Когда у одного товара есть несколько характеристик (например, одежда разного цвета), покупатель на сайте должен видеть соответствующую картинку при выборе конкретной характеристики. Рассмотрим, почему возникает проблема и как ее решить.
Проблема штатного обмена 1С:
В типовой архитектуре CommerceML изображения привязываются к основному товару (номенклатуре). Если мы попытаемся прикрепить изображение к характеристике через дополнительные реквизиты (используя тип значения Файл или Изображение), штатный выгрузчик передаст этот файл просто как свойство. На стороне Битрикса эта картинка запишется в текстовое поле или в прикрепленные файлы торгового предложения, но она не станет главной картинкой анонса или детального просмотра SKU. В результате визуального переключения картинок на сайте при смене цвета не произойдет.
Решение с использованием модуля «1С-Битрикс»:
В модуле от Битрикса реализован специальный инструмент «Картинки и файлы для характеристик номенклатуры». Он позволяет сопоставить изображения конкретным характеристикам номенклатуры. При генерации XML-пакета обмена модуль переопределяет стандартные теги и помещает картинки характеристик именно в те узлы XML, которые отвечают за детальное и анонсное изображения торгового предложения на сайте.
Рассмотрим по шагам, как организовать хранение файлов и их выгрузку:
НСИ и администрирование -> Настройки работы с файлами -> Хранить файлы в томах на диске.USR1CV8), должна иметь полные права на чтение и запись в сетевую или локальную папку с томами файлов. Загрузку и привязку картинок к характеристикам в 1С следует выполнять непосредственно в сеансе, запущенном на сервере (например, через RDP), чтобы исключить проблемы с доступностью путей к файлам.Справочник.ХарактеристикиНоменклатуры, и передаст их на сайт.---
Выгрузка нескольких типов цен (например, «Розничная», «Оптовая», «Дилерская») требует правильной настройки как в ERP-системе 1С, так и учета ограничений редакции CMS «1С-Битрикс».
В 1С:УТ 11 цены не выгружаются «напрямую» из справочника видов цен. Они жестко привязаны к соглашениям с клиентами. Выполним следующие настройки:
НСИ и администрирование -> Настройки разделов -> Продажи -> Оптовые продажи и установим флаг «Типовые соглашения с клиентами».НСИ и администрирование -> Настройки пользователей и прав -> Внешние пользователи и включим опцию «Разрешить доступ внешним пользователям».Прочие условия обязательно установим флаг «Доступно внешним пользователям для обмена с сайтом».Соглашение, установим вид сравнения В списке и выберем все созданные нами типовые соглашения.Только при такой цепочке настроек XML-выгрузка будет содержать информацию обо всех необходимых типах цен.
Перед запуском обмена критически важно проверить редакцию вашей CMS:
---
Проанализируем еще несколько технических аспектов, которые помогут избежать сбоев при интеграции:
1. Двусторонний обмен в реальном времени (Real-time)
Модуль от Битрикса поддерживает мгновенную отправку изменений. При изменении цены номенклатуры или проведении документа оплаты/отгрузки в 1С, модуль генерирует точечный XML-пакет и отправляет его на сайт без ожидания регламентного задания. Это позволяет поддерживать актуальность остатков на сайте в режиме реального времени.
2. Контейнерный обмен документами
В современных версиях модуля (начиная с 6.5) используется контейнерный обмен. Ранее каждый связанный документ (заказ, оплата, отгрузка) отправлялся отдельным пакетом, что создавало высокую нагрузку на базу данных и приводило к рассинхронизации. Контейнерный механизм собирает все документы по сделке в один пакет, гарантируя корректное проведение оплат и закрытие заказов на сайте.
3. Подводный камень: Оптимизация картинок по контрольным суммам
Частая проблема администраторов: картинку удалили на сайте вручную, запускают обмен заново, но изображение в интернет-магазине не появляется.
Выясним причину: в модуле обмена по умолчанию работает оптимизация. Система рассчитывает хэш-сумму (MD5) файла картинки в 1С и сравнивает ее с хэшем на сайте. Поскольку файл в 1С не менялся, его контрольная сумма совпадает с предыдущей отправленной версией, и модуль решает не тратить трафик на повторную передачу файла.
Для исправления этой ситуации необходимо временно отключить опцию Использовать контрольные суммы элементов для оптимизации обновления каталога на стороне сайта в настройках интеграции и запустить полную выгрузку.
Для визуализации логики работы выгрузки данных, рассмотрим пример кода, который модуль обмена использует для подготовки данных по характеристикам товара перед отправкой. Этот код иллюстрирует, как собираются ссылки на файлы картинок:
Функция ПолучитьФайлыХарактеристики(ТекущаяХарактеристика) Экспорт
Результат = Новый Массив;
// Выбираем прикрепленные файлы для конкретной характеристики
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПрисоединенныеФайлы.Ссылка КАК ФайлСсылка,
| ПрисоединенныеФайлы.ПутьКФайлу КАК Путь
|ИЗ
| Справочник.ХарактеристикиНоменклатурыПрисоединенныеФайлы КАК ПрисоединенныеФайлы
|ГДЕ
| ПрисоединенныеФайлы.ВладелецФайла = &Владелец";
Запрос.УстановитьПараметр("Владелец", ТекущаяХарактеристика);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СтруктураФайла = Новый Структура("Ссылка, Путь", Выборка.ФайлСсылка, Выборка.Путь);
Результат.Добавить(СтруктураФайла);
КонецЦикла;
Возврат Результат;
КонецФункции
Для реализации полноценного интернет-магазина с индивидуальными изображениями SKU и сложной ценовой политикой (опт/розница) встроенный обмен 1С:УТ 11 не подходит. Единственным верным решением является установка специализированного модуля от «1С-Битрикс» в виде расширения конфигурации 1С. Это сбережет архитектуру вашей базы данных и позволит настроить обмен в соответствии со всеми современными стандартами e-commerce.