При интеграции 1С:Управление нашей фирмой (УНФ) с интернет-магазинами на базе CMS Битрикс часто возникает задача подмены стандартного Наименования номенклатуры на другие данные. Например, на сайте требуется отображать Полное наименование, которое содержит маркетинговое описание, или собирать заголовок товара из нескольких реквизитов (наименование + артикул + цвет). Рассмотрим подробно, как это реализовать различными способами: от программной модификации до использования стандартных инструментов.
Проанализируем архитектуру обмена в типовых решениях УНФ. Основная логика формирования данных для выгрузки в формате XML (CommerceML) часто заложена в систему компоновки данных (СКД). Выясним, где именно хранятся эти настройки.
В конфигурации существует справочник НастройкиИнтеграцииСИнтернетМагазином. Именно в нем содержатся макеты, определяющие, какие поля номенклатуры попадут в файл обмена. Разберем по шагам процесс изменения запроса:
НастройкиИнтеграцииСИнтернетМагазином через «Все функции» (или «Функции для технического специалиста»).Наименование.НаименованиеПолное или значение из Дополнительных реквизитов.Например, в запросе СКД можно найти фрагмент:
ВЫБРАТЬ
Номенклатура.Наименование КАК Наименование,
Номенклатура.Артикул КАК Артикул
ИЗ
Справочник.Номенклатура КАК Номенклатура
Для подмены наименования на полное, мы можем изменить его следующим образом:
ВЫБРАТЬ
ВЫБОР
КОГДА Номенклатура.НаименованиеПолное <> ""
ТОГДА Номенклатура.НаименованиеПолное
ИНАЧЕ Номенклатура.Наименование
КОНЕЦ КАК Наименование,
Номенклатура.Артикул КАК Артикул
ИЗ
Справочник.Номенклатура КАК Номенклатура
Важный момент: Прямое изменение макета в основной конфигурации приведет к сложностям при обновлении. Поэтому рассмотрим следующий критически важный шаг.
Чтобы ваши правки не были затерты при очередном обновлении 1С:УНФ, крайне рекомендуется использовать механизм Расширений конфигурации. Проанализируем, как правильно перенести изменения в расширение:
НастройкиИнтеграцииСИнтернетМагазином.Таким образом, система будет приоритетно использовать макет из расширения, а основная конфигурация останется на поддержке поставщика. Это позволит пользователю в любой момент отключить модификацию, просто деактивировав расширение.
Если стандартный механизм УНФ кажется слишком жестким, рассмотрим альтернативу — официальный модуль обмена, который выпускает компания «Битрикс». Посмотрим на его преимущества:
Иногда проще изменить логику обработки данных не в 1С, а на стороне сайта. Проанализируем ситуацию: если в XML-файл (import.xml) попадают оба поля (и короткое наименование, и полное как описание или свойство), мы можем перехватить их на стороне Битрикса.
Разберем два пути решения на стороне сайта:
bitrix/php_interface/init.php можно написать скрипт на языке PHP, который будет срабатывать в момент импорта товара.Пример логики для init.php (схематично):
Скрипт перехватывает событие OnBeforeIBlockElementUpdate. Если в данных от 1С присутствует заполненный доп. реквизит «Полное наименование», скрипт заменяет стандартное поле NAME на значение этого реквизита перед сохранением в базу данных сайта.
В актуальных редакциях 1С:Управление нашей фирмой (версии 3.0 и выше) разработчики добавили более современные инструменты управления обменом. Посмотрим на раздел «Выгрузка данных» в узле настройки интеграции.
В некоторых версиях конфигурации доступна таблица соответствия. Рассмотрим алгоритм проверки:
НаименованиеДляПечати.Выясним еще один «хитрый» способ без программирования. Если ваш обмен настроен так, что он выгружает все Дополнительные реквизиты номенклатуры, мы можем:
Этот подход удобен тем, что менеджеры в 1С могут управлять названием товара для сайта отдельно от учетного названия, которое используется во внутренних складских документах.
Мы рассмотрели несколько методов подмены наименования. Подведем итоги проанализированных ситуаций:
Помните, что любое изменение в структуре обмена требует тщательного тестирования на копии базы, чтобы убедиться в корректности выгрузки характеристик, цен и остатков, так как изменение запроса в СКД может косвенно повлиять на связанные поля.