HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...
Bug #964392
open8.3.23-+ Свойство ТекущаяСтрока таблицы формы не контролирует тип значения при его установке
0%
Description
https://partners.v8.1c.ru/forum/t/2133418/m/2133418
Конфигурация ПО
8.3.23
Проблема
Свойство ТекущаяСтрока таблицы формы не контролирует тип значения при его установке
Воспроизведение
Открыть приложенную внешнюю обработку в клиентском приложении любой базы. Нажать кнопку "Команда1". При этом выполнится код
&НаКлиенте Процедура Команда1(Команда) Команда1Фрагмент(); КонецПроцедуры Процедура Команда1Фрагмент() Элементы.Реквизит1.ТекущаяСтрока = Реквизит1[0]; КонецПроцедуры
и будет отображено системное окно ошибки
Ошибка при вызове метода контекста (Команда1Фрагмент) {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(10)}:Команда1Фрагмент(); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства 'cr': форма: Элемент имя: {http://v8.1c.ru/8.2/mngsrv/ws}cr по причине: Ошибка отображения типов: Отсутствует отображение для типа 'ДанныеФормыЭлементКоллекции'
Из которого в случае сложной формы и объемного кода серверного вызова достаточно трудно понять
в каком месте формы находится значение запрещенного типа
в какой строке кода выполнено присвоение значения запрещенного типа
т.к. контроль типа выполняется в момент возврата из серверного вызова.
А ожидался контроль типа значения в момент присвоения значения свойству. Так платформа уже умеет делать в других местах. Например если нажать кнопку "Команда2", то выполнится код
&НаКлиенте Процедура Команда2(Команда) Команда2НаСервере(); КонецПроцедуры &НаСервере Процедура Команда2НаСервере() ЭтаФорма.Реквизит2 = Реквизит1[0]; КонецПроцедуры
и будет отображено системное окно ошибки
Ошибка при установке значения атрибута контекста (Реквизит2) {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(19)}:ЭтаФорма.Реквизит2 = Реквизит10; {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(24)}:Команда2НаСервере(); по причине: Тип "ДанныеФормыЭлементКоллекции" не может использоваться в данных формы
Родственные темы
https://partners.v8.1c.ru/forum/t/743913/m/743913
https://partners.v8.1c.ru/forum/t/1231783/m/1231783
Files