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