|
Доступность элементов | ☑ | ||
---|---|---|---|---|
0
CalvinKlein
30.08.12
✎
22:50
|
Подскажите, плиз. На форме много очень элементов. Как можно управлять доступностью программно без обращения к каждому?
Допустим эти элементы можно разделить на три группы, можно как-нибудь группами управлять их доступность? |
|||
1
ОбычныйЧеловек
30.08.12
✎
23:02
|
(0) Положи эти три элемента на панель и управляй доступностью панели.
|
|||
2
CalvinKlein
30.08.12
✎
23:04
|
можно, но при этом придется много где код переписывать я так понимаю. Ведь обращение уже к ним будет не на прямую, а через панель1.элемент1...
|
|||
3
ОбычныйЧеловек
30.08.12
✎
23:05
|
(2) если в коде было управление видимостью этих реквизитов то ДА а если нет...
|
|||
4
CalvinKlein
30.08.12
✎
23:08
|
(3) - хорошее решение, спасибо!)
|
|||
5
Худой
31.08.12
✎
05:05
|
Вот код из БП 3.0, как пример.
Может быть, как идея, подойдет? // Принимает в качестве параметра форму и для всех реквизитов, // для которых определен механизм, блокирует их редактирование. // // Параметры: // Форма - УправляемаяФорма объекта, которая будет настроена. // // СпециальнаяПолеГруппыДляКнопкиЗапрета - переопределяет стандартное размещение // кнопки запрета в форме объекта. // Процедура ЗаблокироватьРеквизиты(Форма, СпециальнаяПолеГруппыДляКнопкиЗапрета = Неопределено) Экспорт // Определение, форма уже подготовлена при предыдущем вызове ФормаПодготовлена = Ложь; РеквизитыФормы = Форма.ПолучитьРеквизиты(); Для Каждого РеквизитФормы Из РеквизитыФормы Цикл Если РеквизитФормы.Имя = "ПараметрыЗапретаРедактированияРеквизитов" Тогда ФормаПодготовлена = Истина; Прервать; КонецЕсли; КонецЦикла; Если Не ФормаПодготовлена Тогда ПодготовитьФорму(Форма, Форма.Объект.Ссылка, СпециальнаяПолеГруппыДляКнопкиЗапрета); КонецЕсли; ЭтоНовыйОбъект = Форма.Объект.Ссылка.Пустая(); // Блокировка редактирования элементов формы, связанных с заданными реквизитами Для Каждого ОписаниеБлокируемогоРеквизита Из Форма.ПараметрыЗапретаРедактированияРеквизитов Цикл Для Каждого ОписаниеЭлементаФормы Из ОписаниеБлокируемогоРеквизита.БлокируемыеЭлементы Цикл ОписаниеБлокируемогоРеквизита.РедактированиеРазрешено = ОписаниеБлокируемогоРеквизита.ПравоРедактирования И ЭтоНовыйОбъект; ЭлементФормы = Форма.Элементы.Найти(ОписаниеЭлементаФормы.Значение); Если ЭлементФормы <> Неопределено Тогда Если ТипЗнч(ЭлементФормы) = Тип("ПолеФормы") ИЛИ ТипЗнч(ЭлементФормы) = Тип("ТаблицаФормы") Тогда ЭлементФормы.ТолькоПросмотр = НЕ ОписаниеБлокируемогоРеквизита.РедактированиеРазрешено; Иначе ЭлементФормы.Доступность = ОписаниеБлокируемогоРеквизита.РедактированиеРазрешено; КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; Если Форма.Элементы.Найти("РазрешитьРедактированиеРеквизитовОбъекта") <> Неопределено Тогда Форма.Элементы.РазрешитьРедактированиеРеквизитовОбъекта.Доступность = Истина; КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |