Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 00:44

Сложное разграничение доступа к документу!

Автор |R|U|D|E|N, 05 мая 2011, 11:31

0 Пользователей и 2 гостей просматривают эту тему.

|R|U|D|E|N

Когда указываю ТолькоПросмотр для конкретных элементов то все работает ок. Но хочется обойти все это в цикле?

|R|U|D|E|N

Все, решил свою проблемму:

Для Каждого Элемент из ЭтаФорма.Элементы Цикл
   Попытка
   Элемент.ТолькоПросмотр = Истина;
   Исключение
   Прервать
   КонецПопытки;
КонецЦикла;

|R|U|D|E|N

Почему лишний? Ведь нужно возврощаться в начало цикла? или он и так возврощается?

|R|U|D|E|N

Возник еще один вопрос!

Как в преведенном выше цикле определить что Элемент является ГруппойФормы а не ПолемФормы? Не могу не где найти как это проверить...

Мне нужно, чтоб ТолькоПросмотр получили именно ПоляФормы а не группы. Иначе абсолютна все что в группах становится ТолькоПросмотр.

zkolenko

&НаКлиенте
Процедура ПриОткрытии(Отказ)
   Для каждого Элемент Из Элементы Цикл
      Если ТипЗнч(Элемент) = Тип("ТаблицаФормы") ИЛИ ТипЗнч(Элемент) = Тип("ПолеФормы") Тогда
         Элемент.ТолькоПросмотр = Истина;
      ИначеЕсли   ТипЗнч(Элемент) = Тип("КнопкаФормы") Тогда
         Элемент.Доступность = Ложь;
      КонецЕсли;
   КонецЦикла;
   
КонецПроцедуры


Можно перебирая элементы в цикле проверять их тип и если это поле или таблица тогда запрет редактирования, если кнопка тогда доступность = ложь.

А если например нужно оставить чтобы какая то галочка была доступна тогда делаем так:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
   Для каждого Элемент Из Элементы Цикл
        Если Элемент.Имя = "НазваниеРеквизитаСГалочкой" Тогда
            продолжить;
        конецесли;
      Если ТипЗнч(Элемент) = Тип("ТаблицаФормы") ИЛИ ТипЗнч(Элемент) = Тип("ПолеФормы") Тогда
         Элемент.ТолькоПросмотр = Истина;
      ИначеЕсли   ТипЗнч(Элемент) = Тип("КнопкаФормы") Тогда
         Элемент.Доступность = Ложь;
      КонецЕсли;
   КонецЦикла;
   
КонецПроцедуры

И так в цикл по условию можно подобавлять те реквизиты, которые трогать не надо или сделать с определенными реквизитами что захотите а остальные реквизиты по общему условию цикла.

zkolenko

ТипЗнч(Элемент) = Тип("ГруппаФормы")

|R|U|D|E|N

Спасибо zkolenko! То что надо

sergejK74, конечно Продолжить), извиняюсь, это я намарозил...

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск