CommerceML: 1С и характеристика в виде "флажка"

Не могу подружить 1с и Cs cart в плане характеристик типа “флажок”, голова просто уже кругом идет.

Я пытаюсь отправить на сайт из 1с характеристику с форматом “булево значение”:
Создаю в 1с у товара доп. реквизит, тип булево, называю характеристику “тест флажков”, ставлю в номенклатуре галочку:

%D0%A2%D0%B5%D1%81%D1%82%20%D1%84%D0%BB%D0%B0%D0%B6%D0%BA%D0%BE%D0%B2

В настройках доп реквизита можно переназначить - какое значение он будет передавать: 1/0, да/нет, ложь/истина и любые произвольные значения но сейчас делаю всё штатно.

Делаю обмен с сайтом, на сайт приходит эта характеристика, создается новая, синхронизируется, но цель у неё не “поиск товаров через фильтры” а “дополнительная информация”, формат у неё не “флажок” а “текст или число”, значение “да”:

В карточке товара выглядит так:
%D0%A2%D0%B5%D1%81%D1%82%20%D1%84%D0%BB%D0%B0%D0%B6%D0%BA%D0%BE%D0%B2%20%3D%20%D0%B4%D0%B0

Хорошо, я захожу в настройки характеристики и вручную меняю у неё Цель на “поиск товаров через фильтры” а внешний вид на “флажок” Из карточки товара характеристика пропадает.

Делаю обмен заново. В этот товар прописывается “да”, которое теперь нужного типа и можно сделать фильтр. Но если убрать галочку из 1с - на сайте оно не пропадает (или не превращается в “нет”).
Если вместо пустоты передавать N/ложь/0/нет, всё что угодно - поведение такое-же

То есть один раз, приняв из 1с любое значение характеристика на сайте становится равной “да”, только вручную в настройке карточки товара на сайте можно убрать галочку и значение превратится в “нет”

Я вижу сейчас две проблемы:

  • На сайте у типа характеристики “флажок” есть три значения: пусто/Y/N
    Потому что в карточке товара эта характеристика может вообще не показываться, а может выводиться в виде “да/нет”
  • абсолютно не понятно, как передавать на сайт значения такого типа, чтобы они работали исправно… или хоть как-то работали

Я пробовал экспериментировать со значениями, которые идут из 1с, пробовал делать экспорт товара из сайта и писать так-же как там получалось на выходе: “С[Y]”, просто N Y Да Нет Yes Истина Ложь, разные вариации, но к решению так и не пришел…

Кто-нибуть сталкивался с подобным? В какую сторону можно копнуть?

Копнуть в сторону небольшой кастомной доработки модуля обмена с 1с. Из коробки оно не формирует флажки. Просто добавить условие чтобы если <ТипЗначений> у характеристики в файле выгрузки из 1с соответствует типу значений флажков, характеристике задавать другой тип.

У доп. реквизитов в 1с есть типы, они передаются в файле выгрузки. Вот по ним условие и ставить. У меня нет примера с флажками, но просто посмотрите на то что выгружается в /www/var/files/exim/[сегодняшняя дата]/import0_1.xml.

1 лайк

То есть я правильно понимаю, что 1с передает то что в ней выглядит как флажки в виде “текста”?
Не хотелось бы менять обмен, но видимо придётся(

Это у меня всё строки(и пара типа “Справочник”), примера актуального нет. 1С флажки как-то по-другому вроде называет.

По другому, но не так как это на сайте должно быть - так я понимаю?)

Насколько я понимаю, из коробки обмен умеет фактически лишь либо как строки, либо как числа устанавливать тип. характеристик, в зависимости от значений передаваемых. А флажки ни при каких условиях не ставятся - вот тут то и надо доработать чтобы они заработали.

1 лайк

Получается, что 1с экспортирует у меня это сейчас в таком формате:

<ЗначенияСвойства>
  <Ид>a325943e-421b-11ec-8914-871434e1d6dc</Ид>
  <Значение>Да</Значение>
</ЗначенияСвойства>

<Свойство> 
 <Ид>a325943e-421b-11ec-8914-871434e1d6dc</Ид>
 <Наименование>Проверка галочек</Наименование>
 <ТипЗначений>Строка</ТипЗначений>
</Свойство>

А в каком нужно, чтобы сайт понял, что это галочка?)

Выше посмотреть, сначала идёт оглавление свойств, до товаров.

У меня 1c отправляет значения с типами:

<ТипЗначений>Строка</ТипЗначений>
и
<ТипЗначений>Справочник</ТипЗначений>

А на сайте, чтобы принялось как “галочка”, какой тип значения надо подставлять?

На сайте без доработок кода никакой тип значений выбранных в 1с не заработает. В 1с, предполагаю, тип значения нужен булево.

То есть доработка нужна как на стороне 1с, так и на сайте?

Вроде, только на стороне сайта. 1С то тип значений доп. реквизита передает.

Вот выгрузка товара с этой характеристикой, я убрал всё не нужное. То что в 1с выглядит как галочка обменом передаётся как строка(