Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа
Дано: УТ 10.3 (10.3.68.2) , платформа 8.3.18.1334. При создании нового документа Маркировка товаров ИС МП валится ошибка
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
КонецСвойства: item Форма: Элемент Тип: {http://v8.1c.ru/8.2/managed-application/logform/layouter }FormChangesMovedItem
Нашел, что в процедуре ПриСозданииНаСервере вызываются процедуры с директивой &НаКлиентеНаСервереБезКонтекста
и это приводит к проблемам.
Т.е. связка Обычное приложение + УФ дает сбой.
Кто знает, как победить данный трабл?
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
КонецСвойства: item Форма: Элемент Тип: {
Нашел, что в процедуре ПриСозданииНаСервере вызываются процедуры с директивой &НаКлиентеНаСервереБезКонтекста
и это приводит к проблемам.
Т.е. связка Обычное приложение + УФ дает сбой.
Кто знает, как победить данный трабл?
По теме из базы знаний
- Ошибка преобразования данных XDTO: Текст XML содержит недопустимый символ
- После обновления Бухгалтерии предприятия 3.0 возникает ошибка "Ошибка преобразования данных XDTO:"
- Открытие форм нескольких новых документов в тонком и толстом клиенте, УФ
- Программное копирование узла/строки дерева значений на управляемой форме (УФ, ДанныеФормыДерево, ДанныеФормыЭлементДерева) в вариантах на клиенте и на сервере
- Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(13) Похоже, что мой, но решение не подходит. У меня ошибка раньше возникает
Если Объект.Ссылка.Пустая() Тогда
ПриСозданииЧтенииНаСервере(); //моя ошибка тут
ИнтеграцияИСПереопределяемый.ЗаполнитьСтатусыУказанияСерий(Объект, ПараметрыУказанияСерий);
КонецЕсли;
НастроитьЗависимыеЭлементыФормы(ЭтаФорма);
// Режим отладки
Элементы.СтраницаШтрихкодыУпаковок.Видимость = ОбщегоНазначения.РежимОтладки() И Пользователи.ЭтоПолноправныйПользователь(); //ошибька в посте - здесь
Показать
(1) типичная ошибка разработчиков ОФ начинающих работать с УФ.
Нужно внимательно читать справку.
Начать с проверки конфигурации, на толстый клиент ОФ, тонкий клиент, внешнее соединение и сервер.
Обычно проблема в модуле объекта его код выполнялся в ОФ в толстом клиенте в УФ такое не возможно.
Или в регламентных заданиях.
Нужно внимательно читать справку.
Начать с проверки конфигурации, на толстый клиент ОФ, тонкий клиент, внешнее соединение и сервер.
Обычно проблема в модуле объекта его код выполнялся в ОФ в толстом клиенте в УФ такое не возможно.
Или в регламентных заданиях.
(2)
НастроитьЭлементыФормы(ЭтаФорма);
&НаКлиентеНаСервереБезКонтекста
Процедура НастроитьЭлементыФормы(Форма)
Элементы = Форма.Элементы;
Операция = Форма.Объект.Операция;
ОперацияНанесения = Форма.Объект.ОперацияНанесения;
ОтчетПроизводственнойЛинии = Форма.Объект.ОтчетПроизводственнойЛинии;
ВидПродукции = Форма.Объект.ВидПродукции;
ПередаватьВДекларациюАТК = Форма.Объект.ВариантЗаполненияДекларации = ПредопределенноеЗначение("Перечисление.ВариантыЗаполненияДекларацииИСМП.АТК");
ОперацииМаркировки = ИнтеграцияИСМПСлужебныйКлиентСервер.ОперацииМаркировки(Операция);
ЭтоПроизводствоРФ = ОперацииМаркировки.ЭтоПроизводствоРФ;
ЭтоПроизводствоВнеЕАЭС = ОперацииМаркировки.ЭтоПроизводствоВнеЕАЭС;
ЭтоПроизводствоПоДоговору = ОперацииМаркировки.ЭтоПроизводствоПоДоговору;
ЭтоПроизводствоПоДоговоруНаСторонеЗаказчика = ОперацииМаркировки.ЭтоПроизводствоПоДоговоруНаСторонеЗаказчика;
ЭтоПолучениеПродукцииОтФизическихЛиц = ОперацииМаркировки.ЭтоПолучениеПродукцииОтФизическихЛиц;
ЭтоМаркировкаОстатков = ОперацииМаркировки.ЭтоМаркировкаОстатков;
ЭтоТрансграничнаяТорговля = ОперацииМаркировки.ЭтоТрансграничнаяТорговля;
ЭтоАгрегация = ОперацииМаркировки.ЭтоАгрегация;
ЭтоИмпортСФТС = ОперацииМаркировки.ЭтоИмпортСФТС;
ЭтоВводВОборот = ОперацииМаркировки.ЭтоВводВОборот;
ЭтоКонтрактноеПроизводство = ОперацииМаркировки.ЭтоКонтрактноеПроизводство;
ЭтоТабак = (ВидПродукции = ПредопределенноеЗначение("Перечисление.ВидыПродукцииИС.Табак"));
ЭтоМолочнаяПродукцияВЕТИС = (ВидПродукции = ПредопределенноеЗначение("Перечисление.ВидыПродукцииИС.МолочнаяПродукцияПодконтрольнаяВЕТИС"));
ЭтоМолочнаяПродукцияБезВЕТИС = (ВидПродукции = ПредопределенноеЗначение("Перечисление.ВидыПродукцииИС.МолочнаяПродукцияБезВЕТИС"));
ЭтоМолочнаяПродукция = ЭтоМолочнаяПродукцияБезВЕТИС Или ЭтоМолочнаяПродукцияВЕТИС;
ЭтоПродукцияМОТП = ИнтеграцияИСКлиентСервер.ЭтоПродукцияМОТП(ВидПродукции);
Если ЭтоМолочнаяПродукцияВЕТИС И Не Форма.ИспользуетсяПодсистемаВЕТИС Тогда
ОтчетПроизводственнойЛинии = Истина;
КонецЕсли;
ВозможнаОперацияНанесения = ИнтеграцияИСКлиентСервер.ВидПродукцииИспользуетОтчетыОНанесенииКодовМаркировки(ВидПродукции);
ЭтоОперацияНанесения =
ОперацииМаркировки.ЭтоОперацияНанесения
Или (ЭтоМолочнаяПродукцияВЕТИС И Не Форма.ИспользуетсяПодсистемаВЕТИС);
ПрисутствуетОперацияНанесения = ЗначениеЗаполнено(Форма.Объект.ОперацияНанесения) Или ЭтоОперацияНанесения;
ДоступнаОперацияНанесенияПоВидуОперацииИСМП = ДоступнаОперацияНанесенияПоВидуОперацииИСМП(Операция);
ДоступенОтчетПроизводственнойЛинии =
(ВозможнаОперацияНанесения
И Не ЭтоТрансграничнаяТорговля
И Не ЭтоКонтрактноеПроизводство
И Не ЭтоМаркировкаОстатков)
Или (ВозможнаОперацияНанесения И ЭтоАгрегация);
ОтчетПроизводственнойЛинии = ОтчетПроизводственнойЛинии И ДоступенОтчетПроизводственнойЛинии;
Элементы.ТоварыЗагрузитьДанныеИзТСД.Видимость = Не ЭтоАгрегация;
Элементы.ТоварыЗагрузитьИзВнешнегоФайла.Видимость = Не ЭтоАгрегация;
Элементы.ДатаДекларации.Видимость = ЭтоПроизводствоВнеЕАЭС Или ЭтоИмпортСФТС;
Элементы.ДатаДекларацииЗаголовок.Видимость = ЭтоПроизводствоВнеЕАЭС Или ЭтоИмпортСФТС;
Элементы.РегистрационныйНомерДекларации.Видимость = ЭтоПроизводствоВнеЕАЭС Или ЭтоИмпортСФТС;
Элементы.ВариантЗаполненияДекларации.Видимость = ЭтоИмпортСФТС;
Элементы.ВариантФормированияАТКИСМП.Видимость = ЭтоИмпортСФТС;
Элементы.ВариантФормированияАТКИСМП.Доступность = ЭтоИмпортСФТС И ПередаватьВДекларациюАТК;
Элементы.КодТаможенногоОргана.Видимость = ЭтоПроизводствоВнеЕАЭС Или ЭтоИмпортСФТС;
Элементы.КодТаможенногоОрганаЗаголовок.Видимость = ЭтоПроизводствоВнеЕАЭС Или ЭтоИмпортСФТС;
Элементы.ПринятоеРешение.Видимость = ЭтоПроизводствоВнеЕАЭС Или ЭтоИмпортСФТС;
Элементы.СтранаПроисхождения.Видимость = ЭтоТрансграничнаяТорговля;
Элементы.ТоварыСтранаПроизводства.Видимость = ЭтоМаркировкаОстатков;
Элементы.ТоварыТаможеннаяДекларация.Видимость = ЭтоМаркировкаОстатков;
Элементы.ЗаполнитьПараметрыТовары.Видимость = ЭтоМаркировкаОстатков;
Элементы.ТоварыGTIN.Видимость = ЭтоМаркировкаОстатков Или ЭтоАгрегация Или (ЭтоОперацияНанесения И ЭтоТабак);
Элементы.ДатаИмпорта.Видимость = ЭтоТрансграничнаяТорговля;
Элементы.ТоварыЦена.Видимость = ЭтоТрансграничнаяТорговля;
Элементы.ТоварыСуммаНДС.Видимость = ЭтоТрансграничнаяТорговля;
Элементы.ТоварыСумма.Видимость = ЭтоТрансграничнаяТорговля;
Элементы.ТоварыСтавкаНДС.Видимость = ЭтоТрансграничнаяТорговля Или ЭтоИмпортСФТС;
Элементы.ТоварыСуммаСНДС.Видимость = ЭтоТрансграничнаяТорговля;
Элементы.ГруппаПервичныйДокумент.Видимость = ЭтоТрансграничнаяТорговля;
Элементы.ТоварыКодТНВЭД.Видимость = ЭтоВводВОборот;
Элементы.ТоварыСертификация.Видимость = ЭтоВводВОборот;
Элементы.ТоварыИдентификаторПроисхожденияВЕТИС.Видимость = Ложь;
Элементы.ТоварыСрокГодности.Видимость = Ложь;
Элементы.ШтрихкодыУпаковокИдентификаторПроисхожденияВЕТИС.Видимость = Ложь;
Элементы.ШтрихкодыУпаковокСрокГодности.Видимость = Ложь;
Элементы.ИдентификаторПроизводственногоЗаказа.Видимость = Ложь;
Элементы.ИдентификаторПроизводственнойЛинии.Видимость = Ложь;
// Реквизиты отчета производственной линии
Элементы.ИдентификаторПроисхожденияВЕТИССтрокой.Видимость = ЭтоВводВОборот;
Элементы.КодТНВЭД.Видимость = ЭтоВводВОборот;
Элементы.СрокГодности.Видимость = ПрисутствуетОперацияНанесения;
Элементы.СкоропортящаясяПродукцияВЕТИС.Видимость = ПрисутствуетОперацияНанесения;
Элементы.Контрагент.Видимость = (ЭтоКонтрактноеПроизводство Или ЭтоТрансграничнаяТорговля);
Элементы.ДатаПроизводства.Видимость = (ЭтоКонтрактноеПроизводство Или ЭтоПроизводствоРФ);
Если ЭтоПроизводствоПоДоговору Тогда
Элементы.Контрагент.Заголовок = НСтр("ru = 'Владелец'");
ИначеЕсли ЭтоПроизводствоПоДоговоруНаСторонеЗаказчика Тогда
Элементы.Контрагент.Заголовок = НСтр("ru = 'Производитель'");
ИначеЕсли ЭтоТрансграничнаяТорговля Тогда
Элементы.Контрагент.Заголовок = НСтр("ru = 'Экспортер'");
КонецЕсли;
Элементы.ОперацияНанесения.Видимость = Ложь;
Элементы.ПроизводственныйОбъект.Видимость = ЭтоОперацияНанесения
Или Не ЭтоПродукцияМОТП
И ВозможнаОперацияНанесения
И ДоступнаОперацияНанесенияПоВидуОперацииИСМП
И ЗначениеЗаполнено(ОперацияНанесения);
Элементы.ОтчетПроизводственнойЛинии.Видимость = ДоступенОтчетПроизводственнойЛинии;
Форма.Объект.ОтчетПроизводственнойЛинии = ОтчетПроизводственнойЛинии;
Элементы.СтраницаТовары.Видимость = Не ОтчетПроизводственнойЛинии;
Элементы.ГруппаОтчетПроизводственнойЛинии.Видимость = ОтчетПроизводственнойЛинии;
Элементы.ГруппаДанныеОтчетаПроизводственнойЛинии.Видимость = ОтчетПроизводственнойЛинии И Не ЭтоАгрегация И Не ЭтоПолучениеПродукцииОтФизическихЛиц;
Элементы.ГруппаМолочнаяПродукция.Видимость = ЭтоМолочнаяПродукция;
Элементы.ГруппаВЕТИС.Видимость = ЭтоМолочнаяПродукцияВЕТИС;
Если ЭтоПродукцияМОТП Тогда
Элементы.ИдентификаторПроизводственногоЗаказа.Видимость = Истина;
Элементы.ИдентификаторПроизводственнойЛинии.Видимость = Истина;
ИначеЕсли ВозможнаОперацияНанесения Тогда
Элементы.ОперацияНанесения.Видимость = ДоступнаОперацияНанесенияПоВидуОперацииИСМП;
Элементы.ИдентификаторПроизводственногоЗаказа.Видимость = Истина;
Если ЭтоВводВОборот И ЭтоМолочнаяПродукция Тогда
Элементы.ТоварыСрокГодности.Видимость = Истина;
Элементы.ШтрихкодыУпаковокСрокГодности.Видимость = Истина;
Если ЭтоМолочнаяПродукцияВЕТИС Тогда
Элементы.ОтчетПроизводственнойЛинии.ТолькоПросмотр = Не Форма.ИспользуетсяПодсистемаВЕТИС;
Элементы.ТоварыИдентификаторПроисхожденияВЕТИС.Видимость = Истина;
Элементы.ТоварыИдентификаторПроисхожденияВЕТИС.АвтоОтметкаНезаполненного = ЭтоВводВОборот;
Элементы.ШтрихкодыУпаковокИдентификаторПроисхожденияВЕТИС.Видимость = Истина;
ТипИдентификатораПроисхождения = ИнтеграцияИСМПВЕТИСКлиентСервер.ТипИдентификатораПроисхожденияВДокументеМаркировкаТоваров(
Форма, ЭтоПроизводствоВнеЕАЭС Или ЭтоТрансграничнаяТорговля);
Если ЗначениеЗаполнено(ТипИдентификатораПроисхождения) Тогда
МассивТиповИдентификаторПроисхожденияВЕТИС = Новый Массив;
ЗаголовокКолонкиВЕТИС = ИнтеграцияИСМПВЕТИСКлиентСервер.ЗаголовокПоляИдентификаторПроисхожденияВЕТИСПоТипу(ТипИдентификатораПроисхождения);
МассивТиповИдентификаторПроисхожденияВЕТИС.Добавить(ТипИдентификатораПроисхождения);
Элементы.ТоварыИдентификаторПроисхожденияВЕТИС.Заголовок = ЗаголовокКолонкиВЕТИС;
Элементы.ТоварыИдентификаторПроисхожденияВЕТИС.ОграничениеТипа = Новый ОписаниеТипов(МассивТиповИдентификаторПроисхожденияВЕТИС);
Элементы.ШтрихкодыУпаковокИдентификаторПроисхожденияВЕТИС.Заголовок = ЗаголовокКолонкиВЕТИС;
Элементы.ШтрихкодыУпаковокИдентификаторПроисхожденияВЕТИС.ОграничениеТипа = Новый ОписаниеТипов(МассивТиповИдентификаторПроисхожденияВЕТИС);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Иначе
Если ЭтоМаркировкаОстатков Или ЭтоПолучениеПродукцииОтФизическихЛиц Или ЭтоАгрегация Тогда
Элементы.ТоварыКодТНВЭД.Видимость = Ложь;
Иначе
Элементы.ТоварыКодТНВЭД.Видимость = Истина;
КонецЕсли;
Элементы.ТоварыСертификация.Видимость = Не ЭтоПолучениеПродукцииОтФизическихЛиц И Не ЭтоАгрегация И Не ЭтоИмпортСФТС;
КонецЕсли;
ЗависимыеОтСтатусаИСМП = Новый Массив;
ЗависимыеОтСтатусаИСМП.Добавить("ГруппаНередактируемыеПослеОтправкиРеквизитыОсновное");
ЗависимыеОтСтатусаИСМП.Добавить("ГруппаНередактируемыеПослеОтправкиКомандыТовары");
ЗависимыеОтСтатусаИСМП.Добавить("СтраницаТовары");
ИнтеграцияИСКлиентСервер.УправлениеДоступностьюЭлементовФормы(Форма,
ЗависимыеОтСтатусаИСМП, Не Форма.РедактированиеФормыНеДоступно);
ЗависимыеОтСтатусаПроверкиИПодбора = Новый Массив;
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ОткрытьПодборПодменю");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыЗагрузитьИзВнешнегоФайла");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыГруппаПерезаполнитьПоОснованию");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ГруппаТорговоеОборудование");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыНоменклатура");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыХарактеристика");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыСерия");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыКоличествоУпаковок");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыУпаковкаЕдиницаИзмерения");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыДобавить");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыСкопировать");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыИзменить");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыУдалить");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыКонтекстноеМенюДобавить");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыКонтекстноеМенюСкопировать");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыКонтекстноеМенюИзменить");
ЗависимыеОтСтатусаПроверкиИПодбора.Добавить("ТоварыКонтекстноеМенюУдалить");
ИнтеграцияИСКлиентСервер.УправлениеДоступностьюЭлементовФормы(Форма,
ЗависимыеОтСтатусаПроверкиИПодбора,
Не (Форма.РедактированиеФормыНеДоступно Или РедактированиеНедоступноПоСтатусуПроверкиИподбора(Форма)));
Если Форма.РедактированиеФормыНеДоступно
Или Не Форма.ПравоИзменения Тогда
Элементы.ВозобновитьПодборМаркируемойПродукции.Доступность = Ложь;
ИначеЕсли Форма.СтатусПроверкиИПодбора = ПредопределенноеЗначение("Перечисление.СтатусыПроверкиИПодбораИС.Завершено") Тогда
Элементы.ВозобновитьПодборМаркируемойПродукции.Доступность = Истина;
Иначе
Элементы.ВозобновитьПодборМаркируемойПродукции.Доступность = Ложь;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Форма, "ВидимостьПодключаемыхКоманд") Тогда
ПодключаемыеКомандыИСКлиентСервер.УправлениеВидимостьюКомандПодключенныхКОбъекту(Форма);
КонецЕсли;
КонецПроцедуры
Показать
Надо половинить комментариями текст процедуры и ловить строку на которой падает. Чисто обращение к свойству элемента
это некорректно, надо через функцию БСП
Элементы.ВозобновитьПодборМаркируемойПродукции.Доступность
это некорректно, надо через функцию БСП
УстановитьСвойствоЭлементаФормы()
(8) Искал бинарным поиском, в каком месте рождается ошибка - комментил код половинами . Дошел до вызова этой процедуры. Процедура тоже не вся с ошибками. Это ее надо тоже комментить, чтобы найти участки проблемного кода. Кроме этой процедуры есть еще одна. И это только открытие формы. При записи аналогичные ошибки. Наверняка есть при изменении элементов формы. Короче, считаю, что искать неправильные конструкции и исправлять их на правильные - контрпродуктивно. Должно быть другое решение. Разработчики тестили же, что писали. Может в свойствах формы надо что-то выставить
Разберитесь, зачем нужен НаСервереБезКонтекста.
Попробуйте поменять на &НаСервере и выкинуть параметр Форма. В тексте процедуры заменить Форма на ЭтаФорма.
Если ошибка воспроизводится на демо-базе, то такое стоит писать на техподдержку.
Попробуйте поменять на &НаСервере и выкинуть параметр Форма. В тексте процедуры заменить Форма на ЭтаФорма.
Если ошибка воспроизводится на демо-базе, то такое стоит писать на техподдержку.
Прогресс: В демке ошибка не возникает. Но. В этот документ конкретно, и в подсистему ИС МП изменений никаких не вносилось. Я обновление с ней накатил только 2 недели назад, и сел разбираться. Значит, дело в параметрах ИБ...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот