Подсистемы в 1С: разделы интерфейса и навигация пользователя

· 9 мин

Содержание

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

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

Что такое подсистема и как она превращается в раздел

Подсистема — это объект метаданных, который не хранит данные сам по себе. Он группирует ссылки на другие объекты: справочники, документы, отчёты, обработки, регистры. По этим группам платформа строит командный интерфейс.

В интерфейсе «Такси» (платформа 8.3.2x и новее) действует простое правило:

  • подсистема первого уровня → раздел в панели разделов (вертикальная или горизонтальная полоса с разделами);
  • подсистема второго и ниже уровня → группа внутри панели навигации раздела;
  • объект, добавленный в подсистему → команда открытия его списка в панели навигации этого раздела.

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

Если объект не входит ни в одну подсистему, он не исчезает из программы — его по-прежнему можно открыть через Главное меню → Все функции. Просто в разделах его команды не будет.

Для разработчика это удобный приём: каркас разделов стоит продумать до того, как в конфигурации появятся десятки справочников и документов. Тогда новый объект достаточно отметить в нужной подсистеме — и он сразу встаёт на своё место в навигации, без ручной правки меню.

Как добавить подсистему в конфигураторе: по шагам

  1. Откройте конфигурацию на редактирование (Конфигурация → Открыть конфигурацию).
  2. В дереве найдите ветку Общие, внутри — Подсистемы. Правой кнопкой по Подсистемы → Добавить.
  3. В палитре свойств заполните Имя — латиницей, без пробелов (например, Продажи, Склад, Администрирование). Это внутренний идентификатор.
  4. Заполните Синоним — то, что увидит пользователь на разделе («Продажи», «Склад и доставка»). Если синоним пуст, подпись сформируется из имени.
  5. Проверьте флажок Включать в командный интерфейс. Без этого флажка раздел не появится в интерфейсе вообще — это самая частая причина «я создал подсистему, а её не видно».
  6. Назначьте Картинка — иконку раздела. Нажмите на поле, выберите из общих картинок или добавьте новую через Общие → Общие картинки. Размер иконки для раздела — обычно 32×32 пикселя.
  7. При необходимости заполните Пояснение — всплывающую подсказку к разделу.

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

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

Вложенные подсистемы: как собрать иерархию разделов

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

Как это выглядит у пользователя:

  • верхний уровень — раздел (например, «Продажи»);
  • вложенные подсистемы — группы в панели навигации этого раздела («Оптовые продажи», «Розница»);
  • объекты внутри вложенной подсистемы — команды внутри группы.

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

Уровень вложенностиЧто получается в интерфейсе
1-й (корневая подсистема)Раздел в панели разделов
2-й (подчинённая)Группа в панели навигации раздела
3-й и глубжеПодгруппа внутри группы

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

Состав подсистемы: какие объекты в неё входят

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

Путь 1 — со стороны подсистемы. Двойным щелчком откройте подсистему, перейдите на закладку Состав. Перед вами дерево всех объектов конфигурации с флажками. Отметьте те, что должны попасть в этот раздел.

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

Какой путь удобнее — зависит от задачи:

СпособКогда удобнее
Через закладку Состав подсистемыНаполняете новый раздел: видно всё дерево объектов, отмечаете нужные пачкой
Через закладку Подсистемы объектаДобавили один объект и раскладываете его сразу по нескольким разделам

Что именно появляется в навигации:

  • для справочника — команда открытия его списка;
  • для документа — команда открытия журнала/списка;
  • для отчёта и обработки — команда их запуска;
  • стандартные команды (создание нового элемента, ввод по образцу) по умолчанию попадают в панель действий или скрыты — их видимость настраивается отдельно.

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

Командный интерфейс: порядок разделов и состав навигации

Готовый список разделов почти всегда нужно упорядочить и причесать. Для этого есть два редактора.

Порядок самих разделов. Правой кнопкой по корню конфигурации (самая верхняя строка дерева с именем конфигурации) → Открыть командный интерфейс конфигурации. В открывшемся окне — список всех подсистем первого уровня. Стрелками Переместить вверх/Переместить вниз задайте порядок, в котором разделы встанут в панели.

