|
v7: ТолькоПросмотр(1) и доступность полей | ☑ | ||
---|---|---|---|---|
0
yur4egg
08.02.12
✎
09:32
|
В документе поля блокируются ТолькоПросмотр(1), но один флажок при определенных условиях надо открыть для доступа. Форма.Флажок.Доступность(1) здесь не работает. Гугль советует заменить флажок кнопкой или вовсе откааться от ТолькоПросмотр(1), перечислив реквизиты для закрытия поименно, но если их порядка 40-50ти?
Испытал даже такой вариант: рф = СоздатьОбъект("РасширениеФормы"); рф.УстановитьФорму(вхФорма); Для Сч=0 По рф.КоличествоАтрибутов() - 1 Цикл Рекв=рф.ПолучитьАтрибут(Сч); Если Рекв.Идентификатор="НужныйФлажок" Тогда Рекв.Доступность=1; КонецЕсли; КонецЦикла; Тоже не работает. Доступность можно вернуть только через ТолькоПросмотр(0). Тогда родился оч хитрый алгоритм: Процедура СделатьРеквизитДоступным(вхФорма,ИменаРекв) Экспорт //ЗАПОМИНАЕМ СОСТОЯНИЕ ДОСТУПНОСТИ ПРИ ТОЛЬКОПРОСМОТР(1) ТЗ_Рекв=СоздатьОбъект("ТаблицаЗначений"); ТЗ_Рекв.НоваяКолонка("Реквизит"); ТЗ_Рекв.НоваяКолонка("ИмяРекв"); ТЗ_Рекв.НоваяКолонка("Доступность"); рф = СоздатьОбъект("РасширениеФормы"); рф.УстановитьФорму(вхФорма); Для Сч=0 По рф.КоличествоАтрибутов() - 1 Цикл Рекв=рф.ПолучитьАтрибут(Сч); ТЗ_Рекв.НоваяСтрока(); ТЗ_Рекв.Реквизит=Рекв; ТЗ_Рекв.ИмяРекв=Рекв.Идентификатор; ТЗ_Рекв.Доступность=Рекв.Доступность; КонецЦикла; //ВОССТАНАВЛИВАЕМ ДОСТУПНОСТЬ ВСЕЙ ФОРМЫ вхФорма.ТолькоПросмотр(0); //ВОССТАНАВЛИВАЕМ ДОСТУПНОСТЬ РЕКВИЗИТОВ ИМИТИРУЯ ТОЛЬКОПРОСМОТР(1) ТЗ_Рекв.ВыбратьСтроки(); Пока ТЗ_Рекв.ПолучитьСтроку()=1 Цикл Рекв=ТЗ_Рекв.Реквизит; Рекв.Доступность=ТЗ_Рекв.Доступность; Если Найти(ИменаРекв,Рекв.Идентификатор)>0 Тогда Рекв.Доступность=1; //НУЖНЫЙ МНЕ ФЛАЖОК ЗДЕСЬ КонецЕсли; КонецЦикла; КонецПроцедуры Действительно, флажок стал доступным! Но при этом закрылись большинство кнопок, которые д.б. открыты, ведь ТолькоПросмотр(1) действует только на поля. Проверив содержимое ТЗ_Рекв, с ужасом обнаружил, что доступность кнопок оказалось 0 а не 1. Как такое возможно? |
|||
1
skunk
08.02.12
✎
09:33
|
для кнопок вроде как доступность
|
|||
2
Ёпрст
08.02.12
✎
09:35
|
полный ПЭ..
|
|||
3
Ёпрст
08.02.12
✎
09:36
|
выкидываешь ТолькоПросмотр из кода, далее тупо через РасширениеФормы рулишь доступностью всех реквизитов.
Всё |
|||
4
yur4egg
08.02.12
✎
09:42
|
Да, наверно это самое рациональное решение. Но остается непоянтно, почему когда кнопка активна и даже нажимается, ее доступность через РасширениеФормы возвращается 0... Если не лень и есть время, можете проверить у себя.
|
|||
5
Ёпрст
08.02.12
✎
09:44
|
(4) ТолькоПросмотр(1) устанавливает Доступность=0 всем атрибута, окромя кнопок, если че..
|
|||
6
yur4egg
08.02.12
✎
09:46
|
так вот я о том же, что доступность кнопок после ТолькоПросмотр(1) д.б. 1 А расширениеформы возвращает 0
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |