• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Перебрать элементы формы документа

  • Автор темы VoodyGoo
  • Дата начала
V

VoodyGoo

Есть такая необходимость при открытии формы документа (Любого) получить все её элементы. (Для того что бы назначить им доступность = 0, для кнопок, для всех остальных элементов подходит Форма.ТолькоПросмотр(1)).
Перебор элементов должен осуществляться в процедуре глобального модуля, в параметры которой я передаю форму открываемого документа.
 
S

SeverBap

Да очень интересная идея (наверно решил запретить редактирование документа???!!!! :rolleyes: ), Скорей всего у тебя ничего не получится (если конечно сам в параметре не будешь передавать элементы деалога для изменения доступности - что вообще противоречит всему, так как можно это сделать и в самом модуле формы документа!!!)...

Почему же ты решил так сделать???? Может быть ты поставишь проверку на запись и на перепроведение документа??? или еще что-то???

Ну а если ты конечно еще и пользователями начнешь ковырятся что кому позволено то тебе скорей всего понадобится: Администирование(alfa-версия); посматри подумай может что-то и понадобится, а так перебора элементов диалога формы ты не найдешь!!! :(

Да вот еще что: если тебе не лень можно подгрузить внешнюю компаненту FormEX и обойти все атрибуты формы;
Пример:
Код:
ФормаРасш = СоздатьОбъект("РасширениеФормы"); 
ФормаРасш.УстановитьФорму(Форма);
Для Сч=0 По ФормаРасш.КоличествоАтрибутов() - 1 Цикл
ФормаРасш.ПолучитьАтрибут(Сч).Доступность(0);
КонецЦикла;

Незнаю сам таким не пользовался!!!
:blink:
 
V

VoodyGoo

Наверно и правда не получится найти, никаких зацепок пока не было. Надо это, действительно для запрета редактирования.
Дело в том, что это все должно делаться желательно в одной процедуре документа (при открытии), т.к. эта процедура будет присутствовать в каждом документе (точнее вызываться, а находится она в глобальном модуле).

Суть всего этого дела в следующем:

в режиме Предприятие в обработке ГлБух выбирает пользователей, виды документов, для которых хочет наложить какие либо ограничения, ну конечно виды ограничений (только просмотр или вообще запрет) и период действия этого ограничения.

Все в общем то получилось, но вот с кнопками никак не выходит. Если обрабатывать всевозможные варианты для каждого документа, тогда кода прибавится много много, а мне кажется что это не очень то хорошо
 
S

SeverBap

Тогда тебе примяком в Администирование(alfa-версия)
Пиши могу выслать может посмотришь и поймешь!!!!

Спасибо тебе за интересные вопросы!!! :rolleyes:
 
V

VoodyGoo

Bap, спасибо тебе огромное! Получилось

Вот код, может пригодится

Код:
ФормаРасш = СоздатьОбъект("РасширениеФормы"); 
ФормаРасш.УстановитьФорму(Конт.Форма);
р = ФормаРасш.НайтиАтрибут(1,3);
Пока р = 1 Цикл
ФормаРасш.ТекущийАтрибут().Доступность = 0;
р = ФормаРасш.ПолучитьСледующийАтрибут();
КонецЦикла;
 
S

SeverBap

:( всегда рад, когда кто-то в чем-то разобрался!!!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!