|
ЭлементыФормы | ☑ | ||
---|---|---|---|---|
0
MrBen
26.09.23
✎
16:04
|
В общем решаю задачку. Открыл синтаксис помощник.
"ЭлементыФормы (FormItems) Элементы коллекции: ГруппаФормы, ТаблицаФормы, ПолеФормы, КнопкаФормы Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции." Пробую такой цикл но не пашет. "{Документ.УстановкаЦен.Форма.ФормаДокумента.Форма(55,30)}: Переменная не определена (ЭлементыФормы) Для Каждого ЭлементФормы Из <<?>>ЭлементыФормы Цикл (Проверка: Тонкий клиент)" ПочемуЛыжиНеЕдут? |
|||
1
SleepyHead
26.09.23
✎
16:07
|
(0)
1. непонятно, в каком контексте выполняется этот код (клиент или сервер) 2. Что такое элементыФормы в твоем коде? Попробуй ЭтаФорма.Элементы или просто Элементы при условии, что работаешь на клиенте. |
|||
2
shuhard
26.09.23
✎
16:13
|
(0) дык тово, не смазаны лыжи и по гравию не идут
ты отладчиком то посмотри |
|||
3
MrBen
26.09.23
✎
16:15
|
(1) На клиенте
|
|||
4
azernot
26.09.23
✎
16:16
|
Потому что правильно Элементы
Для Каждого ЭлементФормы Из Элементы Цикл |
|||
5
MrBen
26.09.23
✎
16:16
|
(1) Блин хотел перевод строки и отправил.
кароче на клиенте делаю и пробовал ЭтаФорма.Элементы тоже не прокатило. |
|||
6
MrBen
26.09.23
✎
16:18
|
(4) Синтаксических ошибок не обнаружено!
|
|||
7
azernot
26.09.23
✎
16:20
|
(6) А чего тогда в (5) не прокатило?
Короче, дело не в лыжах, имхо. |
|||
8
SleepyHead
26.09.23
✎
16:23
|
(6) сомневаюсь, что это УФ. Либо в директиве &НаКлиенте опечатка
|
|||
9
MrBen
26.09.23
✎
16:24
|
(7) Для Каждого ЭлементФормы Из Этаформа.Элементы Цикл
не прокатило! Как ты написал работает. теперь буду разбираться с наличием "Доступность" у элементов и устанавливать как надо эту доступность :) |
|||
10
MrBen
26.09.23
✎
16:25
|
(8) &НаКлиенте
Процедура УстановитьДоступностьЭлементовФормы(ЗначениеДоступности) Для Каждого ЭлементФормы Из Элементы Цикл ЭлементФормы.Доступность = ЗначениеДоступности КонецЦикла КонецПроцедуры; //Чтоб не было сомнений |
|||
11
MrBen
26.09.23
✎
16:28
|
Кстати сначала пробовал
ЭтаФорма.ТолькоПросмотр = Истина Но нужно дать доступ к одному реквизиту чтоб можно было убрать этот ТолькоПросмотр, Не получилось вот решил перебрать все элементы кроме нужного |
|||
12
azernot
26.09.23
✎
16:30
|
(10) А чем не устраивает ТолькоПросмотр ?
Зачем обходить все элементы? |
|||
13
MrBen
26.09.23
✎
16:31
|
(12) чекбокс отлючить только просмотр недоступен на форме :)
|
|||
14
azernot
26.09.23
✎
16:34
|
Процедура УстановитьТолькоПросмотрРекурсивно(ЭлементыФормы, ИсключаемыеЭлементы = Неопределено)
Для Каждого Элемент Из ЭлементыФормы Цикл Если ЗначениеЗаполнено(ИсключаемыеЭлементы) И ИсключаемыеЭлементы.Найти(Элемент.Имя) <> Неопределено Тогда Продолжить; КонецЕсли; УстановитьТолькоПросмотрЭлементаФормы(Элемент); ЭтоГруппа = ТипЗнч(Элемент) = Тип("ГруппаФормы"); Если ЭтоГруппа Тогда УстановитьТолькоПросмотрРекурсивно(Элемент.ПодчиненныеЭлементы, ИсключаемыеЭлементы); КонецЕсли; КонецЦикла; КонецПроцедуры Процедура УстановитьТолькоПросмотрЭлементаФормы(Элемент, ИсключаемыеЭлементы = Неопределено) НеНужноИзменять = ТипЗнч(Элемент) = Тип("ДекорацияФормы") ИЛИ ТипЗнч(Элемент) = Тип("ГруппаФормы") ИЛИ ТипЗнч(Элемент) = Тип("ДополнениеЭлементаФормы"); Если НеНужноИзменять Тогда Возврат; КонецЕсли; Если ЗначениеЗаполнено(ИсключаемыеЭлементы) И (ИсключаемыеЭлементы.Найти(Элемент.Имя) <> Неопределено ИЛИ ТипЗнч(Элемент.Родитель) <> Тип("ФормаКлиентскогоПриложения") И ИсключаемыеЭлементы.Найти(Элемент.Родитель.Имя) <> Неопределено) Тогда Возврат; КонецЕсли; УстановитьТолькоПросмотр = НЕ (ТипЗнч(Элемент) = Тип("КнопкаФормы")); Попытка Если УстановитьТолькоПросмотр Тогда Элемент.ТолькоПросмотр = Истина; Иначе Элемент.Доступность = Ложь; КонецЕсли; Исключение ИОШ = ИнформацияОбОшибке(); КонецПопытки; КонецПроцедуры |
|||
15
MrBen
26.09.23
✎
16:34
|
(11) Точнее процедура все либо / либо сделает. А если Админ тогда нужные реквизит разблокирует.
|
|||
16
MrBen
26.09.23
✎
16:44
|
(14) Слишком круто. Так не нужно. ИТОГ:
&НаКлиенте Процедура УстановитьДоступностьЭлементовФормы(ЗначениеДоступности) Для Каждого ЭлементФормы Из Элементы Цикл НеНужноИзменять = (ТипЗнч(ЭлементФормы) = Тип("ДекорацияФормы")) ИЛИ (ТипЗнч(ЭлементФормы) = Тип("ГруппаФормы")) ИЛИ (ТипЗнч(ЭлементФормы) = Тип("ДополнениеЭлементаФормы")); Если НЕ НеНужноИзменять Тогда ЭлементФормы.Доступность = ЗначениеДоступности КонецЕсли КонецЦикла КонецПроцедуры; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |