К статье
Практический материал

Разработка и Конфигурация · 11 мин

Подсистема с одной командой в 1С: что это и как с ней работать

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

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

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

Как устроен командный интерфейс и где в нём подсистемы

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

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

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

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

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

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

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

Состав подсистемыПустой или почти пустой

Откройте свойства подсистемы и проверьте вкладку «Состав» — объектов метаданных там нет или они недоступны по правам

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

Откройте редактор командного интерфейса подсистемы — в панели действий или навигации добавлена единственная команда

Поведение в режиме предприятияРаздел с одним пунктом

В панели разделов виден отдельный раздел, внутри которого только одна функция

Зачем используют такой приём

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

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

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

Как создать подсистему с одной командой

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

Порядок создания
  1. 1
    Создайте объект метаданных «Подсистема», задайте имя и синоним — синоним увидят пользователи в панели разделов
  2. 2
    При необходимости назначьте картинку раздела и включите опцию отображения в панели разделов
  3. 3
    Не включайте объекты в состав подсистемы — оставьте состав пустым
  4. 4
    Откройте редактор командного интерфейса подсистемы и добавьте нужную команду: общую команду или команду объекта
  5. 5
    Проверьте видимость команды и настройте роли так, чтобы раздел видели только целевые пользователи
  6. 6
    Обновите конфигурацию базы данных и проверьте результат в режиме предприятия под пользователем с целевыми правами

Если целевого действия ещё нет в конфигурации, сначала создайте его: общую команду с обработчиком, обработку с основной формой или общую форму. Команда открытия обработки формируется платформой автоматически, а общую команду придётся описать вручную с указанием модуля и типа параметризации.

Чем отличается от альтернативных способов вывести команду

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

Варианты размещения команды

Отдельная подсистема с одной командой

Максимальная заметность: раздел верхнего уровня. Подходит для ключевых сервисных операций. Минус — увеличивает число разделов в панели

Команда внутри существующей подсистемы

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

Глобальная общая команда в панели инструментов

Доступна из любого раздела, но менее заметна и неочевидна для новых пользователей

Начальная страница (рабочий стол)

Команда или форма на рабочем столе видна сразу после входа, но место на начальной странице ограничено

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

Типичные ошибки и ограничения

Типичные ошибки
01
Создание множества подсистем по одной команде — панель разделов превращается в длинный список, и навигация ухудшается вместо улучшения
02
Забытая настройка ролей — раздел виден всем пользователям, включая тех, кому сервисная операция не нужна или опасна
03
Команда без проверки прав в обработчике — пользователь без нужных прав получает ошибку при нажатии вместо корректного отказа
04
Пустая подсистема без команды — раздел не отображается, и разработчик ищет несуществующую ошибку в настройках интерфейса
05
Дублирование одной и той же команды и в отдельном разделе, и внутри профильной подсистемы — пользователи путаются, какой пункт правильный

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

Контрольные точки

Как проверить результат

Отображение раздела
Норма

Раздел виден в панели разделов у целевых пользователей

Тревожный признак

Раздел не отображается — проверьте права, функциональные опции и наличие видимой команды

Работа команды
Норма

Нажатие открывает нужную форму или выполняет действие без ошибок

Тревожный признак

Ошибка при выполнении — проверьте обработчик команды и права на вызываемые объекты

Скрытие от лишних пользователей
Норма

У пользователей без профильной роли раздел отсутствует

Тревожный признак

Раздел виден всем — доработайте настройку ролей

Безопасные границы самостоятельной доработки

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

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

Прежде чем создавать новый раздел, посмотрите, сколько разделов уже в панели. Если их больше десятка, пользователи перестают ориентироваться. Часто правильнее добавить команду в существующий раздел «Сервис» или «Администрирование», чем плодить новые подсистемы.
ПЗ
Практическое замечание

Часто задаваемые вопросы

Это ошибка, если в типовой конфигурации есть подсистема без объектов в составе?

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

Почему созданная подсистема не появилась в панели разделов?

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

Можно ли добавить в такую подсистему несколько команд?

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

Чем это отличается от общей команды?

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

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

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

Итог

Что важно запомнить

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