Форма объекта БД. ПриЧтенииНаСервере+ПриСозданииНаСервере VS ПриИзмененииДанных #626058


#0 by TormozIT
Никак не могу разобраться как предполагалось настраивать элементы формы в зависимости от данных объекта в управляемой форме. В обычных формах для этого есть событие ПриИзмененииДанных. Оно вызывается при создании формы для любого объекта (нового или существующего) и при чтении данных объекта в существующей форме (правда только для модифицированного). В управляемых же формах такого события нет. Самым близким является ПриЧтенииНаСервере, но оно не вызывается для нового объекта, что соотвествует названию. Событие же ПриСозданииНаСервере не вызывается при чтении объекта в уже созданной форме, что также соответствует названию. Если процедуру настройки элементов формы вызывать в обоих, то при открытии формы существующего объекта она будет вызвана 2 раза, чего хотелось бы избежать. В случае форм ссылочных объектов можно проверять Объект.Ссылка.Пустая в обработчике ПриСозданииНаСервере, чтобы не вызывать уже вызванную из ПриЧтенииНаСервере процедуру настройки элементов формы. Но для не ссылочных объектов получается придется в каждой форме добавлять флаг ОбъектСчитан, который нужно установить в ПриЧтенииНаСервере и проверять в ПриСозданииНаСервере. Или же есть какой то более красивый способ?
#1 by Mort
Настраивать элементы формы в зависимости от данных стоит в условном оформлении. Другое дело расчет косвенных данных (например, вычисляемая колонка в ТЧ), и тут уже одного "ПриЧтении" достаточно.
#2 by Mort
Впрочем иногда условного оформления недостаточно и тогда начинаются танцы с бубном как в .
#3 by TormozIT
Условное оформление формы ориентировано на колонки таблиц форм и обладает довольно скудными возможностями. Так что это очень слабый костыль.
#4 by TormozIT
Но выигрыш по удобству настройки условного оформления бесспорен. Однако "шаг вправо или влево" и уже надо переносить все условия из условного оформления в обработчик из .
#5 by Новенький_2009
Мне кажется проще надо быть :)
#6 by TormozIT
Т.е. менее четко формулировать высказывания? Как бы ты сформулировал?
#7 by TormozIT
Удалось найти приемлемо простой способ. В обработчике ПриСозданииНаСервере вызываем процедуру всегда, а в обработчике ПриЧтенииНаСервере вызываем ее только если Не Параметры.Свойство("ТолькоПросмотр").
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С