При работе с типовыми решениями 1С, такими как 1С:Бухгалтерия 3.0, часто возникает задача максимально упростить интерфейс для конкретного пользователя. Например, когда сотруднику для работы требуется всего одна подсистема и несколько видов документов, а всё остальное многообразие функций только отвлекает и создает риск случайного ввода данных в ненужные разделы. Рассмотрим подробно, как решить эту задачу, сохранив конфигурацию на поддержке и используя современные инструменты платформы 1С:Предприятие 8.3.
Прежде чем приступать к разработке расширений, проанализируем возможности, которые предоставляет «Библиотека стандартных подсистем» (БСП), на которой построена 1С:Бухгалтерия. В режиме «1С:Предприятие» существует мощный инструмент управления правами.
Разберем по шагам, как настроить права через профили:
ЗапускТонкогоКлиента или ЗапускУправляемогоПриложения. Также понадобятся базовые роли, такие как ЧтениеОбщихСправочников.ЗаказПокупателя) и увидеть, какие именно роли дают право на его просмотр, редактирование или проведение.Важный нюанс: в управляемом интерфейсе подсистемы (разделы панели разделов) отображаются только тогда, когда у пользователя есть права хотя бы на один объект, входящий в эту подсистему. Таким образом, грамотно настроив состав ролей, мы автоматически скроем лишние разделы интерфейса.
Если стандартных ролей недостаточно или они дают слишком широкие права, создадим собственную роль, не снимая основную конфигурацию с поддержки. Для этого воспользуемся механизмом расширений.
Рассмотрим процесс создания расширения:
Роль. Назовем ее, например, РаботаТолькоСПродажами.Чтение, Просмотр, Добавление, Изменение.После обновления расширения в режиме «1С:Предприятие» эта роль станет доступна для выбора в профилях групп доступа. Мы сможем назначить её пользователю вместе с минимальным набором базовых прав.
Бывает ситуация, когда права настроены верно, но интерфейс все равно перегружен общими командами или сервисными функциями. Выясним, как программно или визуально ограничить видимость элементов через расширение.
Проанализируем возможности управления интерфейсом подсистем. В расширение можно добавить нужные подсистемы (например, Покупки) и в редакторе командного интерфейса расширения снять флажки видимости для тех команд, которые не входят в наш список из 6 документов. Это самый чистый способ, так как он не затрагивает права доступа к данным, а лишь управляет их отображением.
Если же требуется более тонкая настройка, например, скрыть кнопку на форме документа, воспользуемся программным кодом в расширении. Добавим форму документа в расширение и создадим обработчик ПриСозданииНаСервере с типом вызова «После»:
&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// Проверяем, является ли пользователь тем самым "ограниченным" сотрудником
Если РольДоступна("Расш1_РольТолькоДляПродаж") Тогда
// Скрываем лишние элементы формы
Элементы.ГруппаСпецНастройки.Видимость = Ложь;
// Или отключаем видимость конкретных команд
Элементы.ФормаПечатьСертификата.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
Такой подход позволяет динамически изменять форму в зависимости от прав текущего пользователя, не создавая при этом дублей форм и не усложняя обновление основной конфигурации.
Посмотрим на ситуацию шире. Иногда видимость целых блоков в 1С:Бухгалтерии управляется через Функциональные опции. Если задача состоит в том, чтобы скрыть, например, функционал учета в валюте или розничных продаж для всех пользователей в данной базе, это делается простым снятием соответствующих галочек в разделе Главное — Функциональность.
Однако, если ограничения касаются только одного пользователя, этот метод не подходит. В этом случае лучше комбинировать Способ 1 (Профили) и Способ 3 (Расширение интерфейса).
Подводя итог, наиболее правильный алгоритм действий для настройки интерфейса «6 документов и 1 подсистема» выглядит так:
Командный интерфейс, отключая видимость ненужных команд для нашей новой роли.Помните, что cfe (файл расширения) — это не замена cf (файлу конфигурации). Вы не загружаете конфигурацию в расширение, а лишь указываете расширению, какие объекты основной конфигурации оно должно «видеть» и модифицировать. Это позволяет сохранять систему максимально типовой и облегчает процесс последующих обновлений программы фирмой «1С».