• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

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

Isabela

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

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


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

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab