![]() |
![]() |
![]() |
|
Заполнить ТЗ управляемой формы НаСервереБезКонтекста | ☑ | ||
---|---|---|---|---|
0
starz555
17.05.13
✎
10:15
|
При попытке воспользоваться ДанныеФормыВЗначение и ЗначениеВДанныеФормы на сервере, передав ДанныеФормыКоллекция параметрос не получается ("Нельзя изменять поле, содержащее объект данных формы
"). Есть ли вообще такая возможность или даже не пытаться? &НаКлиенте Процедура заполнить(Команда) ЗаполнитьНаСервере(ТаблицаНаФорме); КонецПроцедуры &НаСервереБезКонтекста Процедура ЗаполнитьНаСервере(ТаблицаНаФорме) ТЗ = ДанныеФормыВЗначение(ТаблицаНаФорме, Тип("ТаблицаЗначений")) ; Стр = ТЗ.добавить(); Стр.Кол = "чупакабра"; ЗначениеВДанныеФормы(ТЗ, ТаблицаНаФорме) ; КонецПроцедуры |
|||
1
Maxus43
17.05.13
✎
10:30
|
с контекстом делай, ибо меняешь данныеи формы
|
|||
2
starz555
17.05.13
✎
10:34
|
(1) а на хрена тогда вообще существует ЗначениеВДанныеФормы? Тогда хватило бы и ЗначениеВРеквизитФормы. Или я не догоняю чего-то?
|
|||
3
starz555
17.05.13
✎
10:39
|
просто форма достаточно "тяжелая", не хочется ее на сервер отправлять и обратно. Получается только в контекстном это возможно, через ЗначениеВРеквизитФормы?
|
|||
4
rozer76
17.05.13
✎
11:03
|
по ссылке нельзя передавать - платформа на знает что происходит у тебя в этой процедуре и не важно "насервере" или "насерверебезконтекста" только по значению можно ... (Знач ТаблицаНаФорме)
|
|||
5
rozer76
17.05.13
✎
11:11
|
(2) ЗначениеВДанныеФормы - ну это весь объект преобразовывает. Обычно в самой УФ используют ЗначениеВРеквизитФормы.
|
|||
6
starz555
17.05.13
✎
11:14
|
(5) Со ЗначениеВРеквизитФормы все понятно.
(4) Вы так имеете в виду?: &НаКлиенте Процедура заполнить(Команда) ТаблицаНаФорме = ЗаполнитьНаСервере(ТаблицаНаФорме); КонецПроцедуры &НаСервереБезКонтекста Функция ЗаполнитьНаСервере(Знач ТаблицаНаФорме) ТЗ = ДанныеФормыВЗначение(ТаблицаНаФорме, Тип("ТаблицаЗначений")) ; Стр = ТЗ.добавить(); Стр.Кол = "чупакабра"; ЗначениеВДанныеФормы(ТЗ, ТаблицаНаФорме) ; Возврат ТаблицаНаФорме; КонецФункции |
|||
7
starz555
17.05.13
✎
11:16
|
(6) все равно не получается
|
|||
8
vvp91
17.05.13
✎
11:32
|
Не надо никаких данных/реквизитов формы в значение использовать, не занимайтесь ерундой.
Функция дикая получилась - принимаем по значению всю коллекцию, потом ее изменяем и возвращаем. Жесточайший переизбыток данных. Достаточно в процедуру передать ДанныеФормыКоллекция и эти данные заполнить: &НаСервереБезКонтекста Процедура ЗаполнитьСервер(Коллекция) ЭлементКоллекции = Коллекция.Добавить(); ЭлементКоллекции.Кол = "чупакабра"; КонецПроцедуры Дальше форма все сама сделает - вернет что надо на клиента, покажет изменения и т.п. |
|||
9
starz555
17.05.13
✎
11:39
|
(8) vvp91, спасибо большое! чуть позже попробую
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |