Актуализация групп доступа и профилей после обновления конфигурации на БСП

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Обновление конфигураций, построенных на базе Библиотеки стандартных подсистем (БСП), — это не просто процесс загрузки нового cf-файла. Одним из самых критичных и часто упускаемых моментов является актуализация прав доступа. Часто после успешного (на первый взгляд) обновления пользователи начинают жаловаться на ошибки доступа или отсутствие новых функций. Разберем детально, как работает этот механизм, кто должен за него отвечать и какие технические шаги необходимо предпринять.

Механизм работы профилей групп доступа в БСП

Для начала проанализируем, как БСП управляет правами. В системе разделяются два типа профилей групп доступа:

  1. Поставляемые профили: Это профили, описание которых «зашито» разработчиком непосредственно в программном коде. Они являются эталонными для данной версии конфигурации.
  2. Пользовательские профили: Профили, созданные администраторами в режиме «1С:Предприятие» (путем копирования поставляемых или создания с нуля).

Рассмотрим важный технический момент: автоматическое обновление прав происходит только для поставляемых профилей. При запуске обработчиков обновления БСП сверяет текущий состав ролей в базе с тем, что описано в коде конфигурации. Если разработчик добавил в типовую роль новые объекты или включил новую роль в поставляемый профиль, система программно обновит соответствующий элемент справочника ПрофилиГруппДоступа.

Выясним, где именно в коде это определяется. Например, в «1С:Документооборот» или других современных решениях за это отвечает переопределяемый модуль. Рассмотрим пример функции, которая наполняет состав профилей:


Процедура ПриЗаполненииПоставляемыхПрофилейГруппДоступа(ОписаниеПрофилей) Экспорт
    
    Профиль = ОписаниеПрофилей.Добавить();
    Профиль.Имя = "ОтветственныйЗаДела";
    Профиль.Идентификатор = "70897669-e093-11e2-886d-005056c00008";
    Профиль.Наименование = НСтр("ru = 'Ответственный за дела'");
    Профиль.Роли.Добавить("ДобавлениеИзменениеДел");
    Профиль.Роли.Добавить("ЧтениеДел");
    
КонецПроцедуры

Если в новом релизе в этот список добавится новая роль, БСП «увидит» это и обновит профиль в справочнике автоматически при выполнении обработчиков обновления.

Почему возникают проблемы с «ручными» профилями

Проанализируем ситуацию, когда профили были созданы вручную. БСП сознательно не трогает такие профили при обновлении. Это логично: если внедренец или администратор создал специфический набор прав, автоматическое добавление новых ролей может нарушить политику безопасности предприятия.

Однако именно здесь кроется ловушка. После обновления в конфигурации могут появиться новые объекты (регистры, справочники), без доступа к которым старые функции перестанут работать (например, если новый регистр используется в подписке на событие при записи документа). В этом случае у пользователя со старым «ручным» профилем возникнет ошибка «Нарушение прав доступа».

Стандарт работы специалиста по обновлению («Обновлятора»)

Вопрос ответственности — «политический», но в профессиональной среде выработан определенный стандарт. Посмотрим на процесс обновления как на комплексную задачу «под ключ»:

  1. Техническая стадия: Сравнение и объединение конфигураций, сохранение db-copy.
  2. Стадия применения: Запуск системы под пользователем с правами администратора. На этом этапе запускаются обработчики обновления. Очень важно дождаться их завершения. Посмотреть статус можно в разделе «Обслуживание» — «Результаты обновления программы».
  3. Актуализация прав: Если в системе используются типовые профили, нужно убедиться, что они обновились. Если используются нетиповые — необходимо провести их ручную актуализацию.

Профессиональный «обновлятор» не просто «накатывает» файл, а сдает работоспособную систему. Если после обновления типовой функционал не работает у пользователей, задача считается невыполненной. Однако, если в системе сотни кастомных профилей, их актуализация должна оговариваться как отдельный объем работ, так как это требует аналитического сопоставления новых ролей и бизнес-логики предприятия.

Как принудительно обновить профили

Если вы обнаружили, что типовые профили по какой-то причине не синхронизировались с кодом, в БСП предусмотрен механизм ручного обновления из поставляемых настроек. Разберем по шагам, как это сделать:

  1. Зайдем в справочник Профили групп доступа.
  2. Найдем профиль, который ведет себя некорректно.
  3. Воспользуемся кнопкой «Восстановить поставляемые настройки» (или аналогичной «Обновить из поставляемых настроек» в зависимости от версии БСП).

Важно: Помните, что эта операция сбросит все ручные изменения в этом профиле, если они были внесены ранее. Он станет в точности таким, каким его задумал вендор (1С).

Влияние фоновых заданий и RLS

Часто ошибки прав после обновления связаны не с составом ролей, а с обновлением вспомогательных данных RLS (Access Control List на уровне записей). БСП использует специальные регистры для ускорения проверки прав. После обновления конфигурации запускается фоновое задание по пересчету этих данных.

Рассмотрим ситуацию: вы обновили базу, зашли под пользователем, и видите ошибку доступа. Но через час ошибка исчезает сама собой. Это означает, что отработало регламентное задание ОбновлениеДоступаНаУровнеЗаписей. Чтобы не ждать, администратор может форсировать этот процесс через панель «Обслуживание».

Рекомендации для проверки после обновления

Чтобы минимизировать риски, рекомендуем следовать следующему чек-листу:

Подведем итог: актуализация прав — это неотъемлемая часть процесса обновления. Специалист должен как минимум обеспечить выполнение всех автоматических процедур БСП и уведомить заказчика о необходимости ручной правки кастомных профилей, если типовые механизмы их не затрагивают.

← На главную