1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

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

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

  1. VoodyGoo

    VoodyGoo Гость

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

    SeverBap Well-Known Member

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

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

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

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

    VoodyGoo Гость

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

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

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

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

    SeverBap Well-Known Member

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

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

    VoodyGoo Гость

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

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

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

    SeverBap Well-Known Member

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

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