Имя: Пароль:
1C
1С v8
Прошу помочь с "ОбменССайтомСервер, Несоответствие фасету MaxLength = '80'
0 n7e
 
03.06.20
20:42
Попросила меня одна знакомая сделать выгрузку на сайт.
и вот такое чудо, конфиг. Ювелирный торговый дом 10.5 (судя по виду это мод УТ)
честно уже давно не практиковал ничего, так как сижу в тюрьме 6 лет.

вопрос собственно в чем. некоторые описания товаров, как я понял, вмещают в себя все свойства итд, и получается Ид(код) более 80 символов, как найти эти товары либо отсечь лишние символы?

https://ibb.co/qJLRc0p


==============================================
{ОбщийМодуль.Б_ОбменССайтомСервер.Модуль(6113)}: Ошибка при установке значения атрибута контекста (ИдЗначения)
            XDTOСправочник.ИдЗначения    = XMLСтрока(ВыборкаЗначенийСвойств.ПереченьКамнейТранслит);
по причине:
Несоответствие типов XDTO
по причине:
Ошибка проверки данных XDTO:
Значение: '10mm-nit-silikonovaya-pokrytaya-zhemchuzhnoj-ehmuls-rodirovanie-yuvelirnyj-splav-zhemchuzhnaya-imitaciya-iz-nat' не соответствует простому типу: {urn:1C.ru:commerceml_2}ИдентификаторГлобальныйТип
Несоответствие фасету MaxLength = '80'
==============================================
1 Волшебник
 
модератор
03.06.20
20:46
(0) Вам в тюрьму интернет провели? Или удалось передать мобильник с кошкой?
2 Ёпрст
 
гуру
03.06.20
22:38
(0) дык обрежь до 80 символов и привет
3 Ёпрст
 
гуру
03.06.20
22:40
а так-то, в ид лучше пихать серилизованную ссылку на объект, а не строку транслита
4 hhhh
 
04.06.20
00:18
(0) наверно не в ио поле пишешь. Описание товара - это вообще-то реквизит длиной 1024. А ты его почему-то в идентификатор хочешь загнать. Всё перепутал.
5 n7e
 
04.06.20
07:49
(4) загнали видимо разрабы этого всего чуда в перьях) я лиш хочу найти самый простой способ обойти ошибки, и не исключаю что это ошибки загрузки информации из других баз.

(1) и то и то)))

(2) если бы я знал как то не просил бы о помощи)
6 Ёпрст
 
гуру
04.06.20
09:16
(5) Прав() Лев()..дарю..
7 n7e
 
04.06.20
10:41
(6) может это как то вам поможет? мне почему то кажется что решение где то тут

https://ibb.co/dkqWft0
8 Ёпрст
 
гуру
04.06.20
12:02
(7) поменяй на так:

XDTOСправочник.Значение   = XMLСтрока(ВыборкаЗначенийСвойств.ПереченьКамнейТранслит);
XDTOСправочник.ИдЗначения    = XMLСтрока(ВыборкаЗначенийСвойств.ПереченьКамней);
9 yzimin
 
04.06.20
12:38
Если вариант из (8) недопустим, то нужно схему XSD поправить руками.

Но в любом случае очень печально, что в модуле битрикса не стоит защита от дурака на обрезание лишних символов, сам натыкался на ограничения в 250 символов в адресной строке. Ошибка не критичная с точки зрения функционала, но вот обмен упал
10 n7e
 
04.06.20
20:48
(8) поправил, но теперь вот так. в принципе изменилось только то, что он не транслитом выдает )

https://ibb.co/JnZ7gL5
11 n7e
 
04.06.20
20:52
(9) есть ли у вас готовая наработка по решению этой нестыковочки?)
12 yzimin
 
05.06.20
08:49
(11) Везде, где можно потенциально превысить количество символов, пришлось вписать код из (6)
13 n7e
 
05.06.20
08:54
(12) прямо вот так Прав() Лев() ?)

может есть возможность поиска этих значений? просто возможно что всего несколько товаров с таким длинным хвостом *(надеюсь)
14 n7e
 
05.06.20
09:17
я как понял что то на подобии вот этого должно получится?

XDTOСправочник.ИдЗначения    = XMLСтрока(Лев((ВыборкаЗначенийСвойств.ПереченьКамнейТранслит),70));

поправьте если где в синтаксисе накосячил)
15 yzimin
 
05.06.20
09:48
(14) мы же не знаем твою бизнес-задачу. Варианта 3:
1. Ограничить количество символов на запись в сам справочник
2. Тупо прописать в выгрузке битрикса
3. Увеличить длину поля для XDTO

что тебе требуется, то и делай
16 n7e
 
05.06.20
11:22
(15) спасибо, выгрузка прошла сейчас по крайней мере.

а если вариант 3. это в пакетах? я искал , но не нашел где. можете ткнуть меня "рылом" в область поиска?)
17 yzimin
 
05.06.20
15:58
(16) В УТ11 например XSD лежит в планах обмена -> Б_ОбменССайтом -> СхемаXSDОбмена
Выгружаешь в файл, правишь, загружаешь назад
18 n7e
 
05.06.20
16:15
(17) Так, поправил, сейчас тестирую, если нифига то придется через Лев() все делать, там дальше еще одна ошибка с Предложение.Ид выскочила, попробовал Лев(), все отработало. Осталось только теперь на сайт без косяков это все загрузить.

О чудо, MaxLength = 254 решило проблему. Кстати в поддержке этой конфы (только что пришло письмо) что увеличьте длинну в XSD до 254 символов.

Всем огромнейшее спасибо. А я перехожу к след головоломке))))

Мир не без добрых людей. ;-)
p.s. через 11 дней суд на условно-досрочное, кроет по тихоньку из за нервяков.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.