Доступы на внешние отчеты без изменения конфигурации

Администрирование - Защита, права, пароли

Возникла проблема установки прав доступа на внешние отчеты без изменения конфигурации. Т.е. конфигурацию вообще нельзя было трогать.
Такого добра в инете очень много, но все как то сложно и мудрено. Решил написать свою.
За основу взял разработку "Irzik" с одного из сайтов любителей 1С. За это ему большое спасибо. Использованы так же идеи других пользователей, заранее приношу им свои извинения, что не смог их отметить, просто не помню у кого подглядывал. Обращайтесь, подправлю.  Программа написана на скорую руку, много мусора, на днях все лишнее выкину. Это моя первая раздача, так что не обессудьте.
Используется компонента compound.dll.

Внимание, обработка меняет в ert файлах программный код. Не опытным пользователям, предварительно посоветоваться с программистом.

Для работы требуется зарегестрировать компоненту compound.dll (берем отсюда). Она есть в архиве с обработкой. 

Теперь к самой программе: программа загружается только под пользователем "администратор"(желающие меняют под себя).  При запуске загружается список файлов из каталога  "КаталогИБ()\ExtForms\*.ert" (т.е. выводит весь список ert файлов находящихся в папке ExtForms) и список всех пользователей. Становимся на пользователя , ставим галочки возле нужного отчета и жмем "Поменять доступ". И так с каждым пользователем. Поле "С" показывает, есть доступ на данного пользователя или нет. Если стоит "#", значит доступ на данный отчет у пользователя есть.

Изменения вступят в силу только после нажатия кнопки "ПРИМЕНИТЬ ПРАВА ". Внимание!!! После нажатия кнопки "Изменить права" меняется программный код ert файлов отмеченные в поле "ИЗМ" следующим символом - "*" !

Для программистов: схема следующая, берем ert файл, рапаковываем , сгружаем "Main Metadata Stream" в текст, добовляем/удаляем в конец текста (программного кода) наш кусочик программы и опять запаковываем. По сути, мы просто добавили в конце нашего ert файла следующий программный код:

 

//НачалоДоступаКОбъекту

User =ИмяПользователя()+";";

СписокПолДляОбработки="АдминистраторСД;Администратор;";

Если 
Найти(Врег(СписокПолДляОбработки),Врег(User))=0 тогда

Предупреждение("У вас нет доступа!",10);

Форма.Закрыть();

КонецЕсли;

//КонецДоступаКОбьекту

 

 

 

Скачать файлы

Наименование Файл Версия Размер
Права доступа на внешние отчеты
.rar 49,61Kb
18.10.11
20
.rar 49,61Kb 20 Скачать

См. также

Комментарии
1. Александр Лыткин (TrinitronOTV) 18.10.11 17:18 Сейчас в теме
доступы в целом или индивидуально на каждый внешний отчет? если в целом, тогда можно и через конфигуратор решить проблему
2. Дмитрий Литовченко (kompas-dm) 749 18.10.11 17:21 Сейчас в теме
(0) Ну что так сложно ... "Без изменения конфигурации" - не самоцель. Да еще и внешние отчеты. Они потому и внешние, что мимо конфигурации.
Все равно придется где-то править ... Управление внешними отчетами
3. Yura Chem (YChemodanov) 12 19.10.11 10:00 Сейчас в теме
(1) TrinitronOTV,
Доступ ставиться на каждый внешний отчет отдельно.
4. Yura Chem (YChemodanov) 12 19.10.11 10:05 Сейчас в теме
(2) kompas-dm, это не самоцель, а конкретное решение поставленной задачи. Мне сказали, я сделал. Когда запрещают даже админский набор прав трогать, волей неволей приходиться извращаться - это мой вариант решения, если есть идеи с большим удовольствием выслушаю.
5. Александр Лыткин (TrinitronOTV) 19.10.11 14:21 Сейчас в теме
YChemodanov пишет:

(1) TrinitronOTV,
Доступ ставиться на каждый внешний отчет отдельно.

спасибо за ответ на мой вопрос, плюсану
6. Yura Chem (YChemodanov) 12 19.10.11 16:35 Сейчас в теме
Всегда рад. Как никак , первая раздача. Если все нормально, еще несколько проектов выложу.Может кому и пригодиться.
7. Александр Лыткин (TrinitronOTV) 19.10.11 17:08 Сейчас в теме
YChemodanov пишет:

Всегда рад. Как никак , первая раздача. Если все нормально, еще несколько проектов выложу.Может кому и пригодиться.

выкладывай, всегда найдутся те, кому твой труд пригодиться в своей деятельности
8. infostar81 21.10.11 19:41 Сейчас в теме
9. Aleks Aleks (Aleks_PV) 24.10.11 11:07 Сейчас в теме
Оставьте свое сообщение