При сопровождении типовых конфигураций на платформе 1С:Предприятие 8.3 (таких как 1С:Управление торговлей 11, 1С:ERP или 1С:Комплексная автоматизация) часто возникает необходимость добавить собственную подсистему и ограничить к ней доступ для определенных групп пользователей. При этом критически важно сохранить конфигурацию на поддержке поставщика, чтобы не усложнять последующие типовые обновления.
Разберем по шагам, как правильно добавить новые объекты и роли, почему после назначения прав новая подсистема может не отображаться в интерфейсе и как заставить механизмы Библиотеки стандартных подсистем (БСП) корректно обработать добавленные права доступа.
Рассмотрим два основных архитектурных подхода к добавлению новых метаданных в типовую базу:
Практический совет: для всех создаваемых объектов (подсистем, ролей, документов, регистров) обязательно используйте индивидуальный префикс организации (например, бит_ или мп_). Это исключит конфликты имен при последующих обновлениях типовой конфигурации от 1С.
Проанализируем структуру прав, необходимых для корректного отображения раздела в интерфейсе «1С:Предприятие»:
Просмотр на созданную подсистему.Чтение, Просмотр) хотя бы на один объект метаданных внутри подсистемы.Использовать стандартные команды или добавлены собственные команды, отображаемые в интерфейсе.В конфигурациях линейки УТ 11, ERP и КА права пользователей назначаются не напрямую в списке пользователей базы данных, а через справочники Профили групп доступа и Группы доступа. БСП ведет собственный учет ролей и метаданных в служебных справочниках. Если просто создать роль в конфигураторе, программа не увидит ее в режиме предприятия до момента синхронизации метаданных.
Разберем, как принудительно обновить идентификаторы метаданных:
Если роль и подсистема добавлены непосредственно в основную конфигурацию, выполним в обработке или через консоль кода следующий метод:
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника(Ложь, Ложь);
Если разработка выполнена через механизм расширений конфигурации, метаданные регистрируются в отдельном служебном справочнике. Вызовем команду:
Справочники.ИдентификаторыОбъектовРасширений.ОбновитьДанныеСправочника(Истина);
Также инициировать полное фоновое обновление всех служебных структур БСП можно запуском информационной базы в режиме «1С:Предприятие» со специальным ключом командной строки:
1cv8c.exe ENTERPRISE /F "ПутьКБазе" /C ЗапуститьОбновлениеИнформационнойБазы
После регистрации роли в справочнике идентификаторов добавим ее в нужный профиль групп доступа. Однако может возникнуть ситуация, когда роль добавлена в профиль, но у связанных с ним пользователей в конфигураторе право так и не появилось. Это происходит из-за того, что БСП кэширует параметры работы пользователей.
Выполним процедуру пересчета прав доступа:
ПользователиСлужебный.ОбновитьПараметрыРаботыПользователей(Истина);
После вызова данного метода проделаем следующее в режиме «1С:Предприятие»:
Если роль назначена и отображается у пользователя в конфигураторе, но сам раздел в интерфейсе так и не появился, проанализируем возможные причины:
Главное меню — Вид — Настройка панели разделов и нажмем кнопку Установить стандартные настройки (либо очистим персональные настройки через Администрирование — Настройки пользователей и прав — Очистка настроек).Открыть командный интерфейс конфигурации и проверим, установлена ли видимость для новой подсистемы и требуемой роли.Ложь), платформа полностью скроет связанные разделы из интерфейса.