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

lira89

Well-known member
12.03.2010
154
0
#1
Версия 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); 
Иначе
ВидимостьВкладкиДляКонтрактников(); 
КонецЕсли;
КонецПроцедуры
 

vbs

Well-known member
18.02.2007
1 708
1
#3
Он был серый, как шинельное сукно,
Чуть серее, чем промерзшее окно.
Бабка хитрой и веселою была :
"Я, мол, козлика в тумане родила !" :KillMe:
 

lira89

Well-known member
12.03.2010
154
0
#5
Надо чтобы реквизит становились неактивными: светло серыми)
 

vbs

Well-known member
18.02.2007
1 708
1
#6
Нелегко показать недоступность)
Учту в следующей версии упомянутой пародии :KillMe:

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

lira89

Well-known member
12.03.2010
154
0
#7
Буду знать теперь, что это невозможно.
А черное на сером совсем не смотрится ?
Мне не важно как это смотриться, а людям, которые будут работать с этим думаю было бы удобнее (не путается информация) :KillMe:)
 

evgenyatam

Well-known member
07.09.2007
175
0
#8
дело в том что на с++билдере и делфи при запрещении tEdit и им подобных (аналог поля ввода) серым становится только текст. а если в компонент ничего не введено - то не видно разницы между запрещенным и разрешенным компонентом. так что проблема в виндах.