Доработка интеграции Битрикс-сайт для архитектуры smartHUB
Адаптация механизмов передачи данных из 1С на Битрикс-сайт
Прямой доступ к данным в архитектуре smartHUB
Доработка позволяет преодолеть архитектурные ограничения типовых решений 1С и оптимизирует процесс синхронизации с сайтом на Битриксе
- Не требуется загружать файлы картинок в 1С
- Не требуется загружать данные о ценах в типовые регистры 1С
- Не требуется создавать склад виртуальных остатков поставщиков
- Не требуется создавать доп.свойства и реквизиты по видам номенклатуры. Свойства для сайта генерируются на основании полученных данных от поставщиков
Функциональность модуля
- Передача изображении на сайт
- Передача цен из данных регистров smartHUB
- Передача остатков о складах поставщиков
- Автоматическая генерация свойств товаров
Дисклаймер: Мнение, высказываемое в этой статье является оценочным суждением разработчиков smartHUB занимающихся интеграционными задачами с Битрикс-Сайт и никаким образом не могут рассматриваться как несущие репутационный (или иной) ущерб уважаемой компании разработчику Битрикс и фирме 1С
Логистическая информация: цены и остатки
Архитектура модуля интеграции 1С-Битрикс сайт базируется на типовом решении от 1С подразумевающем:
Цены хранятся в регистре цен номенклатуры
Остатки хранятся в регистре остатков по складам
Таким образом, для передачи на сайт данных о товарах, находящихся на складах ваших поставщиков требуется эмуляция этих остатков на "виртуальных" складах. Типовая архитектура 1С позволяет это делать только в единой транзакции на все обрабатываемые позиции - в виде документа, меняющего остатки на складах. Хотя в некоторых версиях УТ такой подход изменен, но это не меняет сути: Для передачи данных об остатках требуются дополнительные действия с базой данных, приводящих к длительным блокировкам работы пользователей
Аналогичная проблема возникает при установке цен для номенклатуры: Требуется формировать документ установки цен для товаров поставщиков
Последствия такого подхода те же: длительная блокировка работы при обработке этой транзакции (проведение документа)
В системе smartHUB изначально предусмотрены механизмы позволяющие формировать виртуальные остатки поставщиков и устанавливать цены в типовые регистры 1С на базе алгоритмов формирования цен smartHUB.
Однако такой подход исключается при размерах каталога превышающем 10.000 товаров из-за описаных выше ограничений типового решения 1С
Последствия: длительные блокировки, дополнительная нагрузка на вычислительные мощности и дополнительный обьем базы данных
Но самое неприятное следствие - страдет актуальность данных о ценах и остатках на сайте, т.к. для их формирования и передачи требуется много времени
Информация о товаре: свойства и изображения
Подход типового решения 1С к формированию состава свойств конкретного товара:
Товар обладает базовыми реквизитами, изначально описанными в конфигурации (группа, производитель, артикул и тд)
Состав реквизитов может быть расширен мехнизмом дополнительных реквизитов и свойств, которые делятся на 2 части:
1. Общие реквизиты - те что будут доступны для любого товара
2. Реквизиты по виду номенклатуры (категории) - для товаров этого вида
Такой подход отлично работает для каталогов, которые ведутся вручную внутри компании, но абсолютно не применим для компаний, импортирующих данные из внешних источников по следующим причинам:
Каталогизировать импортируемые каталоги по видам (категориям) номенклатуры (чтобы разарботать план свойств для каждого вида) - предельно трудоемко, хотя такая возможность и предоставляется системой smartHUB.
Отказаться от каталогизации и заносить все свойства в общие реквизиты - фактически сломает работу 1С (например, при открытии карточки номенклатуры система просто зависнет если таких свойств будет большое число)
Зачастую мы подключаемся к работе в клиентских проектах где уже загружена какая-то часть номенклатуры и встречаем полный отказ от механизма свойств на сайтах т.к. их разработчики не смогли найти рационального и работающего решения задачи передачи свойств на сайт
Передача свойств товаров - ключевая задача современного интернет-магазина, т.к. является базой для построения фильтрации и описания товаров
В типовой архитектуре 1С изображения товаров хранятся в виде файлов локально в БД (рекомендуемый режим - в томах на диске)
При получении данных от внешних систем такой подход требует загрузки существенного обьема файлов на сервер БД, а также времени и ресурсов на эту загрузку. Объем дополнительного места для хранения может измеряться сотнями гигобайт (режим хранения off-line в контент-менеджере)
smartHUB рекомендует использовать альтернативную методику работы с картинками: в БД загружаются только ссылки на картинки на сайты поставщиков (режим хранения on-line в контент-менеджере)
Внутри типового решения 1С картинки хранимые в формате on-line доступны в любой процедуре, использующей стандартизированный метод 1С РаботаСФайлами.ДвоичныеДанныеФайла для получения данных присоединенных файлов. Доработка таких решений (в том числе и сторонних решений) не требуется
Битрикс не испьзует в своем модуле методологию типового решения 1С и получает данные о файле своим способом, по сути дублируя функциональность базового решения 1С
Последствием этого становится невозможность работы типового модуля синхронизации Битрикс в режиме smartHUB:on-line. Это требует фактической загрузки картинок локально (переход на режим off-line), либо доработку модуля синхронизации Битрикс с 1С