Как в 1С выдать права на общую форму всем пользователям базы?

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

Часто в практике разработчика 1С возникает задача: показать какое-либо сообщение или поздравительную открытку при старте системы абсолютно всем сотрудникам. Разберем ситуацию, с которой можно столкнуться в сложных конфигурациях, таких как 1С:ERP. Допустим, мы создали общую форму с открыткой и планируем открывать ее в событии ПриНачалеРаботыСистемы. В базе работает около 200 пользователей, и встает закономерный вопрос: как проще всего дать им всем права на просмотр этой общей формы или формы обработки? В современных типовых конфигурациях найти одну "базовую" роль, которая жестко назначена всем-всем-всем в конфигураторе, бывает непросто. Проанализируем несколько удобных способов решения этой задачи. Для быстрого определения ролей и профилей, которые уже содержат доступ к нужному объекту, можно использовать отчет для поиска прав доступа пользователей к объектам метаданных.

Способ 1. Использование расширения и профилей групп доступа

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

  1. Создадим новое расширение конфигурации и добавим в него нашу поздравительную форму.
  2. В этом же расширении создадим новую роль, в которой дадим права на просмотр и открытие созданной формы.
  3. Далее перейдем в пользовательский режим (режим 1С:Предприятие).
  4. Создадим новый Профиль групп доступа и включим в него нашу новую роль из расширения.
  5. Назначим этот профиль всем пользователям (или нужной группе пользователей).

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

Способ 2. Свойство расширения "Использовать основные роли для всех пользователей"

Разберем более продвинутый и автоматизированный вариант работы с расширениями, который стал доступен начиная с версии платформы 8.3.14. Платформа предоставляет нам отличный механизм для массовой раздачи прав из расширений.

Что мы делаем:

  1. Создаем общую форму и роль с правами на нее внутри расширения.
  2. В свойствах самого расширения находим поле Основные роли и указываем нашу новую роль.
  3. Устанавливаем флаг ИспользоватьОсновныеРолиДляВсехПользователей.

В этом случае платформа сама применит данные права ко всем пользователям конфигурации. Нам больше не нужно идти в режим Предприятия и возиться с профилями групп доступа.

Способ 3. Заимствование существующих базовых ролей БСП

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

К таким ролям относятся, например, БазовыеПрава или БазовыеПраваБСП. У всех активных пользователей эти права есть по умолчанию. Мы можем просто заимствовать одну из таких ролей в наше расширение и добавить в нее право на просмотр нашей поздравительной общей формы. Таким образом, форма автоматически станет доступна всем пользователям, которые могут войти в систему.

Способ 4. Использование внешней обработки и справочника БСП

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

  1. Создаем внешнюю обработку с нужной формой.
  2. Регистрируем ее в штатном справочнике БСП Дополнительные отчеты и обработки.
  3. Функционал этого справочника позволяет настроить Быстрый доступ к обработке. Мы можем в несколько кликов выбрать всех пользователей или все группы пользователей базы.

При таком подходе система сама заботится о выдаче нужных разрешений на запуск внешней обработки для выбранных пользователей.

Способ 5. Альтернативные варианты без создания тяжелых форм

Выясним причину: а зачем нам вообще отдельная форма? Если задача — просто поздравить сотрудников или вывести уведомление, мы можем обойтись без создания объектов метаданных, а значит, и без настройки прав на них.

Вариант А: Использование метода ПоказатьОповещениеПользователя

Мы можем вывести всплывающее окошко в углу экрана. В него передается текст поздравления и картинка. Метод выполняется программно на клиенте и не требует настройки ролей:


ТекстПоздравления = "С Новым Годом, уважаемые коллеги!";
КартинкаОповещения = БиблиотекаКартинок.НовогодняяЕлка; // пример вашей картинки
ПоказатьОповещениеПользователя("Поздравление", , ТекстПоздравления, КартинкаОповещения);

Вариант Б: Типовой механизм "Информация при запуске"

В современных конфигурациях 1С присутствует встроенный инструмент показа рекламных или информационных окон при входе в программу (обычно мы видим там списки изменений после обновления). Администратор системы может просто загрузить туда свою картинку или HTML-документ со своим текстом. Это делается исключительно штатными средствами в режиме пользователя и полностью снимает необходимость программировать роли, расширения или менять конфигурацию.

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

← На главную