По сути, вопрос к разработчикам, но если кто решил эту проблему подскажите
ИМ, все товары в свое время загружали на сайт через CSV, а в 1с импортировались только заказы. Причины: не знаю как сейчас, но год назад в 1с загрузить товары из CSV и т.д. с несколькими картинками это было на гране фантастики)). На днях обновил 1с и hostCMS до последних версий, и обнаружил что механизм синхронизации стал более гибким, и решил настроить выгрузку из 1с на сайт цен и остатков.
Пока, не выходит...
Для примера, стрктура каталогов в 1С:
1с_Товары
1с_Вилки
1с_Ложки
Структура групп в HostCMS:
HC_Товары (XML_ID=1)
HC_Приборы (XML_ID=2)
HC_Вилки (XML_ID=3)
HC_Ложки (XML_ID=4)
Задача для примера: выгрузить остатки и цены по товарам из 1с на сайт - из "1с_Товары -> 1с_Ложки" в "HC_Товары -> HC_Приборы -> HC_Ложки"
В 1с в настройках выгрузки указываю:
Группа номенклатуры = '1с_Ложки' (выбираю из каталога номенклатуры 1с)
Наименование каталога = 'HC_Ложки' (в hostCMS - $sCatalogName)
Идентификатор каталога товаров XML ID = '2' (в hostCMS - $sCatalogId)
В итоге получаю на сайте вот такое:
HC_Товары (XML_ID=1)
HC_Приборы (XML_ID=2)
HC_Вилки (XML_ID=3)
HC_Ложки (XML_ID=4)
1с_Ложки (XML_ID=bffba4b2-f515-11e5-880c-685d43720307) - суда загрузились все товары из 1с
Выяснил, что параметр $sCatalogName HostCMS получает, но по сути игнорирует его, помещая товары не в него ($sCatalogName="HC_Ложки"
а создает новую группу с названием из ("Группа номенклатуры", т.е. "1с_Ложки"
и с ID этого каталога из 1с !!! Не вникал в CML 2,0 но другого объяснения не нашел, т.к. можно сколько угодно переименовывать/переносить этот каталог в 1С, а в CMS и по удалять все. При полной выгрузке на сайте в HC_Приборы (XML_ID=2) всегда создается группа с одним и тем же ID (в моем случаи ID=bffba4b2-f515-11e5-880c-685d43720307), и с именем как называется каталог в 1с, хотя повторюсь нужно-то с именем $sCatalogName которое я указал в настройках выгрузки в 1с, да и ID из 1с брать тоже нет необходимости. Ведь поиск на существования группы ведется по ID. А указывать это ID группы 1c не дает, только имя группы. т.е. даже если имена каталога в 1с и группы в CMS будут одинаковые (ну id у них естественно будут разные раз я создавал структуры ручками в CMS), например "1с_Товары -> Ложки", а на сайте "HC_Товары -> HC_Приборы -> Ложки" все равно получается так же - HostCMS создаст 2-ую группу с таким же именем "Ложки" и с ID каталога из 1с (который как я полагаю берется из import.xml) и загрузит/обновит товары в ней.
В общем в логике 1с синхронизации есть не точность, данные обновляются не в группе с именем $sCatalogName(в 1с - "Наименование каталога"
, а в группе с ID каталога из 1с.
Вопрос это поправят? Может есть костыль - как настроить выгрузку/обновление товаров из 1с, с учетом того что в 1с и на сайте разная структура каталогов и в hostCMS эта структура уже существует с загруженными в неё товарами?