Подсистемы в 1С: создание, состав и настройка интерфейса
Содержание
Подсистема живёт в дереве конфигурации — ветка Общие → Подсистемы. Создаётся в Конфигураторе: правой кнопкой по ветке → Добавить. Это метаданные, а не объект, который можно «нарисовать» кодом во время работы базы.
Частое заблуждение: думают, что подсистема — это модуль с кодом или отдельный справочник. Нет. Подсистема ничего не хранит и ничего не считает. Её задача — собрать разнородные объекты (документы, справочники, отчёты, обработки) в один логический раздел и показать его пользователю как вкладку в панели разделов. Отсюда и всё остальное: состав, картинка, командный интерфейс, видимость по ролям.
Ниже — как добавить подсистему с нуля, чем наполнить, как связать с правами и как собрать из подсистем иерархию.
Что такое подсистема и где она хранится
Подсистема — это способ логически сгруппировать объекты конфигурации. Один документ может входить сразу в несколько подсистем, и это нормально: «Реализация товаров» уместна и в «Продажах», и в «Складе».
Зачем они нужны на практике:
- 🗂 Формируют разделы интерфейса. Каждая подсистема верхнего уровня с включённым флагом становится вкладкой в панели разделов (вверху окна в интерфейсе «Такси»).
- 🔎 Фильтруют дерево конфигурации. В Конфигураторе над деревом есть фильтр по подсистемам — удобно, когда объектов сотни.
- 🔐 Ускоряют настройку прав. Права роли можно расставлять не по одному объекту, а сразу по составу подсистемы.
- ⚙️ Привязывают функциональные опции. Опция может управлять видимостью целого раздела.
Если в типовой конфигурации вы видите вверху разделы «Банк и касса», «Продажи», «Зарплата и кадры» — это и есть подсистемы верхнего уровня.
Как создать подсистему в конфигураторе: пошагово
Работаем в Конфигураторе. База должна быть открыта в режиме разработки.
- В дереве конфигурации раскройте ветку
Общие. - Правой кнопкой по
Подсистемы→Добавить. Откроется окно редактирования новой подсистемы. - На закладке
Основныезадайте Имя — латиницей, без пробелов, напримерУправлениеПродажами. Имя используется в коде и в выгрузке. - Проверьте Синоним — он подставится автоматически из имени, но его стоит сделать человекочитаемым: именно синоним увидит пользователь как название раздела.
- При необходимости укажите Картинку — иконку раздела. Можно выбрать из общих картинок конфигурации или добавить свою в ветку
Общие → Общие картинки. - Флаг Включать в командный интерфейс оставьте установленным, если подсистема должна стать видимым разделом.
После этого подсистема уже существует. Но она пустая — в ней нет ни одного объекта.
Разберём на коротком примере. Нужен раздел «Склад» с минимальным набором: справочники «Склады» и «Номенклатура», документы «Оприходование товаров
» и «Списание товаров», отчёт «Остатки на складах». Создаём подсистему с именем Склад, синоним оставляем «Склад», подбираем складскую иконку. Пока на закладке Состав ничего не отмечено, раздел появится вверху, но внутри будет пусто. Наполним его на следующем шаге.
Имя подсистемы после публикации в типовой конфигурации лучше не менять — на него могут ссылаться функциональные опции, права и код. Переименование Имени — это не то же самое, что правка Синонима.
Состав подсистемы: какие объекты в неё включать
Наполнение задаётся на закладке Состав. Это список всех объектов конфигурации с галочками.
Отметьте то, что должно попасть в раздел: справочники, документы, журналы документов, отчёты, обработки, регистры (если по ним нужны стандартные команды). Галочка = объект входит в подсистему.
Что это даёт пользователю:
- отмеченные объекты появляются в меню раздела (команды «создать», «открыть список»);
- по составу строится навигация внутри вкладки;
- при расстановке прав можно оперировать всем составом сразу.
| Тип объекта | Что добавляется в интерфейс раздела |
|---|---|
| Справочник | команды открытия списка и создания элемента |
| Документ | команды открытия списка/журнала и создания документа |
| Отчёт | команда запуска отчёта |
| Обработка | команда запуска обработки |
Вернёмся к примеру со «Складом». Отмечаем галочками справочники Склады и Номенклатура, документы Оприходование товаров и Списание товаров, отчёт Остатки на складах. После обновления конфигурации базы данных во вкладке «Склад» появятся команды создания этих документов, открытия списков справочников и запуск отчёта — без единой строки кода.
Один и тот же объект смело включайте в несколько подсистем, если по смыслу он относится к разным разделам. Дублирования данных при этом не происходит — объект один, ссылок на него несколько. Например, номенклатуру логично держать и в «Складе», и в «Продажах».
Над деревом конфигурации есть фильтр по подсистемам. Выберите в нём «Склад» — и дерево покажет только объекты этого раздела. На большой конфигурации это сильно ускоряет работу: не нужно листать сотни объектов, чтобы найти свои.
Командный интерфейс и видимость команд
Состав определяет, что доступно в разделе. Командный интерфейс определяет, как это показано: порядок команд, группировку, видимость по умолчанию.
Чтобы его настроить, правой кнопкой по подсистеме → Открыть командный интерфейс. Откроется редактор с деревом команд, разбитых на группы (панель навигации
, панель действий).
Здесь вы можете:
- включать и выключать видимость отдельных команд общим флагом «Видимость»;
- менять порядок команд перетаскиванием;
- настроить видимость по ролям — отдельная колонка с флагами для каждой роли.
Видимость по ролям — тонкий момент. Снятая галочка в колонке роли убирает команду из интерфейса для пользователя с этой ролью, но право на объект при этом не снимается. Это именно оформление интерфейса, а не ограничение доступа.
Команды в редакторе разбиты по областям: панель навигации (списки, журналы), панель действий (создание новых объектов, групповые команды) и важные команды, которые можно вынести на видное место. Для нового объекта видимость команды по умолчанию включена — если команда не нужна в этом разделе, снимите общий флаг видимости. Порядок внутри группы меняется перетаскиванием; его стоит выстроить по частоте использования, а не по алфавиту.
Хотите, чтобы часть команд была скрыта у рядовых пользователей, но доступна у администратора? Настройте видимость по ролям в командном интерфейсе подсистемы — это быстрее, чем городить отдельные формы.
Подсистемы, права доступа и функциональные опции
Подсистема — удобная точка входа в настройку прав, но сама по себе прав не выдаёт.
Расстановка прав по составу. В редакторе роли (Общие → Роли, открыть нужную роль) есть команда установки прав по подсистеме: выбираете подсистему — и права (чтение, добавление, изменение) расставляются сразу на все объекты её состава. Это экономит время, когда в разделе десятки объектов.
Функциональные опции. Если в конфигурации есть функциональная опция, выключающая целый блок функционала, её удобно привязать к видимости подсистемы или её команд. Выключили опцию — раздел исчез у всех, у кого опция не активна. Настройка опции живёт в объекте Функциональная опция, а не в самой подсистеме, но работают они в паре.
Коротко про разницу, чтобы не путать:
- 🔐 Роль — даёт или запрещает доступ к данным (чтение/запись). Это безопасность.
- 👁 Видимость по ролям в подсистеме — показывает или прячет команду. Это удобство интерфейса.
- 🎚 Функциональная опция — включает или выключает блок функционала целиком.
Эти три механизма независимы. Скрытая команда не защищает данные — защищает роль.
Иерархия: вложенные и составные подсистемы
Подсистемы образуют дерево. У любой подсистемы может быть подчинённая — создаётся так же: правой кнопкой по родительской подсистеме → Добавить.
Как это выглядит у пользователя:
- Верхний уровень — вкладки в панели разделов (горизонтальная полоса вверху в интерфейсе «Такси»).
- Вложенные подсистемы — группы внутри раздела, они структурируют меню навигации и действий внутри вкладки.
В нашем примере «Склад» можно разбить на вложенные «Поступление» и «Отгрузка», а документы разнести по ним. Тогда внутри вкладки «Склад» пользователь увидит две логические группы команд вместо сплошного списка. Решение оправдано, когда объектов в разделе много; для пяти команд дробление лишнее.
Глубокая вложенность вредит: два уровня — комфортно, три и больше — пользователь теряется. Держите иерархию плоской, насколько возможно.
Флаг Включать в командный интерфейс работает на каждом уровне. Если у подсистемы его снять, она останется в дереве конфигурации (ей по-прежнему можно пользоваться для фильтрации и расстановки прав), но не станет видимым разделом. Это штатный приём для «служебных» подсистем, которые нужны разработчику, а не пользователю.
Порядок разделов в панели задаётся не в самих подсистемах, а в общем командном интерфейсе конфигурации: правой кнопкой по корню дерева (имя конфигурации) → Открыть командный интерфейс конфигурации. Там же — видимость разделов по ролям на верхнем уровне.
Автоматизация: выгрузка в XML и расширения конфигурации
«Создать подсистему скриптом во время работы базы» — так не бывает: подсистема это метаданные, их правят в Конфигураторе. Но рутину вокруг этого автоматизировать можно.
Выгрузка и загрузка конфигурации в XML-файлы. Меню Конфигурация → Выгрузить конфигурацию в файлы... раскладывает метаданные (включая подсистемы) в набор XML. Эти файлы кладут под систему контроля версий (Git) и собирают обратно командой Конфигурация → Загрузить конфигурацию из файлов.... Так правки подсистем видны в истории и воспроизводятся на другой базе.
То же самое из командной строки платформы — в пакетном режиме запуска Конфигуратора (ключ /DumpConfigToFiles на выгрузку и /LoadConfigFromFiles на загрузку). Это основа для сборки конфигурации на CI.
Загрузка конфигурации из файлов меняет структуру конфигурации и требует монопольного режима — все сеансы пользователей нужно завершить. Делайте это в окно без работы в базе и с актуальной резервной копией.
Расширения конфигурации
. Подсистему можно добавить в расширении (механизм доступен с версии платформы 8.3.6 и новее), не трогая основную конфигурацию. Это способ собрать свой раздел поверх типовой БП или ЗУП без снятия её с поддержки. После подключения файла расширения (.cfe) выполняется отдельный шаг — Обновить конфигурацию базы данных.
Частые ошибки при работе с подсистемами
Беда обычно не в создании, а в мелочах настройки.
- ❌ Подсистема создана, а раздела нет. Проверьте флаг
Включать в командный интерфейсу самой подсистемы и видимость раздела в командном интерфейсе конфигурации (на верхнем уровне и по ролям). - ❌ Раздел виден, но пустой. Не заполнена закладка
Составлибо у роли нет прав ни на один объект состава — тогда команды скрываются автоматически. - ❌ Путают видимость и права. Сняли галочку видимости по роли и считают, что закрыли доступ. Данные при этом по-прежнему доступны через роль и через другие формы. Доступ ограничивает только роль.
- ❌ Переименовали Имя вместо Синонима. Пользователю меняем Синоним. Имя — внутренний идентификатор, его правка рискует порвать ссылки.
- ❌ Слишком глубокая вложенность. Три-четыре уровня подсистем превращают навигацию в лабиринт.
Частые вопросы
Можно ли включить один документ в несколько подсистем?
Состав в каждой нужной подсистеме. Объект остаётся один, просто появляется в нескольких разделах.Чем отличается Имя подсистемы от Синонима?
Почему раздел не отображается в интерфейсе?
Включать в командный интерфейс у подсистемы, либо раздел скрыт в командном интерфейсе конфигурации (в том числе по ролям), либо у пользователя нет прав ни на один объект состава.