Такого добра в инете очень много, но все как то сложно и мудрено. Решил написать свою.
За основу взял разработку "Irzik" с одного из сайтов любителей 1С. За это ему большое спасибо. Использованы так же идеи других пользователей, заранее приношу им свои извинения, что не смог их отметить, просто не помню у кого подглядывал. Обращайтесь, подправлю. Программа написана на скорую руку, много мусора, на днях все лишнее выкину. Это моя первая раздача, так что не обессудьте.
Используется компонента compound.dll.
Внимание, обработка меняет в ert файлах программный код. Не опытным пользователям, предварительно посоветоваться с программистом.
Для работы требуется зарегестрировать компоненту compound.dll (берем отсюда). Она есть в архиве с обработкой.
Теперь к самой программе: программа загружается только под пользователем «администратор»(желающие меняют под себя). При запуске загружается список файлов из каталога «КаталогИБ()ExtForms*.ert» (т.е. выводит весь список ert файлов находящихся в папке ExtForms) и список всех пользователей. Становимся на пользователя , ставим галочки возле нужного отчета и жмем «Поменять доступ». И так с каждым пользователем. Поле «С» показывает, есть доступ на данного пользователя или нет. Если стоит «#», значит доступ на данный отчет у пользователя есть.
Изменения вступят в силу только после нажатия кнопки «ПРИМЕНИТЬ ПРАВА «. Внимание!!! После нажатия кнопки «Изменить права» меняется программный код ert файлов отмеченные в поле «ИЗМ» следующим символом — «*» !
Для программистов: схема следующая, берем ert файл, рапаковываем , сгружаем «Main Metadata Stream» в текст, добовляем/удаляем в конец текста (программного кода) наш кусочик программы и опять запаковываем. По сути, мы просто добавили в конце нашего ert файла следующий программный код:
//НачалоДоступаКОбъекту
User =ИмяПользователя()+«;»;
СписокПолДляОбработки=«АдминистраторСД;Администратор;»;
Если Найти(Врег(СписокПолДляОбработки),Врег(User))=0 тогда
Предупреждение(«У вас нет доступа!»,10);
Форма.Закрыть();
КонецЕсли;
//КонецДоступаКОбьекту
доступы в целом или индивидуально на каждый внешний отчет? если в целом, тогда можно и через конфигуратор решить проблему
(0) Ну что так сложно … «Без изменения конфигурации» — не самоцель. Да еще и внешние отчеты. Они потому и внешние, что мимо конфигурации.
Управление внешними отчетами
Все равно придется где-то править …
(1) TrinitronOTV,
Доступ ставиться на каждый внешний отчет отдельно.
(2) kompas-dm, это не самоцель, а конкретное решение поставленной задачи. Мне сказали, я сделал. Когда запрещают даже админский набор прав трогать, волей неволей приходиться извращаться — это мой вариант решения, если есть идеи с большим удовольствием выслушаю.
Доступ ставиться на каждый внешний отчет отдельно.
спасибо за ответ на мой вопрос, плюсану
Всегда рад. Как никак , первая раздача. Если все нормально, еще несколько проектов выложу.Может кому и пригодиться.
Всегда рад. Как никак , первая раздача. Если все нормально, еще несколько проектов выложу.Может кому и пригодиться.
выкладывай, всегда найдутся те, кому твой труд пригодиться в своей деятельности
попробуем, спасибо
Спасибо, пригодилось.