Несоответствие типов xdto 1с что это
Перейти к содержимому

Несоответствие типов xdto 1с что это

Несоответствие типов xdto 1с что это

Описание ошибки:
База была выгружена из ирхива .dt. База файловая, конфигурация 1С: Бухгалтерия предприятия, редакция 3.0. При работе в конфигураторе и при запуска конфигуратора ошибок не возникает. Ошибка проявляет себя только при попытке запуска в режиме 1С: Предприятие. Даже не выводится форма для авторизации пользователя, как возникает ошибка. Релиз платформы 1С: Предприятие — 8.3.12.89.

Нажатие на изображении увеличит его
1С 8, как устранить, убрать, исправить ошибку, при запуске базы, Ошибка преобразования данных XDTO, НачалоСвойства: errorProcessingSettings, messageTemplates, category

Ошибка в некотором роде редкая, но не настолько, чтобы остаться неизвестной. Короткое обсуждение на форуме dev.mista.ru, содержащее ссылку на описание в каталоге ошибок (потребуется авторизация для сайта ИТС) продукта технологической платформы позволило точно определить проблему — неподходящий релиз платформы. Как указано — использовался релиз платформы 8.3.18.1289.

Нажатие на изображении увеличит его
ошибка при запуске базы 1С 8, Ошибка преобразования данных XDTO, форма, элемент тип: http://v8.1c.ru/8.2/managed-application/core

Таким образом оказалось, что необходимо установить более высокую минорную версию релиза 8.3.18 — 8.3.18.13.63 или позднее. Так же ошибка может возникать для более ранних релизов версий 8.3.17 (до 17.2127), 8.3.19 (до релиза 19.1150), а так же для 8.3.20 (ранее релиза 20.1363).

Обновление релиза платформы 1С:предприятие на релиз 8.3.18.1563 на рабочем месте, где возникла ошибка, исправило ситуацию и база была запущена в ошибок.

Тема: 1c & XDTO

1c & XDTO

День добрый форумчане.
вот такая ошибка появилась при обмене выгрузка из УНФ (перепиленная в край) в БП по универсалу:
Событие: Отправка.
ПОД: Справочник_СпецификацииНоm енклатуры_Отправка.
ПКО: Справочник_СпецификацииНоm енклатуры_Отправка.
Объект: Справочник объект: Спецификации, Печать с логотипом Диаметр печати: 40,Оснастка: Переклейка на оснастку заказчика, (e1cib/data/Справочник.Спецификации?ref= 95cfd89d672c49b011eae6d66d90fca8).

<ОбщийМодуль.ОбменДаннымиXD TOСервер.Модуль(835)>: Ошибка формирования объекта XDTO: Тип свойства <Таблица>. Имя свойства: <Товары>.

<ОбщийМодуль.ОбменДаннымиXD TOСервер.Модуль(835)>: Ошибка формирования объекта XDTO: Тип свойства <ОбычноеСвойство>. Имя свойства: <ДоляСтоимости>.

<ОбщийМодуль.ОбменДаннымиXD TOСервер.Модуль(756)>: Ошибка при вызове метода контекста (Создать)
ЗначениеXDTO = ФабрикаXDTO.Создать(Свойство .Тип, ЗначениеСвойства);
по причине:
Ошибка проверки данных XDTO:
Значение: ‘244.22’ не соответствует простому типу: int
Несоответствие фасету FractionDigits = ‘0’
ВызватьИсключение ТекстОшибки;
ВызватьИсключение ТекстОшибки;

Я понимаю что мне ошибка говорит что ДЛИННА ДРОБНОЙ ЧАСТИ должна быть равна 0, а у мена нет.
Я не могу понять где поправить этот FRACTIONDIGITS

все ссылки XDTO на данную хрень выглядят так <xs:element name="ДоляСтоимости" type="xs:decimal"/>

у меня в объектах XDTO нет ни одного объекта (я не нашел) который ссылаеться на http://www.w3.org/2001/XMLSchema
может я не правильно ищу может не там.
вот в чем проблема то.

  • Просмотр профиля
  • Сообщения форума
  • Личное сообщение

Re: 1c & XDTO

Сообщение от Kuken

