1с7 Видимость реквизита на форме

  • Автор темы Isabela
  • Дата начала
I

Isabela

#1
7.70.27 ТиС 9.54
В форме документа три слоя
Основной (все нужные реквизиты документа)
Общий (кнопки)
Рейсы (несколько атрибутов формы) - в этом слое есть реквизит Х, видимость которого должна меняться при выборе в слое "Основной" контрагента
Так вот, если выбирается контрагент, для которого Форма.Х.Видимость(1), реквизит Х становится видным в слое "Основной". такой же эффект и при открытии старого документа.
При переключении закладок все нормализуется

Procedure ПриВыбореЗакладки(НомерЗакладки, ЗначениеЗакладки)
if НомерЗакладки = 1 then
Форма.ИспользоватьСлой("Общий,Основной");
elsif НомерЗакладки = 2 then
Форма.ИспользоватьСлой("Общий,Рейсы");
endif;
EndProcedure // ПриВыбореЗакладки()


Уже по ночам снится. В чем проблема ?
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#2
Посмотрите "ИспользоватьСлой". Эта процедура как раз делает видимыми элементы слоя и невидимыми элементы остальных слоев. Посему, если вы делаете видимым элемент формы, независимо от того, в каком слое он располагается, он будет видимым. Посему, изменяйте видимость вашего реквизита в процедуре "ПриВыбореЗакладки" и только в том случае, когда выбрана закладка с этим элементом.
 
I

Isabela

#3
Спасибо за подсказку. Сама уже за это время успела сообразить :
Procedure ПриВыбореЗакладки(НомерЗакладки, ЗначениеЗакладки)
if НомерЗакладки = 1 then
Форма.ИспользоватьСлой("Общий,Основной");
elsif НомерЗакладки = 2 then
Форма.ИспользоватьСлой("Общий,Рейсы");
Форма.Х.Видимость(Признак)
endif;
EndProcedure // ПриВыбореЗакладки()
Просто видимость не надо было менять сразу при изменении контрагента (наверное, это связано с тем, что слой "Рейсы" имеет свойства "видимый" и "активный")
 

SeverBap

Well-known member
18.09.2007
451
0
#4
Я обычно обхожу до этого Форма.ИспользоватьСлой("Общий,Основной",2);
В основном модуле или ПриОткрытии!