Новый справочник, документ или отчёт не виден пользователям: как вывести его в разделы 1С 8.3

· 9 мин

Содержание

Чтобы добавить объект в интерфейс 1С 8.3, включите его в состав подсистемы: в конфигураторе откройте объект, перейдите на вкладку «Подсистемы» и отметьте нужный раздел. Затем выдайте роли право «Просмотр» на этот объект и обновите конфигурацию базы данных. После перезапуска клиента команда появится в панели навигации раздела.

Типичная ситуация: программист добавил справочник «Виды упаковки», бухгалтер открывает раздел «Справочники» — а нового пункта там нет. Объект в конфигурации есть, данные в него можно записать кодом, но через меню до него не добраться. Причина почти всегда в одном из трёх мест: состав подсистемы, командный интерфейс или права. Разберём каждое из них.

Из чего собирается интерфейс в управляемом приложении

В управляемом приложении (интерфейс «Такси», платформа 8.3) нет отдельного «меню», которое рисуют вручную. Интерфейс строится автоматически из метаданных. Разработчик только говорит платформе, какой объект в каком разделе показывать и кому.

За это отвечают три механизма:

  • 🗂 Подсистемы. Подсистема верхнего уровня с флажком «Включать в командный интерфейс» становится разделом на панели разделов. Вложенные подсистемы превращаются в группы внутри раздела.
  • 🧭 Командный интерфейс. Определяет, в какой панели окажется команда, в каком порядке и для каких ролей она видна.
  • 🔐 Роли. Если у пользователя нет права на объект, платформа просто не покажет его команды. Ошибки не будет, пункт тихо исчезнет.

Что именно появляется в интерфейсе, когда объект включён в подсистему:

Вид объектаКоманда в панели навигацииКоманда в панели действий
Справочник, документ, план видов характеристикОткрыть список«Создать» новый элемент или документ
Журнал документовОткрыть журнал—
Отчёт—В группе «Отчеты»
Обработка—В группе «Сервис»
Регистр сведений, регистр накопленияОткрыть список записей—

Разделение условное: команду можно перенести в другую группу вручную. Но по умолчанию платформа раскладывает команды именно так.

У справочника, документа и регистра должно быть включено свойство «Использовать стандартные команды». Если его снять, команды открытия списка и создания не формируются, и объект в разделе не появится, даже если он в составе подсистемы.

Добавляем объект в интерфейс 1С через конфигуратор: шаги

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

Шаг 1. Включить объект в подсистему

Есть два равноценных способа, выбирайте удобный.

Со стороны объекта:

  1. В дереве конфигурации дважды щёлкните по объекту, например по справочнику.
  2. В окне редактирования откройте вкладку «Подсистемы».
  3. Отметьте флажком нужную подсистему. Если это вложенная подсистема, разверните родителя.

Со стороны подсистемы:

  1. Раскройте ветку Общие → Подсистемы и откройте свойства нужной подсистемы.
  2. В свойстве «Состав» нажмите кнопку открытия.
  3. В дереве объектов отметьте флажками всё, что должно попасть в раздел.

Второй способ удобнее, когда нужно разом добавить десять отчётов в один раздел. Первый — когда объект один и нужно включить его сразу в два раздела.

Шаг 2. Проверить, что подсистема видна

Откройте свойства подсистемы. Флажок «Включать в командный интерфейс» должен стоять. Без него подсистема используется только для группировки метаданных и в интерфейсе не отображается.

Здесь же задаются синоним (так раздел будет подписан на панели) и картинка раздела.

Шаг 3. Выдать права

Откройте роль, которая есть у нужных пользователей (Общие → Роли). Найдите объект в списке и отметьте права:

  • для показа команды в навигации — «Просмотр» (и «Чтение»);
  • для кнопки «Создать» — дополнительно «Добавление» и «Интерактивное добавление»;
  • для отчёта и обработки — право «Просмотр» на сам объект.

Шаг 4. Обновить базу и перезапустить клиент

Сохраните конфигурацию и выполните Конфигурация → Обновить конфигурацию базы данных (клавиша F7). Пользователям нужно перезайти в программу: открытые сеансы видят старый интерфейс.

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

Где окажется команда: панель навигации, панель действий, разделы

Включить объект в подсистему — половина дела. Вторая половина — расположить команду так, чтобы её нашли.

Командный интерфейс подсистемы

Щёлкните правой кнопкой по подсистеме и выберите «Открыть командный интерфейс». Откроется окно с двумя частями:

  • Панель навигации — группы «Важное», «Обычное», «См. также». Команды из «Важного» выводятся крупнее и выше, «См. также» — в самом низу.
  • Панель действий — группы «Создать», «Отчеты», «Сервис».

Что здесь можно сделать:

  1. Перетащить команду в нужную группу, например вынести часто используемый журнал в «Важное».
  2. Поменять порядок кнопками «Вверх» и «Вниз».
  3. Снять общую видимость или видимость для отдельной роли. Справа в окне есть колонки по ролям: флажок в колонке роли управляет показом команды только для неё.

Порядок разделов и начальная страница

Порядок самих разделов задаётся на уровне конфигурации. Щёлкните правой кнопкой по корню дерева и выберите «Открыть командный интерфейс конфигурации». Там настраиваются панель разделов, видимость разделов по ролям и команды, общие для всей программы.

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

Своя команда вместо стандартной

Иногда нужно не «открыть список», а запустить действие: сформировать отчёт с готовыми настройками или открыть форму с отбором. Для этого создают команду объекта или общую команду (Общие → Общие команды). В свойстве «Группа» выберите, где её показать, например «Панель навигации. Обычное». Обработчик пишется в модуле команды:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
	ОткрытьФорму("Справочник.ВидыУпаковки.ФормаСписка", , 
		ПараметрыВыполненияКоманды.Источник, 
		ПараметрыВыполненияКоманды.Уникальность, 
		ПараметрыВыполненияКоманды.Окно);
