Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Прошу помочь с "ОбменССайтомСервер, Несоответствие фасету MaxLength = '80'

Прошу помочь с "ОбменССайтомСервер, Несоответствие фасету MaxLength = '80'
Я
   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
а так-то, в ид лучше пихать серилизованную ссылку на объект, а не строку транслита
   hhhh
 
4 - 04.06.20 - 00:18
(0) наверно не в ио поле пишешь. Описание товара - это вообще-то реквизит длиной 1024. А ты его почему-то в идентификатор хочешь загнать. Всё перепутал.
   n7e
 
5 - 04.06.20 - 07:49
(4) загнали видимо разрабы этого всего чуда в перьях) я лиш хочу найти самый простой способ обойти ошибки, и не исключаю что это ошибки загрузки информации из других баз.

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

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

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

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

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

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

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

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

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

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

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

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

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

p.s. через 11 дней суд на условно-досрочное, кроет по тихоньку из за нервяков.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.