Обновление конфигураций, построенных на базе Библиотеки стандартных подсистем (БСП), — это не просто процесс загрузки нового cf-файла. Одним из самых критичных и часто упускаемых моментов является актуализация прав доступа. Часто после успешного (на первый взгляд) обновления пользователи начинают жаловаться на ошибки доступа или отсутствие новых функций. Разберем детально, как работает этот механизм, кто должен за него отвечать и какие технические шаги необходимо предпринять.
Для начала проанализируем, как БСП управляет правами. В системе разделяются два типа профилей групп доступа:
Рассмотрим важный технический момент: автоматическое обновление прав происходит только для поставляемых профилей. При запуске обработчиков обновления БСП сверяет текущий состав ролей в базе с тем, что описано в коде конфигурации. Если разработчик добавил в типовую роль новые объекты или включил новую роль в поставляемый профиль, система программно обновит соответствующий элемент справочника ПрофилиГруппДоступа.
Выясним, где именно в коде это определяется. Например, в «1С:Документооборот» или других современных решениях за это отвечает переопределяемый модуль. Рассмотрим пример функции, которая наполняет состав профилей:
Процедура ПриЗаполненииПоставляемыхПрофилейГруппДоступа(ОписаниеПрофилей) Экспорт
Профиль = ОписаниеПрофилей.Добавить();
Профиль.Имя = "ОтветственныйЗаДела";
Профиль.Идентификатор = "70897669-e093-11e2-886d-005056c00008";
Профиль.Наименование = НСтр("ru = 'Ответственный за дела'");
Профиль.Роли.Добавить("ДобавлениеИзменениеДел");
Профиль.Роли.Добавить("ЧтениеДел");
КонецПроцедуры
Если в новом релизе в этот список добавится новая роль, БСП «увидит» это и обновит профиль в справочнике автоматически при выполнении обработчиков обновления.
Проанализируем ситуацию, когда профили были созданы вручную. БСП сознательно не трогает такие профили при обновлении. Это логично: если внедренец или администратор создал специфический набор прав, автоматическое добавление новых ролей может нарушить политику безопасности предприятия.
Однако именно здесь кроется ловушка. После обновления в конфигурации могут появиться новые объекты (регистры, справочники), без доступа к которым старые функции перестанут работать (например, если новый регистр используется в подписке на событие при записи документа). В этом случае у пользователя со старым «ручным» профилем возникнет ошибка «Нарушение прав доступа».
Вопрос ответственности — «политический», но в профессиональной среде выработан определенный стандарт. Посмотрим на процесс обновления как на комплексную задачу «под ключ»:
db-copy.Профессиональный «обновлятор» не просто «накатывает» файл, а сдает работоспособную систему. Если после обновления типовой функционал не работает у пользователей, задача считается невыполненной. Однако, если в системе сотни кастомных профилей, их актуализация должна оговариваться как отдельный объем работ, так как это требует аналитического сопоставления новых ролей и бизнес-логики предприятия.
Если вы обнаружили, что типовые профили по какой-то причине не синхронизировались с кодом, в БСП предусмотрен механизм ручного обновления из поставляемых настроек. Разберем по шагам, как это сделать:
Профили групп доступа.Важно: Помните, что эта операция сбросит все ручные изменения в этом профиле, если они были внесены ранее. Он станет в точности таким, каким его задумал вендор (1С).
Часто ошибки прав после обновления связаны не с составом ролей, а с обновлением вспомогательных данных RLS (Access Control List на уровне записей). БСП использует специальные регистры для ускорения проверки прав. После обновления конфигурации запускается фоновое задание по пересчету этих данных.
Рассмотрим ситуацию: вы обновили базу, зашли под пользователем, и видите ошибку доступа. Но через час ошибка исчезает сама собой. Это означает, что отработало регламентное задание ОбновлениеДоступаНаУровнеЗаписей. Чтобы не ждать, администратор может форсировать этот процесс через панель «Обслуживание».
Чтобы минимизировать риски, рекомендуем следовать следующему чек-листу:
Обработчики обновления. Убедитесь, что все процедуры, связанные с подсистемой УправлениеДоступом, завершены успешно (статус «Выполнено»).v8upd.htm), проверьте основные профили через отчет «Анализ прав доступа».ТаблицыГруппДоступа — если он пуст для новых объектов, права работать не будут.Подведем итог: актуализация прав — это неотъемлемая часть процесса обновления. Специалист должен как минимум обеспечить выполнение всех автоматических процедур БСП и уведомить заказчика о необходимости ручной правки кастомных профилей, если типовые механизмы их не затрагивают.