Никак не могу разобраться как предполагалось настраивать элементы формы в зависимости от данных объекта в управляемой форме.
В обычных формах для этого есть событие ПриИзмененииДанных. Оно вызывается при создании формы для любого объекта (нового или существующего) и при чтении данных объекта в существующей форме (правда только для модифицированного).
В управляемых же формах такого события нет. Самым близким является ПриЧтенииНаСервере, но оно не вызывается для нового объекта, что соотвествует названию. Событие же ПриСозданииНаСервере не вызывается при чтении объекта в уже созданной форме, что также соответствует названию. Если процедуру настройки элементов формы вызывать в обоих, то при открытии формы существующего объекта она будет вызвана 2 раза, чего хотелось бы избежать.
В случае форм ссылочных объектов можно проверять Объект.Ссылка.Пустая() в обработчике ПриСозданииНаСервере, чтобы не вызывать уже вызванную из ПриЧтенииНаСервере процедуру настройки элементов формы. Но для не ссылочных объектов получается придется в каждой форме добавлять флаг ОбъектСчитан, который нужно установить в ПриЧтенииНаСервере и проверять в ПриСозданииНаСервере. Или же есть какой то более красивый способ?
Настраивать элементы формы в зависимости от данных стоит в условном оформлении. Другое дело расчет косвенных данных (например, вычисляемая колонка в ТЧ), и тут уже одного "ПриЧтении" достаточно.
Но выигрыш по удобству настройки условного оформления бесспорен. Однако "шаг вправо или влево" и уже надо переносить все условия из условного оформления в обработчик из (0).
Удалось найти приемлемо простой способ.
В обработчике ПриСозданииНаСервере вызываем процедуру всегда, а в обработчике ПриЧтенииНаСервере вызываем ее только если Не Параметры.Свойство("ТолькоПросмотр").
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.