На Инфостарте в свое время был опубликован вариант решения //infostart.ru/public/247875/
Однако вариант трудоемкий и обусловлен невозможностью редактирования конфигурации.
В том случае, когда включена возможность редактирования конфигурации, гораздо проще решить проблему с помощью RLS
В предлагаемом решении необходимо добавить в конфигурацию два объекта: регистр сведений и набор прав для которых назначен шаблон ограничений.
Из прилагаемого файла конфигурации (cf) можно взять готовый набор прав с шаблоном и регистр сведений.
Структура регистра сведений
Измерения
- Пользователь (СправочникСсылка.Пользователи, СправочникСсылка.ГруппыПользователей)
- Обработка (СправочникСсылка.ВнешниеОбработки)
Ресурсы
- Чтение (Булево)
Шаблон ограничений
Устанавливается для права на Чтение в наборе прав Пользователь для объекта Справочники.ВнешниеОбработки
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
ГДЕ
ТекущаяТаблица.ВидОбработки = ЗНАЧЕНИЕ(Перечисление.ВидыДополнительныхВнешнихОбработок.ПечатнаяФорма)
ИЛИ
ТекущаяТаблица.ЭтоГруппа = ИСТИНА
ИЛИ
ТекущаяТаблица.Ссылка В
(
ВЫБРАТЬ ПЕРВЫЕ 1
ПраваДоступаПользователейКОбъектам.Обработка
ИЗ
РегистрСведений.А_ВнешниеОбработкиПраваДоступа КАК ПраваДоступаПользователейКОбъектам
ГДЕ
ПраваДоступаПользователейКОбъектам.Обработка = ТекущаяТаблица.Ссылка
И
ПраваДоступаПользователейКОбъектам.Чтение = ИСТИНА
И
ПраваДоступаПользователейКОбъектам.Пользователь В
(ВЫБРАТЬ
ПользователиГруппы.Ссылка КАК Ссылка
ИЗ
Справочник.ГруппыПользователей.ПользователиГруппы КАК ПользователиГруппы
ГДЕ
ПользователиГруппы.Пользователь = &ТекущийПользователь
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
&ТекущийПользователь))
Назначение прав
После сохранения конфигурации необходимо для всех пользователей установить вновь добавленную роль.
Далее, зайдя под полными правами назначаем доступ пользователям.
.
Редактирование возможно как из справочника Внешние обработки, так и из справочника Пользователи или Группы пользователей