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

Тема в разделе "1C и всё что с ней связано", создана пользователем VoodyGoo, 18 сен 2008.

  1. VoodyGoo

    VoodyGoo Гость

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

    SeverBap Well-Known Member

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

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

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

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

    VoodyGoo Гость

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

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

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

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

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    Тогда тебе примяком в Администирование(alfa-версия)
    Пиши могу выслать может посмотришь и поймешь!!!!

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

    VoodyGoo Гость

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

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

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

    SeverBap Well-Known Member

    Регистрация:
    18 сен 2007
    Сообщения:
    440
    Симпатии:
    0
    :( всегда рад, когда кто-то в чем-то разобрался!!!
     
Загрузка...

Поделиться этой страницей