(2)
Есть событие динамического списка ПриПолученииДанныхНаСервере. Она создается без контекста. Мне нужно поменять реквизит из этого события.
Вообще сама задача, выводить количество строк в дин. списке. И при изменении отбора, создания новых строк, обновлении и т.п. изменять этот реквизит.
(7) Печаль. Оттуда никак не получится.
Но вообще задач подбития итогов по динамическому списку надо бежать, как огня. Так как это попытка реализовать противоречивые требования.
Мне всегда удавалось вместо этого создать специализированный инструмент под нужную задачу со статическим списком. А его наполнением управлять через СКД. Обычно, если нужны итоги, значит подразумевается ограниченная выборка и статический список вполне подходит.
(17) Не подскажу. Но там почти все руками. Добавляешь в реквизиты формы КомпоновщикНастроек, инициализируешь его программно, нужные настройки или пользовательские настройки выкидываешь на форму, по кнопке делаешь программную компоновку, только результат не в табличный документ получаешь, а в таблицу значений (есть у СКД такой режим компоновки). Вот эта таблица значений и будет статическим списком.
(7)Так, ради интереса.
Создайте внешнюю обработку, поместите на ее форму динамический список. Желательно со справочником типа Номенклатура, чтобы были группы.
В обработчике создайте такой код:
&НаСервереБезКонтекста
Процедура Реквизит1ПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
К = Строки.Количество();
Сообщить(К);
КонецПроцедуры
А потом полистайте список, по разворачивайте/по сворачивайте группы сначала просто мышкой,
а потом с нажатием клавиши F5.
Нужно именно из этой процедуры менять? Почему нельзя из другой? Или вернуть значение их этой функции и установить его уже из другого места, где контекст формы доступен?
(5) причем менять будем обязательно в фоновом задании
А так, по существу надо просто переделать логику. В модуле формы, для чего все разделили.
НаКлиенте - это только клиент
НаСервере - На сервере но с контекстом формы.
НаСервереБезКонтекста - для того чтобы весь контекст формы не тащить, когда что-то нужно по быстрому с сервера извлечь.
и спрашивается зачем пытаться делать то, что изначально для этого не предназначено ? Переделать надо логику вызовов процедур и все.
(5) Что интересно, я реально встречал такое решение (форма в параметрах). Только уже не помню где. Может и в типовой какой. Таким образом эмулировалась директива &НаКлиентеНаСервере (которая почему-то только в модуле команды разрешена). Ставили директиву &НаКлиентеНаСервереБезКонтекста, а контекст параметром передавали. Вполне рабочее решение, так как при этом обмена с сервером не происходит.
А вот &НаСервереБезКонтекста - это уже сурово.
(15) Не. В данном случае нормально, так как все происходит на сервере. Никаких трансформаций контекста не происходит. Это простая локальная ссылка. Жесть была бы, если бы оно между клиентом и сервером ходило.
(16) Да понятно. Это я привел как иллюстрацию повсеместного использования формы как параметра. Что, естественно, порождает иллюзию, что с клиента на сервер тоже можно кидать...
(18) Да может и можно, я не пробовал. Но даже если можно - то все равно жесть. Штатная передача контекста оптимизируется по изменениям, а эта всем гамбузом пойдет.