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