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

Тема в разделе "1C и всё что с ней связано", создана пользователем Isabela, 31 май 2009.

  1. Isabela

    Isabela Гость

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

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


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

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Посмотрите "ИспользоватьСлой". Эта процедура как раз делает видимыми элементы слоя и невидимыми элементы остальных слоев. Посему, если вы делаете видимым элемент формы, независимо от того, в каком слое он располагается, он будет видимым. Посему, изменяйте видимость вашего реквизита в процедуре "ПриВыбореЗакладки" и только в том случае, когда выбрана закладка с этим элементом.
     
  3. Isabela

    Isabela Гость

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

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    Я обычно обхожу до этого Форма.ИспользоватьСлой("Общий,Основной",2);
    В основном модуле или ПриОткрытии!
     
  5. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    А после этого попробуйте сделать Форма.ИмяРеквизита.Видимость(1) для реквизита, который располагается на "невидимом" слое.
     
Загрузка...

Поделиться этой страницей