Новый раздел в интерфейсе 1С: создаём подсистему в Конфигураторе

· 9 мин

Содержание

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

Звучит просто, но на практике раздел то не виден части пользователей, то выводится не на своём месте, то пустой. Ниже — порядок действий целиком: от планирования структуры до настройки командного интерфейса и прав, для платформы 8.3 с интерфейсом «Такси».

Что такое подсистема и как спланировать разделы до работы в Конфигураторе

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

  • 🧭 навигация: подсистемы верхнего уровня становятся разделами в панели разделов («Продажи», «Склад», «Зарплата»);
  • 🗂️ порядок в метаданных: разработчик может отфильтровать дерево конфигурации по подсистеме и видеть только объекты нужного блока.

Подсистема не хранит данные и не меняет структуру таблиц. Это «папка с ярлыками» на справочники, документы, отчёты и обработки.

Как разложить объекты по разделам

Прежде чем создавать объекты, набросайте структуру на бумаге. Удобно отвечать на три вопроса:

  1. Кто работает в разделе? Раздел — это рабочее место роли: кладовщика, менеджера, бухгалтера.
  2. Что пользователь делает чаще всего? Эти документы и журналы пойдут в важную группу панели навигации.
  3. Какие объекты общие? Справочник «Номенклатура» нужен и продажам, и складу. Один объект можно включить в несколько подсистем — дублировать его не надо.

Пример плана для небольшой торговой конфигурации:

Подсистема (раздел)Вложенные подсистемыКлючевые объекты
ПродажиЗаказы, ОтгрузкиЗаказ покупателя, Реализация, отчёт по продажам
СкладПоступления, ИнвентаризацияПоступление товаров, Перемещение, остатки
НСИ—Номенклатура, Контрагенты, Склады
Администрирование—Обработки обслуживания, настройки

Держите число разделов в пределах разумного. Десять–двенадцать разделов в панели уже читаются тяжело, а на узком экране часть из них уезжает за край.

Создание подсистемы в Конфигураторе: пошагово

Подготовка

  1. Сделайте резервную копию: Администрирование → Выгрузить информационную базу в Конфигураторе сохранит файл .dt.
  2. Откройте конфигурацию: Конфигурация → Открыть конфигурацию.
  3. Если конфигурация типовая и стоит на поддержке, изменения в ней заблокированы. Тогда либо включите возможность изменения (Конфигурация → Поддержка → Настройка поддержки), либо — что правильнее — создайте подсистему в расширении (об этом ниже).

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

Добавление объекта «Подсистема»

  1. В дереве конфигурации раскройте Общие.
  2. Правой кнопкой по ветке Подсистемы → Добавить. Откроется окно редактирования новой подсистемы.
  3. Заполните основные свойства:
СвойствоЧто указатьПример
ИмяЛатиница или кириллица без пробелов, для кодаСклад
СинонимНазвание раздела, которое увидит пользовательСклад и запасы
КомментарийПояснение для разработчиковУчёт движения товаров
Включать в командный интерфейсФлажок: показывать ли подсистему как разделвключён
КартинкаЗначок раздела из общих картинокСклад
ПояснениеПодсказка при наведении на разделПоступления, перемещения, остатки
  1. Перейдите на вкладку «Состав» и отметьте флажками объекты, которые относятся к разделу.
  2. Закройте окно и выполните Конфигурация → Обновить конфигурацию базы данных (F7).

Добавление подсистемы не меняет структуру таблиц, поэтому обновление проходит быстро. Пользователи увидят раздел после перезапуска своего сеанса.

Второй способ включить объект в подсистему

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

Вложенные подсистемы

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

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

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

Отбор дерева конфигурации по подсистеме

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

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

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

  • ✍️ Имя — существительное без пробелов и префиксов: Склад, ЗакупкиИПоставщики. Его используют в коде, поэтому после выпуска не меняйте.
  • 🏷️ Синоним — короткий, до двух слов: в узкой панели разделов длинные названия переносятся на две-три строки.
  • 🔤 Для собственных доработок в типовой базе добавляйте к имени префикс компании, например мк_Склад. Так ваши объекты не столкнутся с объектами следующего релиза.

Настройка командного интерфейса подсистемы и панели разделов

Состав подсистемы определяет, какие команды попадут в раздел. Командный интерфейс — как они будут выведены.

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

Правой кнопкой по подсистеме → Открыть командный интерфейс. Откроется редактор с группами команд:

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

Что здесь настраивают:

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

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

Порядок разделов в панели

Последовательность самих разделов задаётся на уровне всей конфигурации. Правой кнопкой по корню дерева конфигурации → Открыть командный интерфейс конфигурации → закладка панели разделов. Там же можно скрыть раздел для отдельных ролей.

Если новый раздел оказался последним в панели, хотя по логике работы он должен стоять вторым, — правьте порядок именно здесь, а не в свойствах подсистемы.

Видимость раздела и права доступа

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

УровеньГде настраиваетсяКогда использовать
Права роли на объектыОкно роли, права на объекты составаОсновной способ: нет права «Просмотр» — нет и команды
Видимость по ролям в командном интерфейсеРедактор командного интерфейса подсистемы или конфигурацииПрава есть, но команда не нужна в этом разделе
Функциональные опцииОбъекты «Функциональная опция» с составомЦелый блок учёта отключается настройкой, а не правами

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

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

  1. Создайте тестового пользователя с одной ролью, например «Кладовщик».
  2. Запустите 1С:Предприятие под ним из Конфигуратора (Отладка → Начать отладку) или обычным запуском.
  3. Проверьте: раздел виден, в нём нет лишних команд, документы открываются без ошибки «Нарушение прав доступа».
  4. Повторите проверку для пользователя с набором ролей. Права ролей складываются: если у кладовщика есть ещё и роль «Менеджер», он увидит всё, что разрешено обеим, и раздел может оказаться шире, чем вы задумывали.

Видимость команды по ролям — это не защита данных. Скрытый в интерфейсе справочник пользователь с правом чтения откроет через Все функции или по навигационной ссылке. Ограничивайте доступ правами роли.

Проверка состава подсистемы из кода

Иногда нужно программно узнать, входит ли объект в подсистему, например в общем модуле обработки меню:

Подсистема = Метаданные.Подсистемы.Склад;
Если Подсистема.Состав.Содержит(Метаданные.Документы.ПоступлениеТоваров) Тогда
    Сообщить("Документ входит в раздел «Склад»");
КонецЕсли;

Для вложенной подсистемы обращаются через родителя: Метаданные.Подсистемы.Склад.Подсистемы.Поступления.

Подсистема в интерфейсе «Такси» и в расширении

Что видит пользователь в «Такси»

  • 🗂️ Подсистемы верхнего уровня с флажком «Включать в командный интерфейс» — разделы панели разделов.
  • 📂 Вложенные подсистемы — группы команд внутри раздела.
  • 🖼️ Картинка подсистемы — значок раздела. Без картинки раздел выглядит пустым квадратом рядом с типовыми, поэтому подберите значок из общих картинок или добавьте свой в Общие → Общие картинки.

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

Подсистема в расширении конфигурации

Для типовых баз на поддержке это основной путь. Порядок:

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

Чтобы добавить свою команду в существующий типовой раздел, заимствуйте саму типовую подсистему и включите в её состав объекты расширения. Сама типовая подсистема при этом не меняется, и обновления релизов проходят без объединения.

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

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

Ошибки при добавлении подсистем, которые всплывают позже

Шаги выше закрывают базовую настройку. Эти проблемы обычно обнаруживаются через неделю–две работы:

  • 🔁 Объект в двух разделах без нужды. Справочник, включённый в пять подсистем, засоряет панели навигации. Общие справочники держите в одном разделе НСИ, а в остальных — только если ими реально пользуются каждый день.
  • 🏷️ Имя подсистемы переименовали после выпуска. Синоним менять безопасно, а вот имя используется в коде и в навигационных ссылках, которые пользователи сохранили в избранном. После переименования такие ссылки перестают открываться.
  • 🧩 Объект не входит ни в одну подсистему. Он не попадёт в командный интерфейс и будет доступен только через Все функции. При проверке конфигурации заведите правило: у каждого нового объекта заполнена вкладка «Подсистемы».
  • 🎛️ Настройки командного интерфейса потерялись. Порядок команд хранится в конфигурации, а личные настройки пользователя — отдельно. Если пользователь когда-то сам перетасовал панель, ваши новые настройки порядка он может не увидеть до сброса своих настроек. В типовых конфигурациях на БСП это делается в Администрирование → Настройки пользователей и прав.
  • 🖼️ Картинка большого размера. Значок, нарисованный под другой размер, растягивается и выглядит размытым. Берите картинки из типовых или готовьте свои в нескольких вариантах масштаба.

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

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