Ошибка преобразования данных XDTO: Запись значения свойства 'cr'

1. asdfgcom 417 19.07.22 15:31 Сейчас в теме
Что-то непонятное.
Платформа 8.3.20.1838
Описываю свойство при изменении реквизита Контрагент на форме.

&НаСервере
Процедура КонтрагентПриИзмененииНаСервере()
	// Вставить содержимое обработчика.
КонецПроцедуры

&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
	КонтрагентПриИзмененииНаСервере();        //<=== Здесь ошибка на отладке
КонецПроцедуры
Показать


Получаю ошибку:

Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'cr':
форма: Элемент
имя: {http://v8.1c.ru/8.2/mngsrv/ws}cr
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ДанныеФормыЭлементКоллекции'

Причем только 1 раз. Второй раз при изменении контрагента отрабатывает нормально и клиент и сервер.

Кэш чистил. в dt выгружал-загружал...

Работает только в таком виде:

&НаСервере
Процедура КонтрагентПриИзмененииНаСервере()
	// Вставить содержимое обработчика.
КонецПроцедуры

&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)         
	ПодключитьОбработчикОжидания("ПриИзмененииКонтрагента",0.1,Истина);
КонецПроцедуры

&НаКлиенте
Процедура ПриИзмененииКонтрагента() Экспорт
	КонтрагентПриИзмененииНаСервере();
КонецПроцедуры
Показать
Прикрепленные файлы:
Найденные решения
8. -AI- 19.07.22 16:48 Сейчас в теме
(7)
ПриОткрытии()
где то у тебя в этом обработчике в реквизит формы помещается
"ДанныеФормыЭлементКоллекции"

например строка табличной части помещается в реквизит...

такое бывает если например цикл
для каждого <переменная> из Объект.Товары

и <переменная> - есть одноимённый реквизит.
(или переменная-параметр процедуры)
9. asdfgcom 417 19.07.22 17:07 Сейчас в теме
(8)
где то у тебя в этом обработчике в реквизит формы помещается
"ДанныеФормыЭлементКоллекции"

Однозначно так. И чудес не бывает.
Нашел в самом неожиданном месте.
Вероятно, ошибка уже есть на форме. Платформа ее пропустила. И она проявляется в любой момент вызова сервера.

При перезаполнении таблицы терялась текущая строка, данные которой являлись фильтром для другой таблицы. Очень неудобно перевыбирать постоянно. Была сделана попытка вернуть "фокус" на индекс строки, и вот оно ДанныеФормыЭлементКоллекции вместо индекса. Возникло после переноса таблицы значений на форме в таблицу объекта. Раньше возвращала индекс, теперь ДанныеФормыЭлементКоллекции.
Спасибо всем за проявленное участие!

	ПараметрыОтбора = Новый Структура;
	ПараметрыОтбора.Вставить("Дата",ТекДата);
	найденные = Объект.Дни.НайтиСтроки(ПараметрыОтбора);
	Если Найденные.количество() > 0 Тогда
		стрДень = Найденные[0];
	КонецЕсли;
	//Элементы.Дни.ТекущаяСтрока = стрДень;   //Возвращает ДанныеФормыЭлементКоллекции вместо индекса как раньше 
	
Показать

Платформа должна была сообщить об ошибке здесь: Элементы.Дни.ТекущаяСтрока = стрДень.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. -AI- 19.07.22 15:46 Сейчас в теме
точно код именно такой? (стопроцентный копипаст)
и нет передаваемых параметров?
3. asdfgcom 417 19.07.22 15:48 Сейчас в теме
(2) Сам в шоке!
Обновите тему, добавил как работает.
Сейчас прикреплю скрины.
4. -AI- 19.07.22 15:54 Сейчас в теме
(3) похоже на баг платформы.
иногда "помогает" чтение известных багов, особенно исправленных в след. версии...
5. asdfgcom 417 19.07.22 15:56 Сейчас в теме
6. -AI- 19.07.22 15:59 Сейчас в теме
(5) попробуй перед серверным вызовом сделать
Элемент=Неопределено;

кстати! у тебя, случайно, нет реквизита формы "Элемент"?
7. asdfgcom 417 19.07.22 16:20 Сейчас в теме
(6) Это точно нет.
Нашел место в коде ПриОткрытии() Идет обращение к общему модулю на сервере, заполняет таблицу объекта, которая также на форме в виде таблицы. Если это место закомментировано, то все остальное работает. Сейчас построчно проверяю, что не так приходит с сервера. Занимает время. Однако, отот кусок кода не вызывает ошибок и заполняет правильно. Ошибки возникают на любых вызовах сервера из формы далее.
8. -AI- 19.07.22 16:48 Сейчас в теме
(7)
ПриОткрытии()
где то у тебя в этом обработчике в реквизит формы помещается
"ДанныеФормыЭлементКоллекции"

например строка табличной части помещается в реквизит...

такое бывает если например цикл
для каждого <переменная> из Объект.Товары

и <переменная> - есть одноимённый реквизит.
(или переменная-параметр процедуры)
9. asdfgcom 417 19.07.22 17:07 Сейчас в теме
(8)
где то у тебя в этом обработчике в реквизит формы помещается
"ДанныеФормыЭлементКоллекции"

Однозначно так. И чудес не бывает.
Нашел в самом неожиданном месте.
Вероятно, ошибка уже есть на форме. Платформа ее пропустила. И она проявляется в любой момент вызова сервера.

При перезаполнении таблицы терялась текущая строка, данные которой являлись фильтром для другой таблицы. Очень неудобно перевыбирать постоянно. Была сделана попытка вернуть "фокус" на индекс строки, и вот оно ДанныеФормыЭлементКоллекции вместо индекса. Возникло после переноса таблицы значений на форме в таблицу объекта. Раньше возвращала индекс, теперь ДанныеФормыЭлементКоллекции.
Спасибо всем за проявленное участие!

	ПараметрыОтбора = Новый Структура;
	ПараметрыОтбора.Вставить("Дата",ТекДата);
	найденные = Объект.Дни.НайтиСтроки(ПараметрыОтбора);
	Если Найденные.количество() > 0 Тогда
		стрДень = Найденные[0];
	КонецЕсли;
	//Элементы.Дни.ТекущаяСтрока = стрДень;   //Возвращает ДанныеФормыЭлементКоллекции вместо индекса как раньше 
	
Показать

Платформа должна была сообщить об ошибке здесь: Элементы.Дни.ТекущаяСтрока = стрДень.
Оставьте свое сообщение

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