День добрый форумчане.
вот такая ошибка появилась при обмене выгрузка из УНФ (перепиленная в край) в БП по универсалу:
Событие: Отправка.
ПОД: Справочник_СпецификацииНоm енклатуры_Отправка.
ПКО: Справочник_СпецификацииНоm енклатуры_Отправка.
Объект: Справочник объект: Спецификации, Печать с логотипом Диаметр печати: 40,Оснастка: Переклейка на оснастку заказчика, (e1cib/data/Справочник.Спецификации?ref= 95cfd89d672c49b011eae6d66d90fca8).

<ОбщийМодуль.ОбменДаннымиXD TOСервер.Модуль(835)>: Ошибка формирования объекта XDTO: Тип свойства <Таблица>. Имя свойства: <Товары>.

<ОбщийМодуль.ОбменДаннымиXD TOСервер.Модуль(835)>: Ошибка формирования объекта XDTO: Тип свойства <ОбычноеСвойство>. Имя свойства: <ДоляСтоимости>.

<ОбщийМодуль.ОбменДаннымиXD TOСервер.Модуль(756)>: Ошибка при вызове метода контекста (Создать)
ЗначениеXDTO = ФабрикаXDTO.Создать(Свойство .Тип, ЗначениеСвойства);
по причине:
Ошибка проверки данных XDTO:
Значение: ‘244.22’ не соответствует простому типу: int
Несоответствие фасету FractionDigits = ‘0’
ВызватьИсключение ТекстОшибки;
ВызватьИсключение ТекстОшибки;

Я понимаю что мне ошибка говорит что ДЛИННА ДРОБНОЙ ЧАСТИ должна быть равна 0, а у мена нет.
Я не могу понять где поправить этот FRACTIONDIGITS

все ссылки XDTO на данную хрень выглядят так <xs:element name="ДоляСтоимости" type="xs:decimal"/>

Ошибка проверки данных XDTO: Несоответствие фасету MaxLength = ’80‘

Выяснил, что у меня на сайте у ВСЕХ предложений коды длинные в виде 5484bff7-6844-465c-a084-6b5193002387#5484bff7-6844-465c-a084-6b5194003943
То есть Код_товара#Код_предложения.
А взялись они у меня на сайте из-за того, что сейчас (пока мы не используем 1С) каталог ведется в сторонней самописной базе и экспортируется из нее на сайт в формате cml (по стандартному битриксовскому протоколу). И в этом исходном cml код именно такой — составной, иначе при импорте не произойдет связки предложения с товаром.
После полного импорта этого каталога впустую 1С с помощью помощника эти коды в неизменном виде попали в 1С.
Теперь при экспорте из 1С слева к коду еще раз добавляется код товара, и получается цепочка из 3 кодов.

Выходит, на каком-то этапе что-то работает нелогично:
Либо неверно реализован протокол импорта в битрикс из cml (и Битрикс при импорте cml должен отсекать код товара и класть в предложение только код предложения)
Либо помощник импорта в 1С должен был при импорте предложения в 1С отсекать код товара
Либо при выгрузке из 1С в битрикс к коду предложения не должен дописываться код товара
Мне кажется правильным вариант номер 2.
Вот только теперь не знаю, как массово отсечь код товара в 1С в уже имеющейся базе. Руками не реально. Ждать новой версии помощника импорта, видимо, долго.
Помогите, пожалуйста.

Цитата
Владимир Щукин пишет:
Вот только теперь не знаю, как массово отсечь код товара в 1С в уже имеющейся базе. Руками не реально. Ждать новой версии помощника импорта, видимо, долго.

Обработка которая отсекает — пишется за 5 минут на коленке.
Все идентификаторы пришедшие с сайта хранятся в поле Б_Идентификатор.

Выбираем все идентификаторы отрезаем в каждом идентификаторе текст до «#» включительно и записываем на место.

Задачка для начинающего уровня программиста 1С )))

Цитата
Василий Мазурок пишет:
Задачка для начинающего уровня программиста 1С )

В мастере загрузки с сайта в функции ОбработатьЗначениеЭлемента есть такой кусок:

Что-то мне подсказывает, что в последней строке должно быть "=ПраваяЧасть;".

Цитата
Владимир Щукин пишет:
Выяснил, что у меня на сайте у ВСЕХ предложений коды длинные в виде 5484bff7-6844-465c-a084-6b5193002387#5484bff7-6844-465c-a084-6b5194003943
То есть Код_товара#Код_предложения.

Не знаю пока, даст ли правка кода что-то, решил попробовать повторный импорт.
Запустил помощник импорта с сайта с исправлением в коде и из любопытства перехватил файлы cml, идущие от Битрикса в 1С.
Оказыватеся, уже в cml от Битрикса в ИД торговых предложений светятся 3(!) кода:
Код_товара#Код_товара#Код_предложения.
Что получится в результате, будет ясно утром. Но тут явно что-то странное происходит.
Когда я скармливаю битриксу свой cml, в котором ИД предложения в виде Код_товара#Код_предложения, он так и созраняет в инфоблок код из 2 частей.
Зато отдача того же предложения идет уже из 3 частей Код_товара#Код_товара#Код_предложения.
Получается, гипотетически, на каждом круге ид прирастает слева на еще один код товара.

Битрикс у меня обновленный, без правок ядра, лицензионный и т.п. Интересно, это у всех так же?

В общем за ночь измененный помощник отработал, все загрузилось. У характеристик теперь код 1С такой, как должен — содержит только код предложения.
А вот экспорт из 1С теперь не работает. Падает с ошибкой «Недостаточно памяти». Хотя выгружаю всего один маленький раздел каталога, штук 100 товаров. И выгружаю не на сайт, а в файлы.
На машине 2 Гб памяти. Процесс долгое время потребляет около 800 Мб, но за секунду до ошибки потребление резко взлетает, диспетчер задач фиксирует пик в до 1470 Мб.
В логе обмена последняя строка
«Начало выгрузки пакета 1 каталога: Основной каталог товаров»

Что-то руки постепенно опускаются.

Возможно у вас куча ненужных свойств выгружается. Можете их ограничить через отбор. Или куча предложений, их тоже можно ограничить.

Но если это 1 пакет, от дело в свойствах.

Свойств 430 штук. Но они все нужные. Причем в выгружаемой группе используются не более 10 из них, и стоит галочка «выгружать только используемые». Но это сейчас, для экономии времени. А вот когда будет выгружаться весь каталог.
Я повнимательней посмотрел номенклатуру и выяснил, что вчера, когда делал новый импорт с сайта, в виде номенклатуры поствил характеристики «Общие для вида номенклатуры». Сегодня поставил, как раньше — индивидуальные для номенклатуры (не помню, как они точно называются), сейчас идет импорт, посмотрю, поможет ли.

Но вообще все как-то странно в мире 1С/Битрикс.
Моя самописная прога, которая генерит cml полного каталога из моей базы (размер конечных файлов 30Мб), потребляет не более 100 Мб памяти, и еще 190 Мб потребляет MS SQL Server, затрачивая на это 32 секунды.
Импорт этих файлов Битриксом занимает 50-70 минут, и ему с трудом хватает 512 Мб памяти (иногда падал, пока лимит не подняли).
Импорт того же каталога из битрикса в 1С занимает уже 5,5 часов, потребляет 1 гиг и иногда валится по нехватке памяти.
Экспорт 1/30 этого каталога из 1С в cml файлы требует минимум 7 минут на то, чтобы сожрать 1,5 гиг и упасть.
Нда. Что-то в консерватории неладное творится.

Интересно, если поставить 64-битную платформу, 1С будет использовать всю доступную память, по-прежнему только 1,5 гига?

1С тут не причем ))) думается мне — все дело в не оптимальных алгоритмах и чрезмерно использовании таблиц размещенных в памяти.

Причиной тому разработка обмена и тестирование на очень маленьких базах данных — где все эти подводные камни просто не всплывают!

Цитата
Владимир Щукин пишет:
Я повнимательней посмотрел номенклатуру и выяснил, что вчера, когда делал новый импорт с сайта, в виде номенклатуры поствил характеристики «Общие для вида номенклатуры». Сегодня поставил, как раньше — индивидуальные для номенклатуры (не помню, как они точно называются), сейчас идет импорт, посмотрю, поможет ли.

Да, из за этого и проблема.

Цитата
Владимир Щукин пишет:
Но вообще все как-то странно в мире 1С/Битрикс.
Моя самописная прога, которая генерит cml полного каталога из моей базы (размер конечных файлов 30Мб), потребляет не более 100 Мб памяти, и еще 190 Мб потребляет MS SQL Server, затрачивая на это 32 секунды.
Импорт этих файлов Битриксом занимает 50-70 минут, и ему с трудом хватает 512 Мб памяти (иногда падал, пока лимит не подняли).
Импорт того же каталога из битрикса в 1С занимает уже 5,5 часов, потребляет 1 гиг и иногда валится по нехватке памяти.

Сказки. Ну или другая база, с другими данными базы 1С. как например выше: свойства вида номенклатуры и индивидуальные свойства..
Модуль обмена битрикс не виноват, что вы не оптимально храните данные.

И да, самописная прога всегда(если написана не коряво) будет работать быстрее типового решения, т.к. там много что не учитывается.

Цитата
Василий Мазурок пишет:
думается мне — все дело в не оптимальных алгоритмах и чрезмерно использовании таблиц размещенных в памяти.

Ну предложите что нить пооптимальнее. Я посмотрю, может и заоптимизирую.

Цитата
Василий Мазурок пишет:
Причиной тому разработка обмена и тестирование на очень маленьких базах данных — где все эти подводные камни просто не всплывают!
Цитата
Александр Денисюк пишет:
Сказки.

Вы напрасно так резко.
Я никого не обвиняю ни в чем, но, столкнувшись с этим совсем недавно, действительно порой впадаю в ступор от «эффективности» использования ресурсов.

А цифры все реальные на 100%. Вы думаете, зачем я то одну опцию включаю, то другую? Просто надеюсь нащупать вариант, который будет быстрее. Неужели Вам меня не жалко — какие-то 3500 товаров импортируются полдня? Представляете, сколько дней такии темпами понадобится, чтобы все отладить? А сколько (десятков) раз процесс выпадал посередине то с ошибкой, то молча? Это какие нервы иметь надо! А Вы говорите «сказки».

Цитата
Владимир Щукин пишет:
Я повнимательней посмотрел номенклатуру и выяснил, что вчера, когда делал новый импорт с сайта, в виде номенклатуры поствил характеристики «Общие для вида номенклатуры». Сегодня поставил, как раньше — индивидуальные для номенклатуры (не помню, как они точно называются), сейчас идет импорт, посмотрю, поможет ли.

А почему из-за этого проблема? Зачем тогда вообще эта опция? Там даже указано «рекомендуется» выбирать общие характеристики. Тогда надо в инструкции к модулю крупно написать «Перед импортом каталога с сайта удостоверьтесь, что включена опция индивидуальных характеристик» или что-то такое.

Цитата
Александр Денисюк пишет:
Модуль обмена битрикс не виноват, что вы не оптимально храните данные.

А как их оптимально хранить? Я бы с удовольствием, но как? В битриксе у товаров есть свойства. Там и храню. Товаров 30 видов, у всех разные свойства, всего 430 штук свойств. Как их по-другому хранить, чтобы обмен быстрее шел? Какие еще варианты? Я искренне прошу рекомендаций, но пока не вижу.
А насчет «виноват-не виноват» — еще раз, чтобы не было конфликта — я не гворю, что виноват модуль, я высказывался об 1С и Битриксе вообще. Понятное дело, гибкость архитектуры и все такое. Но не такой же ценой. Везде в описании Битрикса красной линией идет «родная» интеграция с 1С. Я, честно, очень сильно на это расчитывал, когда выбирал движок магазина. А сейчас выходит, что две недели бьюсь, я только обмен товарами наладить не получается (это я еще зазаказы не брался). И это на моих мизерных 3500 товарах. Что же делать тем, у кого 10000?

Буду на днях пытаться на xeone и ssd пробовать, глядишь, может шустрее ворочаться будет.

По исправлению в коде, описанному выше, очень хотел Ваше мнение узнать.

Цитата
Владимир Щукин пишет:
А почему из-за этого проблема? Зачем тогда вообще эта опция? Там даже указано «рекомендуется» выбирать общие характеристики. Тогда надо в инструкции к модулю крупно написать «Перед импортом каталога с сайта удостоверьтесь, что включена опция индивидуальных характеристик» или что-то такое.

Опишу поподробнее, почему возникает ошибка нехватка памяти из за неправильного хранения свойств:
В УТ 11 свойства могут задаваться как индивидуально для товара, так и для вида номенклатуры:
Условия: свойств 450, 1000 товаров, в каждом товаре в среднем по 10 свойств.
1) Индивидуальные свойства:
Каждый товар будет хранить по 10 свойств. Из 1С для каждого товара будет выгружаться 10 свойств(выгружать только заполненные свойства нельзя. т.к. пропадут данные о свойствах товара, да и не понятно, нужно ли свойство очищать). Значения свойств будут искаться по 10 свойствам.
2) Общий для вида номенклатуры:
Я предполагаю, что все 450 свойства хранятся в одном виде номенклатуры(т.к. скорее всего использовали обработку экспорта из сайта). В этом случае для каждого товара будут выгружаться 450 свойств. Значения свойств будут искаться по 450 свойствам.

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

