Вход | Регистрация
 

Нельзя изменять поле, содержащее объект данных формы, УФ, тонкий клиент

Нельзя изменять поле, содержащее объект данных формы, УФ, тонкий клиент
Я
   rowvg
 
11.05.21 - 11:32
На форме есть реквизит СписокКомплектующих, тип - ТаблицаЗначений. Если в серверной процедуре написать
ЭтотОбъект.СписокКомплектующих = Запрос.Выполнить().Выгрузить();
получим ошибку - Нельзя изменять поле, содержащее объект данных формы.

В тоже время вот такой код
НоваяСтрока = ЭтотОбъект.СписокКомплектующих.Добавить();
в той же процедуре прекрасно работает.

Но ведь он тоже изменяет поле, содержащее объект данных формы.

Почему в первом случает это ошибка, а во втором - нет?
   Жан Пердежон
 
1 - 11.05.21 - 11:38
Загрузить()
   Жан Пердежон
 
2 - 11.05.21 - 11:39
(0) очевидно, что в первом случае ты изменяешь поле, а во втором нет
   rowvg
 
3 - 11.05.21 - 11:41
(2) Поле меняется и во втором случае, ведь я добавляю в него новые строки, которых ранее не было.
   Kassern
 
4 - 11.05.21 - 11:43
(3) если вы будете заполнять строки типа: НоваяСтрока =ТЗ[0]; то словите точно такую же ошибку. В первом случае вы присваиваете к объекту данных формы таблицу значений. Во втором случае вы добавляете средствами объекта данных формы новую строку.
   rowvg
 
5 - 11.05.21 - 11:47
(4) Это понятно

Непонятна логика разработчиков платформы. Почему Запрос.Выполнить().Выгрузить(), если он работает с ДанныеФормаКоллекция не может просто очистить существующий объект и заполнить его новыми строками?

Мне таблицу значений на сервере можно только в цикле заполнить?
   mikecool
 
6 - 11.05.21 - 11:48
(5) тебе в (1) ответили
   Kassern
 
7 - 11.05.21 - 11:48
(5) Вам же написали в (1) ЭтотОбъект.СписокКомплектующих.Загрузить(ТвоеТЗ);
   mikecool
 
8 - 11.05.21 - 11:49
+6 и если тебе что-то не понятно, то это не вина разработчиков
   rowvg
 
9 - 11.05.21 - 11:49
(6) Не тебе все - таки я думаю...
(7) Спасибо, понял

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.