• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

  • Автор темы lira89
  • Дата начала
L

lira89

Версия 7.7. Задача состоит в том, что в форме документа при выборе определенного значения реквизита КатегорияСтудента надо скрывать или отображать нужные реквизиты для ввода данных. Прошу заметить, что здесь вопрос состоит не в том как реквизиты вообще сделать невидимыми (с помощью Видимость()) , а как сделать так, чтобы эти реквизиты стали СЕРОГО цвета. Вот например флажок и радиокнопки при таком коде нормально работают, т.е. в зависимости от выбора категории они либо подсвечиваются серым либо нет,т.е. либо становятся доступными либо нет. А вот с другими реквизитами-полями ничего не происходит: их просто нельзя выбрать и все (т. к. Доступность(0)), а для удобства ввода нужно чтобы ненужные реквизиты подсвечивались серым. Подскажите, в чем проблема? Код приведен ниже.
Код:
Процедура ВидимостьВкладкиДляКонтрактников()
Форма.НомерКонтракта.Доступность(0); 
Форма.ДатаКонтракта.Доступность(0);
Форма.Организация.Доступность(0);
Форма.ГруппаОплаты.Доступность(0);
Форма.ОбучениеНачато.Доступность(0);
Форма.ОбучениеОкончено.Доступность(0);
Форма.Примечание.Доступность(0);
Форма.Категория.Доступность(0);
Форма.НомерПолучаемогоОбразования.Доступность(0);
Форма.Обучается.Доступность(0);
Форма.ЗакончилОбучение.Доступность(0);
Форма.ПерешелНаБюджет.Доступность(0);
Форма.РБ.Доступность(0);
Форма.СНГ.Доступность(0);
Форма.Зарубежье.Доступность(0);	 
КонецПроцедуры 

Процедура ПриОткрытии()
ПриЗаписиПерепроводить(1); 
Если ПустоеЗначение(КатегорияСтудента)=1 Тогда
КатегорияСтудента=Перечисление.КатегорияСтудентов.Основной; 
КонецЕсли;
//на вкладке Основное 
Форма.ФизЛицо.Доступность(1);
Форма.Факультет.Доступность(1);
Форма.УчГруппа.Доступность(1);
Форма.Кафедра.Доступность(1);
Форма.Специальность.Доступность(1);
Форма.Специализация.Доступность(1);
Форма.ЗачетКнижка.Доступность(1);
Форма.Предприятие.Доступность(0);
Форма.ТипАспиранта.Доступность(0);
Форма.Курс.Доступность(0);
Форма.ПравоНаПолучСоцСтип.Доступность(1);
//на вкладке Зачисление
Форма.ДатаЗачисл.Доступность(1); 
Форма.Приказ.Доступность(1);
Форма.Зачислен.Доступность(1);
Форма.ЗачислНаКурс.Доступность(1);
Форма.ОрганизацияДляКоторойОбучается.Доступность(0);
Форма.ОрганизацияНаправившая.Доступность(0);
Форма.ВидОбуч.Доступность(0); 
Форма.ТипСтипендии.Доступность(0);
Форма.ДатаЗачислВАспирантуру.Доступность(0);
Форма.ИнЯзВуз.Доступность(1);
//на вкладке Для Котрактников
ВидимостьВкладкиДляКонтрактников();

КонецПроцедуры

Процедура ПриВыбореКатегорииСтудента()
Если КатегорияСтудента = Перечисление.КатегорияСтудентов.Аспирант Тогда
//на вкладке Основное
Форма.ФизЛицо.Доступность(1);
Форма.Факультет.Доступность(1);
Форма.УчГруппа.Доступность(0);
Форма.Кафедра.Доступность(0);	 
Форма.Специальность.Доступность(1);
Форма.Специализация.Доступность(0);
Форма.ЗачетКнижка.Доступность(0);
Форма.Предприятие.Доступность(1);
Форма.ТипАспиранта.Доступность(1);
Форма.Курс.Доступность(1);
Форма.ПравоНаПолучСоцСтип.Доступность(0);
//на вкладке Зачисление
Форма.ДатаЗачисл.Доступность(0); 
Форма.Приказ.Доступность(0);
Форма.Зачислен.Доступность(0);
Форма.ЗачислНаКурс.Доступность(1);
Форма.ОрганизацияДляКоторойОбучается.Доступность(1);
Форма.ОрганизацияНаправившая.Доступность(1);
Форма.ВидОбуч.Доступность(1); 
Форма.ТипСтипендии.Доступность(1);
Форма.ДатаЗачислВАспирантуру.Доступность(1);
Форма.ИнЯзВуз.Доступность(1);
//на вкладке Для Котрактников
ВидимостьВкладкиДляКонтрактников();
КонецЕсли;	
КонецПроцедуры

Процедура ЗачисленПоКонтракту()
Если Зачислен=Перечисление.Зачислен.ПоКонтракту Тогда 
//на вкладке Для Котрактников
Форма.НомерКонтракта.Доступность(1); 
Форма.ДатаКонтракта.Доступность(1);
Форма.Организация.Доступность(1);
Форма.ГруппаОплаты.Доступность(1);
Форма.ОбучениеНачато.Доступность(1);
Форма.ОбучениеОкончено.Доступность(1);
Форма.Примечание.Доступность(1);
Форма.Категория.Доступность(1);
Форма.НомерПолучаемогоОбразования.Доступность(1);
Форма.Обучается.Доступность(1);
Форма.ЗакончилОбучение.Доступность(1);
Форма.ПерешелНаБюджет.Доступность(1);
Форма.РБ.Доступность(1);
Форма.СНГ.Доступность(1);
Форма.Зарубежье.Доступность(1); 
Иначе
ВидимостьВкладкиДляКонтрактников(); 
КонецЕсли;
КонецПроцедуры
 
U

unknown181538

Реквизит "ПолеВвода" и так вроде серый?
 
V

vbs

Он был серый, как шинельное сукно,
Чуть серее, чем промерзшее окно.
Бабка хитрой и веселою была :
"Я, мол, козлика в тумане родила !" :KillMe:
 
L

lira89

Надо чтобы реквизит становились неактивными: светло серыми)
 
V

vbs

Нелегко показать недоступность)
Учту в следующей версии упомянутой пародии :KillMe:

Добавлено:
Надо чтобы реквизит становились неактивными: светло серыми)
Боюсь, это невозможно <_<
А черное на сером совсем не смотрится ?
 
L

lira89

Буду знать теперь, что это невозможно.
А черное на сером совсем не смотрится ?
Мне не важно как это смотриться, а людям, которые будут работать с этим думаю было бы удобнее (не путается информация) :KillMe:)
 
E

evgenyatam

дело в том что на с++билдере и делфи при запрещении tEdit и им подобных (аналог поля ввода) серым становится только текст. а если в компонент ничего не введено - то не видно разницы между запрещенным и разрешенным компонентом. так что проблема в виндах.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!