КонецПроцедуры

Общая команда тоже должна входить в состав подсистемы, иначе в разделе её не будет.

Кто увидит объект: права и роли

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

Раздел без доступных команд не показывается. Если в подсистеме нет ни одной команды, на которую у пользователя есть право, раздел целиком пропадёт с панели. Новый раздел с одним объектом не появится у сотрудника, пока ему не дадут право на этот объект.

Видимость в командном интерфейсе не заменяет права. Снятый флажок у роли прячет команду, но не запрещает доступ. Пользователь всё ещё может открыть объект через «Все функции», по ссылке или из другого документа. Если данные нужно закрыть, снимайте право в роли, а не флажок видимости.

В типовых конфигурациях на БСП роли напрямую пользователям обычно не назначают. Права выдаются через профили групп доступа: Администрирование → Настройки пользователей и прав → Группы доступа. Новую роль добавляют в профиль, а пользователя — в группу доступа с этим профилем.

Быстро проверить себя можно через функцию «Все функции» (включается в параметрах программы). Если объект там есть, а в разделе нет, — проблема в подсистеме или командном интерфейсе. Если нет и там — в правах.

Как добавить объект в интерфейс типовой конфигурации и не потерять обновления

Прямая правка типовой конфигурации на поддержке требует включить возможность изменения (Конфигурация → Поддержка → Настройка поддержки). После этого каждое обновление придётся объединять вручную, а изменённые подсистемы и роли будут конфликтовать с поставщиком при каждом релизе.

Есть три способа обойтись без этого.

СпособКогда подходитЦена
Расширение конфигурацииСвой справочник, документ, отчёт, своя команда в типовом разделеНужно следить за совместимостью расширения после обновлений
Дополнительные отчёты и обработкиВнешний отчёт или обработка, без новых таблиц в базеОбъект должен поддерживать регистрацию в БСП
Настройка навигации пользователемКоманда уже есть в конфигурации, но скрыта в «Ещё» или «См. также»Только для одного пользователя, без прав разработчика

Расширение конфигурации

Расширения доступны с платформы 8.3.6. Порядок:

  1. Откройте Конфигурация → Расширения конфигурации и создайте расширение.
  2. В дереве основной конфигурации найдите нужную подсистему, щёлкните правой кнопкой и выберите «Добавить в расширение». Подсистема станет заимствованной.
  3. Добавьте свой объект в расширение и включите его в состав заимствованной подсистемы.
  4. Заимствуйте роль или создайте собственную роль в расширении и выдайте права на новый объект.
  5. Обновите конфигурацию базы данных.

Основная конфигурация при этом остаётся на поддержке, обновления ставятся как обычно.

Дополнительные отчёты и обработки

Для внешнего отчёта или обработки конфигуратор не нужен вообще. Откройте Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки (функцию сначала включают флажком в этом же разделе). Загрузите файл, в карточке на закладке размещения выберите разделы, где команда будет видна, и укажите пользователей.

Файл должен содержать функцию СведенияОВнешнейОбработке() в модуле объекта. Без неё программа откажется регистрировать обработку.

Настройка навигации пользователем

Если команда в разделе есть, но «спрятана», пользователь может вывести её сам. В разделе откройте меню настроек (кнопка с шестерёнкой или «Ещё») и выберите «Настройка навигации». В левой колонке — доступные команды, в правой — показанные. Перенесите нужную команду, при необходимости в группу «Важное».

Так же устроена «Настройка панели действий». Создать новый объект этим способом нельзя, только показать существующий.

Старый интерфейс: обычное приложение

В конфигурациях на обычных формах (режим запуска «Обычное приложение», например старые УПП или БП 2.0) механизм другой. Меню там хранятся в объектах Общие → Интерфейсы. Каждый интерфейс редактируется в конструкторе меню и панелей инструментов: пункт с командой открытия объекта добавляют руками.

Пользователю интерфейс назначается в его свойствах (поле «Основной интерфейс»). Права всё так же задаются ролями: пункт меню без права на объект откроет сообщение о нарушении прав.

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

Объект не появился в интерфейсе: проверка по шагам

Выберите симптом, который видите, — к каждому даны причина и проверка. Самые частые случаи стоят первыми.

Диагностика: выберите симптом

Если ни одна проверка не помогла, запустите клиент от имени пользователя с проблемой и откройте «Все функции». Это сразу отделит права от настроек интерфейса.

Частые вопросы

Можно ли включить один объект в несколько разделов?
Да. Отметьте на вкладке «Подсистемы» несколько подсистем. Команда появится в каждом разделе, а настраивать её положение придётся отдельно в командном интерфейсе каждой подсистемы.
Как скрыть стандартную команду «Создать», но оставить список?
Откройте командный интерфейс подсистемы и снимите видимость команды создания в панели действий. Если создавать элементы запрещено по сути, снимите в роли право «Интерактивное добавление».
Почему объект виден в «Все функции», но не в разделе?
Права у пользователя есть, но объект не входит в состав видимой подсистемы или его команда скрыта в командном интерфейсе.
Нужно ли перезапускать 1С после изменения командного интерфейса?
Да. Сеанс читает интерфейс при запуске. После обновления конфигурации базы данных пользователь должен закрыть программу и войти снова.
Сохраняются ли пользовательские настройки навигации после обновления конфигурации?
Как правило, да: они хранятся в настройках пользователя. Новые команды, добавленные разработчиком, появятся рядом с ними.