Состав навигации внутри раздела. Правой кнопкой по нужной подсистеме → Открыть командный интерфейс. Здесь команды разложены по группам:

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

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

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

Начальная страница при этом настраивается отдельно: правой кнопкой по корню конфигурации → Открыть рабочую область начальной страницы. Формы на начальной странице к подсистемам не привязаны — не путайте эти две настройки.

Проверка раздела перед передачей конфигурации
Выполнено: 0 / 5

Видимость разделов и команд по ролям

Разные пользователи видят разный набор разделов. Управляется это на двух уровнях.

Видимость раздела по ролям. В окне Командный интерфейс конфигурации (тот, что открывается от корня) есть колонка Видимость и настройка Видимость по ролям. Разверните её — появятся колонки по каждой роли. Снимите флажок у роли напротив подсистемы — и для этой роли раздел исчезнет из панели разделов.

Видимость отдельной команды по ролям. В редакторе Командный интерфейс конкретной подсистемы так же можно задать видимость каждой команды отдельно для каждой роли.

Логика приоритетов:

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

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

Пример: собираем разделы для торговой базы

Разберём на конкретной структуре, как подсистемы складываются в навигацию. Допустим, в конфигурации нужны три раздела: продажи, склад и администрирование.

На первом уровне создаём три корневые подсистемы:

  • Продажи (синоним «Продажи»);
  • Sklad (синоним «Склад»);
  • Administrirovanie (синоним «Администрирование»).

В разделе «Продажи» хочется отделить опт от розницы. Вкладываем в Продажи две подчинённые подсистемы — Opt и Roznica. Теперь в панели навигации раздела появятся две группы.

Дальше раскладываем объекты по составу:

  1. В Opt включаем документ «Реализация товаров» и справочник «Контрагенты».
  2. В Roznica — документ «Чек ККМ» и обработку «Рабочее место кассира».
  3. В Sklad — документы «Поступление товаров » и «Перемещение», регистр «Остатки товаров».
  4. В Administrirovanie — справочники «Пользователи», «Настройки», обработку обслуживания.

В 1С:Предприятии это превращается в такую навигацию:

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

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

Ошибки проектирования навигации

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

Ещё несколько промахов, которые всплывают уже на боевой базе:

  • Пустой синоним. Пользователь видит техническое имя латиницей. Синоним заполняйте всегда.
  • Один объект в десяти подсистемах. Команда дублируется в каждом разделе, навигация замусоривается. Включайте объект туда, где он логичен.
  • Слишком глубокая вложенность. Три уровня — предел читаемости. Глубже — проваливаешься и не находишь.
  • Нет картинки. Разделы без иконок выглядят одинаково, пользователю труднее их различать.
  • Непродуманные имена. Имя подсистемы меняется в метаданных тяжело — на него могут ссылаться в коде. Задавайте осмысленное имя латиницей сразу, а подпись правьте через синоним.

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

Чем подсистема отличается от роли?
Подсистема управляет тем, что показано в разделах (навигацией и командами). Роль управляет тем, что разрешено (правами на объекты). Видимость командного интерфейса удобна, но прав не заменяет.
Можно ли сделать подсистему, невидимую пользователю, но полезную для обновления?
Да. Снимите флажок Включать в командный интерфейс — подсистема останется в метаданных и будет работать как фильтр при сравнении и обновлении конфигураций, но раздела в интерфейсе не создаст.
Почему объект входит в подсистему, а в разделе его не видно?
Чаще всего у роли пользователя нет права Просмотр на этот объект, либо команда отключена флажком видимости в редакторе командного интерфейса раздела.
Как поменять порядок разделов на панели?
Правой кнопкой по корню конфигурации → Открыть командный интерфейс конфигурации, затем стрелками Переместить вверх/Переместить вниз.
Подсистемы одинаково работают в управляемых формах и в обычном приложении?
Разделы на панели разделов — это механизм управляемого интерфейса («Такси» и «Управляемое приложение»). В режиме обычного приложения навигация строится иначе, подсистемы там напрямую разделы не формируют.