Новый справочник, документ или отчёт не виден пользователям: как вывести его в разделы 1С 8.3
Содержание
Чтобы добавить объект в интерфейс 1С 8.3, включите его в состав подсистемы: в конфигураторе откройте объект, перейдите на вкладку «Подсистемы» и отметьте нужный раздел. Затем выдайте роли право «Просмотр» на этот объект и обновите конфигурацию базы данных. После перезапуска клиента команда появится в панели навигации раздела.
Типичная ситуация: программист добавил справочник «Виды упаковки», бухгалтер открывает раздел «Справочники» — а нового пункта там нет. Объект в конфигурации есть, данные в него можно записать кодом, но через меню до него не добраться. Причина почти всегда в одном из трёх мест: состав подсистемы, командный интерфейс или права. Разберём каждое из них.
Из чего собирается интерфейс в управляемом приложении
В управляемом приложении (интерфейс «Такси», платформа 8.3) нет отдельного «меню», которое рисуют вручную. Интерфейс строится автоматически из метаданных. Разработчик только говорит платформе, какой объект в каком разделе показывать и кому.
За это отвечают три механизма:
- 🗂 Подсистемы. Подсистема верхнего уровня с флажком «Включать в командный интерфейс» становится разделом на панели разделов. Вложенные подсистемы превращаются в группы внутри раздела.
- 🧭 Командный интерфейс. Определяет, в какой панели окажется команда, в каком порядке и для каких ролей она видна.
- 🔐 Роли. Если у пользователя нет права на объект, платформа просто не покажет его команды. Ошибки не будет, пункт тихо исчезнет.
Что именно появляется в интерфейсе, когда объект включён в подсистему:
| Вид объекта | Команда в панели навигации | Команда в панели действий |
|---|---|---|
| Справочник, документ, план видов характеристик | Открыть список | «Создать» новый элемент или документ |
| Журнал документов | Открыть журнал | — |
| Отчёт | — | В группе «Отчеты» |
| Обработка | — | В группе «Сервис» |
| Регистр сведений, регистр накопления | Открыть список записей | — |
Разделение условное: команду можно перенести в другую группу вручную. Но по умолчанию платформа раскладывает команды именно так.
У справочника, документа и регистра должно быть включено свойство «Использовать стандартные команды». Если его снять, команды открытия списка и создания не формируются, и объект в разделе не появится, даже если он в составе подсистемы.
Добавляем объект в интерфейс 1С через конфигуратор: шаги
Порядок ниже подходит для собственной (нетиповой) конфигурации или для типовой, которую вы уже сняли с поддержки. Про типовые на поддержке — отдельный раздел.
Шаг 1. Включить объект в подсистему
Есть два равноценных способа, выбирайте удобный.
Со стороны объекта:
- В дереве конфигурации дважды щёлкните по объекту, например по справочнику.
- В окне редактирования откройте вкладку «Подсистемы».
- Отметьте флажком нужную подсистему. Если это вложенная подсистема, разверните родителя.
Со стороны подсистемы:
- Раскройте ветку
Общие → Подсистемыи откройте свойства нужной подсистемы. - В свойстве «Состав» нажмите кнопку открытия.
- В дереве объектов отметьте флажками всё, что должно попасть в раздел.
Второй способ удобнее, когда нужно разом добавить десять отчётов в один раздел. Первый — когда объект один и нужно включить его сразу в два раздела.
Шаг 2. Проверить, что подсистема видна
Откройте свойства подсистемы. Флажок «Включать в командный интерфейс» должен стоять. Без него подсистема используется только для группировки метаданных и в интерфейсе не отображается.
Здесь же задаются синоним (так раздел будет подписан на панели) и картинка раздела.
Шаг 3. Выдать права
Откройте роль, которая есть у нужных пользователей (Общие → Роли). Найдите объект в списке и отметьте права:
- для показа команды в навигации — «Просмотр» (и «Чтение»);
- для кнопки «Создать» — дополнительно «Добавление» и «Интерактивное добавление»;
- для отчёта и обработки — право «Просмотр» на сам объект.
Шаг 4. Обновить базу и перезапустить клиент
Сохраните конфигурацию и выполните Конфигурация → Обновить конфигурацию базы данных (клавиша F7). Пользователям нужно перезайти в программу: открытые сеансы видят старый интерфейс.
Если в конфигурации добавились новые объекты метаданных, обновлению нужен монопольный доступ к базе. Работающие пользователи получат предложение завершить сеанс. Планируйте обновление на время, когда в базе никого нет, и заранее сделайте резервную копию.
Где окажется команда: панель навигации, панель действий, разделы
Включить объект в подсистему — половина дела. Вторая половина — расположить команду так, чтобы её нашли.
Командный интерфейс подсистемы
Щёлкните правой кнопкой по подсистеме и выберите «Открыть командный интерфейс». Откроется окно с двумя частями:
- Панель навигации — группы «Важное», «Обычное», «См. также». Команды из «Важного» выводятся крупнее и выше, «См. также» — в самом низу.
- Панель действий — группы «Создать», «Отчеты», «Сервис».
Что здесь можно сделать:
- Перетащить команду в нужную группу, например вынести часто используемый журнал в «Важное».
- Поменять порядок кнопками «Вверх» и «Вниз».
- Снять общую видимость или видимость для отдельной роли. Справа в окне есть колонки по ролям: флажок в колонке роли управляет показом команды только для неё.
Порядок разделов и начальная страница
Порядок самих разделов задаётся на уровне конфигурации. Щёлкните правой кнопкой по корню дерева и выберите «Открыть командный интерфейс конфигурации». Там настраиваются панель разделов, видимость разделов по ролям и команды, общие для всей программы.
Чтобы вывести форму объекта прямо на начальную страницу, в свойствах конфигурации откройте «Рабочую область начальной страницы» и добавьте туда форму, например форму списка задач.
Своя команда вместо стандартной
Иногда нужно не «открыть список», а запустить действие: сформировать отчёт с готовыми настройками или открыть форму с отбором. Для этого создают команду объекта или общую команду (Общие → Общие команды). В свойстве «Группа» выберите, где её показать, например «Панель навигации. Обычное». Обработчик пишется в модуле команды:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ОткрытьФорму("Справочник.ВидыУпаковки.ФормаСписка", ,
ПараметрыВыполненияКоманды.Источник,
ПараметрыВыполненияКоманды.Уникальность,
ПараметрыВыполненияКоманды.Окно);
КонецПроцедуры
Общая команда тоже должна входить в состав подсистемы, иначе в разделе её не будет.
Кто увидит объект: права и роли
Платформа фильтрует интерфейс по правам автоматически. Отсюда два следствия, о которых часто забывают.
Раздел без доступных команд не показывается. Если в подсистеме нет ни одной команды, на которую у пользователя есть право, раздел целиком пропадёт с панели. Новый раздел с одним объектом не появится у сотрудника, пока ему не дадут право на этот объект.
Видимость в командном интерфейсе не заменяет права. Снятый флажок у роли прячет команду, но не запрещает доступ. Пользователь всё ещё может открыть объект через «Все функции», по ссылке или из другого документа. Если данные нужно закрыть, снимайте право в роли, а не флажок видимости.
В типовых конфигурациях на БСП роли напрямую пользователям обычно не назначают. Права выдаются через профили групп доступа: Администрирование → Настройки пользователей и прав → Группы доступа. Новую роль добавляют в профиль, а пользователя — в группу доступа с этим профилем.
Быстро проверить себя можно через функцию «Все функции» (включается в параметрах программы). Если объект там есть, а в разделе нет, — проблема в подсистеме или командном интерфейсе. Если нет и там — в правах.
Как добавить объект в интерфейс типовой конфигурации и не потерять обновления
Прямая правка типовой конфигурации на поддержке требует включить возможность изменения (Конфигурация → Поддержка → Настройка поддержки). После этого каждое обновление придётся объединять вручную, а изменённые подсистемы и роли будут конфликтовать с поставщиком при каждом релизе.
Есть три способа обойтись без этого.
| Способ | Когда подходит | Цена |
|---|---|---|
| Расширение конфигурации | Свой справочник, документ, отчёт, своя команда в типовом разделе | Нужно следить за совместимостью расширения после обновлений |
| Дополнительные отчёты и обработки | Внешний отчёт или обработка, без новых таблиц в базе | Объект должен поддерживать регистрацию в БСП |
| Настройка навигации пользователем | Команда уже есть в конфигурации, но скрыта в «Ещё» или «См. также» | Только для одного пользователя, без прав разработчика |
Расширение конфигурации
Расширения доступны с платформы 8.3.6. Порядок:
- Откройте
Конфигурация → Расширения конфигурациии создайте расширение. - В дереве основной конфигурации найдите нужную подсистему, щёлкните правой кнопкой и выберите «Добавить в расширение». Подсистема станет заимствованной.
- Добавьте свой объект в расширение и включите его в состав заимствованной подсистемы.
- Заимствуйте роль или создайте собственную роль в расширении и выдайте права на новый объект.
- Обновите конфигурацию базы данных.
Основная конфигурация при этом остаётся на поддержке, обновления ставятся как обычно.
Дополнительные отчёты и обработки
Для внешнего отчёта или обработки конфигуратор не нужен вообще. Откройте Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки (функцию сначала включают флажком в этом же разделе). Загрузите файл, в карточке на закладке размещения выберите разделы, где команда будет видна, и укажите пользователей.
Файл должен содержать функцию СведенияОВнешнейОбработке() в модуле объекта. Без неё программа откажется регистрировать обработку.
Настройка навигации пользователем
Если команда в разделе есть, но «спрятана», пользователь может вывести её сам. В разделе откройте меню настроек (кнопка с шестерёнкой или «Ещё») и выберите «Настройка навигации». В левой колонке — доступные команды, в правой — показанные. Перенесите нужную команду, при необходимости в группу «Важное».
Так же устроена «Настройка панели действий». Создать новый объект этим способом нельзя, только показать существующий.
Старый интерфейс: обычное приложение
В конфигурациях на обычных формах (режим запуска «Обычное приложение», например старые УПП или БП 2.0) механизм другой. Меню там хранятся в объектах Общие → Интерфейсы. Каждый интерфейс редактируется в конструкторе меню и панелей инструментов: пункт с командой открытия объекта добавляют руками.
Пользователю интерфейс назначается в его свойствах (поле «Основной интерфейс»). Права всё так же задаются ролями: пункт меню без права на объект откроет сообщение о нарушении прав.
Подсистемы и командный интерфейс из разделов выше на обычное приложение не действуют. Если поправили подсистему, а у пользователя ничего не поменялось, проверьте режим запуска.
Объект не появился в интерфейсе: проверка по шагам
Выберите симптом, который видите, — к каждому даны причина и проверка. Самые частые случаи стоят первыми.
Если ни одна проверка не помогла, запустите клиент от имени пользователя с проблемой и откройте «Все функции». Это сразу отделит права от настроек интерфейса.