На одном проекте возникла задача по ограничению доступа пользователей на редактирование ключевых реквизитов справочников (например, направление деятельности в договоре, и т.д.). Тех самых реквизитов, которые вроде как не нужно править, но по кнопке "Еще - разрешить редактирование реквизитов", можно править всем кому надо. Кто исправлял разъехавшиеся взаиморасчеты с ГОЗ-поставщиками, когда на момент оплаты в договоре не стоял заказ, а потом при поступлении заказ проставили, но "удивительно, почему аванс не зачитывается, не умеет ваша 1с работать", тот поймет, зачем такое ограничение прав нужно.
Как оказалось, за видимость этой команды в форме справочника отвечает роль "РедактированиеРеквизитовОбъектов". По идее убрал эту роль - и все. Но на проекте использовались типовые профили доступа пользователей, и отдельно добавлены профили на недостающие объекты, типа "Бухгалтер" - типовой, и "Бухгалтер - дополнение для Заказчика" - настроенный с нуля профиль, в котором только роли на новые доработанные объекты. Соответственно, нужно делать копированием третий профиль "Бухгалтер без лишних прав", и из него удалять эту роль на редактирование реквизитов объектов. Кратковременно это бы помогло, но потом при следующих обновлениях нужно не забыть актуализировать этот третий профиль, так себе удовольствие.
Поиском по тексту найдено, где эта роль упоминается. В общем модуле "УправлениеДоступомУТ" в процедуре "ДополнитьПрофильОбязательнымиРолями" эта роль добавляется в предопределенные профили доступа. Делаем расширение, в котором с аннотацией "изменение и контроль" из этой процедуры удаляем кусок, где добавляется эта роль.
#Удаление
// Редактирование реквизитов объектов
ОписаниеПрофиля.Роли.Добавить("РедактированиеРеквизитовОбъектов");
#КонецУдаления
Запускаем обработку из инструментов обработчика по обновлению предопределенных профилей. Если не запустить - то волшебство случится только при следующем обновлении конфигурации поставщика, до запуска "Обновление вспомогательных данных" в типовых профилях ничего не поменяется конечно же.
Где взять: скачиваем конфигурацию "Библиотека стандартных подсистем", разворачиваем, и там в каталоге шаблонов оно есть, у меня это "E:\tmplts1c\1c\SSL\3_1_7_526\ExtFiles\Инструменты разработчика\ОбновлениеВспомогательныхДанных.epf" .
Качать нужно ту версию БСП, что используется в конфигурации (как посмотреть версию: Все функции - Регистры сведений - Версии подсистем, и там будет строка СтандартныеПодсистемы, какая там версия - то же и нужно качать с releases.1c.ru)
Ну и в дополнение создаем новый профиль, который назовем "Разрешить редактирование реквизитов справочников (по кнопке "Еще")". И назначаем его тем пользователям, кому доверяем)
Использовалась конфигурация 1С:Комплексная автоматизация 2.5.12.135. Должно работать и в ERP, и в УТ похожего релиза. В принципе в статье написано, что нужно сделать, если кому лень - то во вложении расширение, в котором добавлено удаление кода по добавлению этой роли в предопределенные профили.