Где будет работать шустрее — я думаю понятно.

Цитата
Владимир Щукин пишет:
Спасибо за ответы, теперь понятно.
Я в будущем (когда с простыми вещами более-менее разберусь) планирую все товары раскидать по видам номенклатуры (аналогично категориям в битриксе) и в каждом виде номенклатуры оставить только тот набор свойств, которые касаются этого вида. Это, к сожалению, вручную делать придется, т.к. помощник импорта весь сайт валит в один вид номенклатуры, и в него же все свойства.

прочитал ветку и не понял что-где править нужно?
Сделал "Экспорт с БУСа" средствами модуля в 1с.УНФ, после пытаюсь сделать обмен товарами и вылетает ошибка топикстартера. превышен MaxLength.

До экспорта на чистый БУС выгружались товары с 1с без проблем этим же модулем, все работало. Но требуется периодически загружать новую номенклатуру с БУСа, так как контент-менеджер удаленно наполняет сайт контентом, добавляет товары с картинками. с БУСа в 1с экспорт прошел без проблем, а после экспорта выгрузка товаров на сайт падает на этапе "Выгрузка предложений в ХМЛ". настройки обмена выгрузки товаров не менялись.

Что делать? Знаний по обмену ХМЛ файлами нет, где правятся загрузки-выгрузки тоже не знаю(

З.Ы.: При попытке выгрузки первое падение идет на предложениях — отключил выгрузку предложений, упал обмен на ценах — отключил цены, упал на обмене остатков- отключил остатки, далее все прошло успешно. собственно после экспорта теперь обмен работает без предложений, остатков и цен. как все вернуть обратно?! =(

Цитата
Александр Денисюк написал:
Проверьте коды битрикс у загруженных предложений. Скорее всего он у вас хранит в себе связку ид товара# ид предложения.А должен хранить только ид предложения.

Да, так и есть. Только вот последующие эксперименты привели в полному замусориванию базы в 1с. Дело в том, что изначально на пустой БУС выгружались товары с 1с. Далее добавили товар в БУСе, и сделали Экспорт в 1С. После экспорта появились двойные внешние коды (плюс какие-то пустые характеристики и реквизиты в свойствах) и теперь, даже удалив их через "Редактирование кодов битрикса" при обмене двойные коды остаются. Причем при экспорте по насоздавались характеристики товара в 1с, даже у тех товаров, у которых не включена галочка "использовать характеристики". Так что туда-сюда (экспорт-импорт) обмен совсем не дружит друг с другом. Попытавшись почистить все лишнее (созданное при экспорте) ручками столкнулся с проблемой, что некоторые данные привязаны только к обмену и как это вычистить не понятно, даже удалив обмен (через который происходила выгрузка) остались лишние хвосты непонятных свойств и характеристик. что теперь делать даже не знаю. База, с которой работала выгрузка испорчена по сути(

Обнаруженные нюансы:
1. Экспорт не понимает разные номенклатурные группы и то, что свойства у каждой группы могут быть свои, а не только общие — как итог — при экспорте все свойства сваливаются в одну кучу в Основную номенклатурную группу (для товаров как-то в разброс заменяется номенклатурная группа на Основную, хотя была выставлена другая, не понял почему). Причем, изначально при экспорте были выгружены такие поля как Реквизиты, Характеристика, Базовая единица, Штрихкод, Артикул и т.п. а в обратную сторону при экспорте это все залилось как Общие Свойства Основной номенклатурной группы.
2. При выборке выгружаемых свойств и указании их не выгружать — все равно выгружаются все свойства. Тестировал на читом БУСе. Вываливаются все равно все свойства в каталог и в предложения, хотя в выборке было указано "не выгружать в товары" "не выгружать в предложения"
3. Двойной код появляется как раз у товаров, которые в 1С были с характеристиками. То есть, если товар был без характеристик, то ему создалась характеристика вида "Товар(Характеристика)" при экспорте и задвоился внешний код при последующем импорте. Причем, если повторить процедуру Экспорт-Импорт, то характеристики опять создаются вида "Товар(Характеристика(Характиристика))" и т.д.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *