Ограничение прав на запись справочников и документов без изменения типовых ролей

На примере конфигурации 1с Бухгалтерия 2.0 рассмотрим задачу: возможность записывать элементы справочников Контрагенты и ДоговорыКонтрагентов должна быть не у всех пользователей.
Что бы решить эту задачу можно изменить типовую роль Бухгалтер доступную всем пользователям, но тогда каждый раз при обновлении конфигурации вам придется добавлять изменения роли вручную, что не очень красиво и совсем не правильно.

Итак, решаем эту проблему не затрагивая типовые роли:
1. В конфигурации создаем новую роль. Назовем ее Контрагенты.
Роль Контрагенты
Права в ней проставлять не нужно.

2. Создаем новый общий модуль(если в вашей конфигурации уже есть не типовой модуль, то необязательно). Назовем его, например УправлениеДоступом.
Общий модуль УправлениеДоступом

3. Создаем новую подписку на событие, назовем ее ПередЗаписьюКонтрагентыУправлениеДоступом. В поле источник указываем, что хотим использовать составной тип данных, и выбираем справочники Контрагенты и ДоговорыКонтрагентов. В поле Событие выбираем ПередЗаписью. В поле Источник указываем созданный общий модуль. Там автоматически создастся процедура для обработки события.
Подписка на событие

В этой процедуре пишем:

Процедура ПередЗаписьюКонтрагентыУправлениеДоступомПередЗаписью(Источник, Отказ) Экспорт
	Если Не РольДоступна("Контрагенты") тогда
		Отказ = Истина;
	КонецЕсли;
КонецПроцедуры

4. Устанавливаем роль Контрагенты нужным пользователям, никто кроме них не сможет записать элементы справочников Контрагенты и ДоговорыКонтрагентов.

Все про 1C и автоматизацию бизнеса

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>