Интерфейс 1С 8.3 под пользователя: роли, разделы, формы и программная видимость
Содержание
Интерфейс пользователя в 1С 8.3 собирается из трёх слоёв: роли решают, что человеку вообще доступно, командный интерфейс (подсистемы) раскладывает доступное по разделам, а формы показывают данные. Сделать интерфейс под конкретного сотрудника можно без кода — в режиме «Предприятие» через Главное меню → Вид и Ещё → Изменить форму. Разработка и тонкая настройка — в Конфигураторе: редактор командного интерфейса, редактор форм и модуль формы.
Ниже всё описано для платформы 8.3 с интерфейсом «Такси» и типовых конфигураций на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11). Где действие делается в Конфигураторе, это сказано отдельно.
Из чего состоит интерфейс 1С и при чём здесь роли
Начинать проектирование интерфейса стоит не с форм, а с ролей. Платформа строит разделы и меню автоматически: команда, на которую у пользователя нет права, просто не показывается.
| Слой | Где настраивается | Что решает |
|---|---|---|
| 🔐 Роли и права | Конфигуратор → ветка «Общие → Роли» | Видит ли пользователь объект и может ли его менять |
| 🧭 Подсистемы | Конфигуратор → «Общие → Подсистемы» | Какие разделы есть в панели разделов и что в них лежит |
| 📋 Командный интерфейс | Редактор командного интерфейса подсистемы | Порядок и видимость команд, видимость по ролям |
| 🪟 Формы | Редактор формы объекта | Поля, группы, кнопки на конкретном экране |
| ⚙️ Функциональные опции | «Общие → Функциональные опции» | Включение и выключение целых блоков учёта |
| 👤 Настройки пользователя | Режим «Предприятие» | Личная раскладка: панели, порядок разделов, поля формы |
Из этой таблицы следует правило: скрытое поле на форме — не защита данных. Если бухгалтер не должен видеть оклады, закройте право на объект в роли (или ограничьте доступ на уровне записей), а не прячьте колонку. Скрытый реквизит всё равно доступен через отчёт, список или запрос.
В типовых конфигурациях роли напрямую пользователям не назначают. Работают группы доступа и профили: Администрирование → Настройки пользователей и прав → Группы доступа. Профиль — набор ролей, группа — профиль плюс список людей.
Настройка командного интерфейса: разделы, панели и навигация
Для одного пользователя — без Конфигуратора
Пользователь сам меняет раскладку в режиме «Предприятие»:
- Откройте главное меню (кнопка с тремя полосками в левом верхнем углу).
- Перейдите в
Вид → Настройка панелей— здесь панели (разделов, открытых, избранного, инструментов) перетаскиваются по краям окна. Вид → Настройка панели разделов— порядок разделов и вид отображения: картинка и текст, только текст, только картинка.- Внутри раздела нажмите шестерёнку «Настройка навигации» или «Настройка действий»: команды переносятся между колонками «Доступные» и «Выбранные».
Настройки сохраняются в профиле пользователя на сервере и не теряются при входе с другого компьютера.
Для группы людей — копирование настроек
Настраивать десять бухгалтеров по одному долго. В конфигурациях на БСП есть копирование: Администрирование → Настройки пользователей и прав → Персональные настройки пользователей. Там выбираете эталонного пользователя, ставите галочки «Внешний вид» и «Настройки форм» и указываете, кому скопировать.
Копирование перезаписывает личные настройки получателя. Предупредите людей заранее, иначе их собственная раскладка исчезнет.
В Конфигураторе — для всех пользователей роли
Командный интерфейс конфигурации открывается из контекстного меню корня дерева конфигурации («Открыть командный интерфейс конфигурации»), у каждой подсистемы — своим пунктом на вкладке её свойств. В редакторе:
- 👁 колонка «Видимость» — показывать ли команду по умолчанию;
- 🎭 колонка «Видимость по ролям» — переопределяет видимость для отдельной роли: например, «Журнал операций» виден только роли главбуха;
- ↕️ порядок строк — порядок команд в панели навигации и панели действий;
- 🗂 группы «Важное», «Обычное», «См. также» — визуальная иерархия в панели навигации.
Новый раздел — это новая подсистема верхнего уровня с флажком «Включать в командный интерфейс». Объект попадает в раздел, когда вы отмечаете подсистему на вкладке «Подсистемы» его свойств.
Как сделать форму документа под задачу пользователя
Пользовательская настройка формы
В «Такси» у любой формы есть Ещё → Изменить форму. Пользователь видит дерево элементов и может:
- снять галочку у поля, которое ему не нужно;
- перетащить поле в другую группу или поменять порядок;
- вынести редко используемые поля в сворачиваемую группу.
Изменения хранятся только у этого пользователя. Вернуть всё как было можно в том же окне через Ещё → Установить стандартные настройки.
Изменение формы разработчиком
В Конфигураторе форма объекта состоит из трёх частей: реквизиты (данные), элементы (что видно) и команды (кнопки). Правила, которые сильно упрощают жизнь:
- Группируйте поля через «Группа формы» с видом «Обычная группа» и группировкой «Горизонтальная» или «Вертикальная». Не выравнивайте поля пробелами в заголовках.
- Редкие реквизиты складывайте в группу с отображением «Свёрнутая» или на отдельную страницу («Страницы» → «Страница»).
- Ширину задавайте у самого нужного поля, остальным давайте растягиваться — так форма не разваливается на ноутбуке с 1366 точками по горизонтали.
- Подсказку пишите в свойстве «Подсказка» с отображением «Кнопка» или «Всплывающая»: пользователь видит её по запросу, а форма не загромождается.
Типовая конфигурация: только через расширение
Если поменять форму типовой БП или ЗУП прямо в основной конфигурации, придётся снять её с поддержки, и каждое обновление превратится в ручное сравнение. Правильный приём — расширение конфигурации (доступно с платформы 8.3.6):
Конфигурация → Расширения конфигурации → Добавить.- В дереве основной конфигурации на нужной форме — контекстное меню «Добавить в расширение».
- В заимствованной форме добавляете свои элементы и обработчики. Основная форма не трогается.
- После правок — «Обновить конфигурацию базы данных» для расширения.
Обновление типовой при этом идёт обычным порядком, а расширение накладывается поверх.
Ещё → Изменить форму и Главное меню → Вид → Настройка панелей. Программист не нужен.Администрирование → Настройки пользователей и прав → Персональные настройки пользователей.Программное управление видимостью и доступностью элементов
Видимость меняют через коллекцию Элементы. Типовая задача: показать поле «Договор» только когда выбран контрагент, а поле «Причина скидки» — только при ненулевой скидке.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьВидимостьЭлементов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура СкидкаПриИзменении(Элемент)
УстановитьВидимостьЭлементов(ЭтотОбъект);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьЭлементов(Форма)
Объект = Форма.Объект;
Элементы = Форма.Элементы;
Элементы.Договор.Видимость = ЗначениеЗаполнено(Объект.Контрагент);
Элементы.ПричинаСкидки.Видимость = (Объект.ПроцентСкидки <> 0);
Элементы.Склад.ТолькоПросмотр = Объект.Проведен;
КонецПроцедуры
Почему так:
- ✅ первый вызов — в
ПриСозданииНаСервере, а не вПриОткрытии: форма приходит на клиент уже в нужном виде, без мигания полей; - ✅ процедура с директивой
&НаКлиентеНаСервереБезКонтекставызывается и с сервера, и с клиента, а при изменении поля не нужен вызов сервера; - ✅ три свойства решают разные задачи:
Видимостьубирает элемент,Доступностьделает его серым,ТолькоПросмотроставляет видимым и выделяемым, но запрещает правку.
Видимость по роли из кода
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элементы.Себестоимость.Видимость = РольДоступна("ПолныеПрава");
КонецПроцедуры
В конфигурациях на БСП вместо проверки роли по имени лучше проверять право на объект: ПравоДоступа("Изменение", Метаданные.Документы.РеализацияТоваровУслуг). Имена ролей меняются от релиза к релизу, а право — нет.
Добавить поле на форму программно
Так делают в расширениях и обработках, когда реквизита в метаданных нет:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НовыеРеквизиты = Новый Массив;
НовыеРеквизиты.Добавить(Новый РеквизитФормы("ЗаметкаМенеджера",
Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(200))));
ИзменитьРеквизиты(НовыеРеквизиты);
Поле = Элементы.Добавить("ЗаметкаМенеджера", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеВвода;
Поле.ПутьКДанным = "ЗаметкаМенеджера";
Поле.Заголовок = "Заметка менеджера";
КонецПроцедуры
Такой реквизит живёт только в форме и в базу не записывается. Чтобы сохранять значение, нужен реквизит объекта или запись в регистр сведений .
Строки списка и табличной части
Для таблиц не пишите код на каждую строку — используйте условное оформление формы. Оно задаёт цвет, шрифт, доступность и видимость ячеек по условию отбора: например, красный текст у строк, где количество меньше нуля. Платформа применяет оформление сама, без событий и без лишних вызовов сервера.
Рабочее место пользователя и начальная страница
Начальная страница — первое, что человек видит после входа. Настроить её можно на двух уровнях.
Пользователь — Главное меню → Вид → Настройка начальной страницы. Формы раскладываются по левой и правой колонке; типичный набор для бухгалтера: «Текущие дела», список банковских выписок, календарь отчётности.
Разработчик — в Конфигураторе, в контекстном меню корня конфигурации, пункт «Открыть рабочую область начальной страницы». Здесь выбирается шаблон (одна колонка, две колонки равной или разной ширины) и формы в каждой колонке. Для каждой формы тоже доступна видимость по ролям.
Отдельное рабочее место (АРМ) для узкой роли — кладовщика, кассира, оператора — обычно делают так:
- Создают общую форму или обработку с нужными кнопками и списками.
- Кладут её на начальную страницу и включают видимость только для роли этого АРМ.
- Для роли скрывают все лишние разделы в командном интерфейсе.
- Через профиль группы доступа назначают роль сотрудникам.
Пользователь входит и сразу видит один экран с тремя-четырьмя действиями — без панели из пятнадцати разделов.
Если нужен только один раздел, его можно скрыть от всех, кроме роли, и тогда панель разделов у пользователя станет почти пустой. Саму панель разделов человек может убрать через Вид → Настройка панелей.
Типичные ошибки при разработке интерфейса и как их избежать
Вид → Настройка панели разделов.Ещё → Изменить форму → Ещё → Установить стандартные настройки или очистите настройки форм через персональные настройки пользователей.ПриОткрытии или через серверные вызовы при каждом изменении поля. Перенесите первую установку в ПриСозданииНаСервере, а реакцию на изменения — в процедуру без контекста.Что ещё ускоряет и упрощает формы:
- 📉 меньше элементов на первом экране — двадцать полей вместо шестидесяти заметно ускоряют открытие, особенно через веб-клиент и тонкий клиент по интернету;
- 🧩 динамические списки вместо таблиц значений для больших выборок — они подгружают данные порциями;
- 📦 функциональные опции вместо кода «если включён учёт по складам — показать поле»: платформа сама скрывает связанные элементы во всех формах сразу;
- 🧪 проверка под ролью пользователя, а не под администратором — с полными правами вы увидите всё и не заметите проблему.