Что-то непонятное.
Платформа 8.3.20.1838
Описываю свойство при изменении реквизита Контрагент на форме.
&НаСервере
Процедура КонтрагентПриИзмененииНаСервере()
// Вставить содержимое обработчика.
КонецПроцедуры
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
КонтрагентПриИзмененииНаСервере(); //<=== Здесь ошибка на отладке
КонецПроцедуры
Показать
Получаю ошибку:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'cr':
форма: Элемент
имя: {http://v8.1c.ru/8.2/mngsrv/ws}cr
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ДанныеФормыЭлементКоллекции'
Причем только 1 раз. Второй раз при изменении контрагента отрабатывает нормально и клиент и сервер.
где то у тебя в этом обработчике в реквизит формы помещается
"ДанныеФормыЭлементКоллекции"
Однозначно так. И чудес не бывает.
Нашел в самом неожиданном месте.
Вероятно, ошибка уже есть на форме. Платформа ее пропустила. И она проявляется в любой момент вызова сервера.
При перезаполнении таблицы терялась текущая строка, данные которой являлись фильтром для другой таблицы. Очень неудобно перевыбирать постоянно. Была сделана попытка вернуть "фокус" на индекс строки, и вот оно ДанныеФормыЭлементКоллекции вместо индекса. Возникло после переноса таблицы значений на форме в таблицу объекта. Раньше возвращала индекс, теперь ДанныеФормыЭлементКоллекции.
Спасибо всем за проявленное участие!
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Дата",ТекДата);
найденные = Объект.Дни.НайтиСтроки(ПараметрыОтбора);
Если Найденные.количество() > 0 Тогда
стрДень = Найденные[0];
КонецЕсли;
//Элементы.Дни.ТекущаяСтрока = стрДень; //Возвращает ДанныеФормыЭлементКоллекции вместо индекса как раньше
Показать
Платформа должна была сообщить об ошибке здесь: Элементы.Дни.ТекущаяСтрока = стрДень.
(6) Это точно нет.
Нашел место в коде ПриОткрытии() Идет обращение к общему модулю на сервере, заполняет таблицу объекта, которая также на форме в виде таблицы. Если это место закомментировано, то все остальное работает. Сейчас построчно проверяю, что не так приходит с сервера. Занимает время. Однако, отот кусок кода не вызывает ошибок и заполняет правильно. Ошибки возникают на любых вызовах сервера из формы далее.
где то у тебя в этом обработчике в реквизит формы помещается
"ДанныеФормыЭлементКоллекции"
Однозначно так. И чудес не бывает.
Нашел в самом неожиданном месте.
Вероятно, ошибка уже есть на форме. Платформа ее пропустила. И она проявляется в любой момент вызова сервера.
При перезаполнении таблицы терялась текущая строка, данные которой являлись фильтром для другой таблицы. Очень неудобно перевыбирать постоянно. Была сделана попытка вернуть "фокус" на индекс строки, и вот оно ДанныеФормыЭлементКоллекции вместо индекса. Возникло после переноса таблицы значений на форме в таблицу объекта. Раньше возвращала индекс, теперь ДанныеФормыЭлементКоллекции.
Спасибо всем за проявленное участие!
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Дата",ТекДата);
найденные = Объект.Дни.НайтиСтроки(ПараметрыОтбора);
Если Найденные.количество() > 0 Тогда
стрДень = Найденные[0];
КонецЕсли;
//Элементы.Дни.ТекущаяСтрока = стрДень; //Возвращает ДанныеФормыЭлементКоллекции вместо индекса как раньше
Показать
Платформа должна была сообщить об ошибке здесь: Элементы.Дни.ТекущаяСтрока = стрДень.