Помогите разобраться с XDTO.

1. Dimka74 16.02.17 18:58 Сейчас в теме
Есть обмен между УТ 10.3 и 1с-Битрикс "Управление сайтом".
На стороне УТ при обмене есть ограничение на размер ДополнительноеОписаниеНоменклатуры.
Сам реквизит ограничений нет, а вот при обмене все символы которые за границей 10000 режутся.
Нашел такой фрагмент кода:
лДополнительноеОписаниеНоменклатуры = ?(СтрДлина(лОписаниеТовара) > 10000, Лев(лОписаниеТовара, 10000), лОписаниеТовара);

Вроде, все просто меняю 10тыщ на 100тыщ и должна быть радость, но не тут-то было.
При очередном обменен вываливается ошибка:
{ОбщийМодуль.Б_ПроцедурыИФункцииВыгрузкиДанныхНаСайт.Модуль(7102)}: Ошибка при установке значения атрибута контекста (Описание)
XDTOТовар[ТекСтр.НаименованиеПоля] = ?(лЗначение = NULL, ?(ТекСтр.НаименованиеПоля = "Вес" , 0, ""), лЗначение);
по причине:
Несоответствие типов XDTO
по причине:
Ошибка проверки данных XDTO:
Значение:Тут следует длинное описание номенклатуры
' не соответствует простому типу: {urn:1C.ru:commerceml_2}СтрокаТип
Несоответствие фасету MaxLength = '10000'

Значит нужно поправить размер переменной в XDTO, но где это сделать?
Смотрю в дерево конфигуратора, там Общие->XDTO-пакеты->CML208
Но там нет параметра длины переменной, где указывается длина?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
13. Dimka74 17.02.17 18:37 Сейчас в теме
(10)Бинго! В плане обмена Б_ОбменССайтом есть макет СхемаXSDОбмена
выгрузил в файл, а там
<xs:simpleType name="СтрокаТип">
<xs:restriction base="xs:string">
<xs:maxLength value="10000" />
</xs:restriction>
</xs:simpleType>


Сейчас поправлю и загружу файл обратно.
tdml; InsideIT; DIOmisus; igee12; +4 Ответить
10. antz 17.02.17 18:21 Сейчас в теме
Возможно еще, ты не в том пакете меняешь. В плане обмена нет случайно макетов с названием типа "СхемаXSDОбмена" или вроде того?
Vida; jig; Dimka74; +3 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. antz 17.02.17 10:24 Сейчас в теме
(1) не соответствует простому типу: {urn:1C.ru:commerceml_2}СтрокаТип

Может, в СтрокаТип покопаться?
12. spacecraft 17.02.17 18:27 Сейчас в теме
(1) приведите полный текст ошибки.
По всей видимости ДополнительноеОписаниеНоменклатуры имеет свой тип.
Проверьте какой именно тип у ДополнительноеОписаниеНоменклатуры.
Судя по скрину курсор стоит на Описание. Это и есть ДополнительноеОписаниеНоменклатуры?
Тогда это тип КоментарийТип. Вот его и править нужно.
2. ditp 91 17.02.17 09:33 Сейчас в теме
3. Dimka74 17.02.17 10:14 Сейчас в теме
Тож думал, что здесь надо поправить, но не помогло.
Причем заметьте на картинке 3000 символов, а в ошибке указано, что максимальная длина 10000 символов.
5. Dimka74 17.02.17 13:38 Сейчас в теме
Мне кажется не в типе дело.
Несоответствие фасету MaxLength = '10000'

Вот где найти MaxLength?
6. antz 17.02.17 14:13 Сейчас в теме
А мне кажется, в нем. У меня тоже при обмене резался один из реквизитов, и, что характерно, длина СтрокаТип была тоже 10000, в общем я ее увеличивал.
MaxLength - это и есть максимальная длина.
Прикрепленные файлы:
7. Dimka74 17.02.17 17:13 Сейчас в теме
Попробовал изменить параметр "Максимальная длина" у типов "СтрокаТип" и "ЗначениеТип" - не помогло, та же ошибка :(
Так же ссылается на максимальную длину в 10000 символов, хотя и там и там ставил 25000
Прикрепленные файлы:
8. antz 17.02.17 17:37 Сейчас в теме
На скрине я вижу у СтрокаТип длину 255 :)
9. Dimka74 17.02.17 18:10 Сейчас в теме
(8) ну это я уже обратно поправил на первоначальные данные, что б не забыть.)
10. antz 17.02.17 18:21 Сейчас в теме
Возможно еще, ты не в том пакете меняешь. В плане обмена нет случайно макетов с названием типа "СхемаXSDОбмена" или вроде того?
Vida; jig; Dimka74; +3 Ответить
13. Dimka74 17.02.17 18:37 Сейчас в теме
(10)Бинго! В плане обмена Б_ОбменССайтом есть макет СхемаXSDОбмена
выгрузил в файл, а там
<xs:simpleType name="СтрокаТип">
<xs:restriction base="xs:string">
<xs:maxLength value="10000" />
</xs:restriction>
</xs:simpleType>


Сейчас поправлю и загружу файл обратно.
tdml; InsideIT; DIOmisus; igee12; +4 Ответить
14. Dimka74 17.02.17 18:47 Сейчас в теме
15. broncom 12.12.18 13:01 Сейчас в теме
(13) Здравствуйте! Пытаюсь сделать тоже самое, но в моей конфигурации нет ничего похожего...

В плане обмена Б_ОбменССайтом есть макет СхемаXSDОбмена


Прикрепил скриншот, может я где то не там смотрю ?
Прикрепленные файлы:
16. broncom 13.12.18 12:58 Сейчас в теме
(15) В нашем случае оказалось надо править КоментарийТип (2), а я полез не туда ) спасибо!
11. antz 17.02.17 18:21 Сейчас в теме
Посмотри в коде - как фабрика создается.
17. user1120739 05.06.19 11:54 Сейчас в теме
Тоже потратил некоторое время на поиск решения.

Редактирование конфигурации (УТ 11.4) для обмена с сайтом товаров, имеющих "Файл описания для сайта".
По умолчанию стоит ограничение строки в 1000 знаков.
Чтобы это исправить, открываем в конфигураторе, делаем конфигурацию редактируемой, ищем и исправляем:

1) Общие->XDTO-пакеты->CML208

Типы значений -> ЗначениеТип -> МаксимальнаяДлина (меняем с 1000 на требуемую, например 10000)

2) Затем глобальный поиск по строке "ОписаниеВФорматеHTML"
ищем строку (Основная конфигурация ОщийМодуль.ОбменССайтом.Модуль(2790.18)
"Если ЗначениеЗаполнено(ДанныеНоменклатуры.НоменклатураФайлОписанияHTML) Тогда
ОписаниеВФорматеHTML = ТекстHTMLИзФайла(ДанныеНоменклатуры.НоменклатураФайлОписанияHTML);

Если НЕ ПустаяСтрока(ОписаниеВФорматеHTML) Тогда

Если СтрДлина(ОписаниеВФорматеHTML) <= 10000 Тогда

ДобавитьЗначениеРеквизитаXDTO(ЗначенияРеквизитовXDTO, ПакетCML,
"ОписаниеВФорматеHTML", ОписаниеВФорматеHTML);
"

НУЖНА СТРОКА "Если СтрДлина(ОписаниеВФорматеHTML) <= 1000 Тогда"

меняем на длину как в "МаксимальнаяДлина" (например 10000)

После этого сохраняем конфигурацию в базе данных/ или на сервере. Должно сработать.

Про обновлении конфигурации или надо оставлять старую запись или редактировать после обновления на требуемые значения снова.
bav123; tatoshka0403; user1197451; natal_tihom; Julia7150; work.sable; +6 Ответить
18. Niva36 05.06.19 14:49 Сейчас в теме
(17)А как-то без снятия с поддержки можно такое сделать? (расширением, например)
20. work.sable 26 04.06.20 04:44 Сейчас в теме
(18) тоже интересует этот вопрос. В текущих режимах совместимости типовых (8.3.12) похоже ещё нельзя, поправьте если ошибаюсь.
И не нашел информации когда в расширении можно будет редактировать xdto пакеты(
21. Julia7150 20.06.21 10:51 Сейчас в теме
(17) Спасибо большое! Ваше решение очень пригодилось!
19. Skif1989 01.01.20 12:42 Сейчас в теме
{ОбщийМодуль.Б_ОбменССайтомСерверВыгрузкаДанных.Модуль(7236)}: Ошибка при установке значения атрибута контекста (Ид)
XDTOДокумент.Ид = XMLСтрока(Документ.ИдентификаторДокумента);
по причине:
Несоответствие типов XDTO
по причине:
Ошибка проверки данных XDTO:
Значение: 'Короб №19/1 (пятислойный) с ручками, 600*400*400 мм' не соответствует простому типу: {urn:1C.ru:commerceml_3}ИдентификаторГлобальныйТип
Несоответствие фасету MaxLength = '40'

а у меня такая ошибка(((
22. user2065728 13.03.24 10:18 Сейчас в теме
Не удалось завершить формирование файла.
Техническая информация об ошибке: Ошибка проверки данных XDTO:
Значение: '901210009' не соответствует простому типу:
Несоответствие фасету Length = '10'
23. Sashares 34 13.03.24 12:32 Сейчас в теме
(22)Данное сообщение означает следующее - у вас значение в поле 9 символов, а должно быть 10.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот