Разработка и Конфигурация · 12 мин
Подсистемы в 1С:Предприятие: назначение, настройка и типичные ошибки
Что такое подсистемы в 1С:Предприятие, зачем они нужны, как создать и настроить подсистему, включить объекты метаданных и проверить результат в интерфейсе.
Подсистема в 1С:Предприятие — это объект метаданных, который определяет, какие разделы видит пользователь в интерфейсе прикладного решения. Проще говоря, подсистемы формируют панель разделов: «Продажи», «Склад», «Зарплата и кадры», «Администрирование» — всё это подсистемы. Каждый справочник, документ, отчёт или обработка включается в одну или несколько подсистем, и именно через них пользователь находит нужные объекты в командном интерфейсе.
Подсистемы не влияют на логику работы программы: если убрать документ из всех подсистем, он продолжит храниться в базе и участвовать в движениях, но станет «невидимым» в стандартной навигации. Доступ к такому объекту сохранится только через «Все функции» или по прямой команде. Поэтому корректная настройка подсистем — это вопрос удобства и порядка в интерфейсе, а не работоспособности учёта.
Понимание устройства подсистем нужно в трёх ситуациях: при доработке типовой конфигурации собственными объектами, при создании собственной конфигурации с нуля и при разборе чужой конфигурации, когда требуется быстро понять, как устроена навигация. Ниже разобрано, как подсистемы устроены, как их создавать и настраивать, как проверить результат и каких ошибок стоит избегать.
Что такое подсистема и как она устроена
В дереве конфигурации подсистемы находятся в ветке «Общие» → «Подсистемы». Каждая подсистема имеет имя, синоним (отображаемое название раздела), картинку для панели разделов и состав — список включённых в неё объектов метаданных. Один и тот же объект может входить сразу в несколько подсистем: например, справочник «Номенклатура» логично показывать и в разделе «Продажи», и в разделе «Склад».
Подсистемы поддерживают иерархию: у подсистемы могут быть дочерние подсистемы. Родительская подсистема образует раздел верхнего уровня в панели разделов, а вложенные становятся группами внутри него. Так строится многоуровневая навигация в крупных конфигурациях вроде «1С:ERP» или «1С:Комплексная автоматизация», где разделов десятки.
Важно понимать связь подсистем с командным интерфейсом. Когда объект включён в подсистему, платформа автоматически добавляет его команды (открытие списка, создание, отчёты) в панель навигации и панель действий соответствующего раздела. Разработчик может вручную настроить порядок и видимость этих команд через редактор командного интерфейса подсистемы.
Зачем нужны подсистемы на практике
Первая задача подсистем — навигация. В типовой конфигурации сотни объектов, и без группировки по разделам пользователь просто не найдёт нужный документ. Подсистемы превращают плоский список объектов в понятную структуру, соответствующую бизнес-процессам компании: закупки, продажи, производство, финансы.
Вторая задача — разграничение интерфейсов под разные роли. Подсистемы связаны с функциональными опциями и правами доступа: можно скрыть целый раздел для пользователей, которым он не нужен. Кладовщик видит складские документы, бухгалтер — регламентированные отчёты, и никто не перегружен лишними пунктами меню.
Третья задача — поддерживаемость конфигурации. Когда каждый новый объект сразу включается в осмысленную подсистему, конфигурация остаётся читаемой. В проектах, где подсистемы игнорировали, через год-два доработок разделы превращаются в свалку, а часть объектов вообще «теряется» и доступна только через «Все функции».
При доработке типовой конфигурации не создавайте отдельную подсистему под каждый новый объект. Один-два собственных раздела с понятным названием («Дополнительные отчёты», «Интеграции») воспринимаются пользователями лучше, чем десяток разделов по одному документу в каждом.
Как создать подсистему и включить в неё объекты
Создание подсистемы выполняется в конфигураторе и занимает несколько минут. Последовательность действий:
- 1Откройте конфигуратор и дерево конфигурации, перейдите в ветку «Общие» → «Подсистемы».
- 2Добавьте новую подсистему через контекстное меню «Добавить» и задайте имя (латиницей, без пробелов) и синоним — именно синоним увидят пользователи.
- 3При необходимости назначьте картинку раздела: она отображается в панели разделов рядом с названием.
- 4Откройте свойства подсистемы, нажмите кнопку выбора состава и отметьте флажками справочники, документы, отчёты и обработки, которые должны входить в раздел.
- 5Откройте «Командный интерфейс» подсистемы и настройте порядок и видимость команд: перетащите важные команды выше, скройте редко используемые.
- 6Обновите конфигурацию базы данных (F7) и проверьте раздел в режиме предприятия под целевой ролью пользователя.
Включить объект в подсистему можно и с другой стороны — из свойств самого объекта. В палитре свойств справочника или документа есть поле «Подсистемы» с кнопкой выбора: там отмечаются все разделы, в которых объект должен отображаться. Оба способа равнозначны, изменения отражаются в обоих местах.
Для вложенной подсистемы в свойствах дочернего раздела указывается родительская подсистема. Учтите: если родительская подсистема скрыта у пользователя функциональной опцией или правами, вся ветка вместе с дочерними разделами тоже не отобразится.
Настройка командного интерфейса подсистемы
После включения объектов платформа формирует команды автоматически, но порядок по умолчанию редко бывает оптимальным. Редактор командного интерфейса открывается из свойств подсистемы и показывает три области: панель навигации (команды перехода к спискам), панель действий (команды создания документов, отчёты, обработки) и общие настройки видимости.
Практические рекомендации по настройке: в панели навигации оставляйте 5–9 самых востребованных списков, остальное убирайте или переносите ниже — длинный список команд читается плохо. Команды создания документов выносите в панель действий только для тех документов, которые пользователи заводят ежедневно. Для отчётов проверяйте, что в свойствах отчёта включён вывод в командный интерфейс, иначе он не появится в разделе даже при включении в состав подсистемы.
Отдельный инструмент — «Параметры командного интерфейса» конфигурации, где настраивается порядок самих разделов в панели разделов. Разделы, с которыми работают чаще всего, разумно ставить первыми: пользователь открывает программу и сразу видит нужный раздел.
Как проверить результат
Подсистема видна в панели разделов с заданным синонимом и картинкой
Раздела нет — проверьте функциональные опции и права роли
Списки и команды создания присутствуют в панелях навигации и действий
Команды отсутствуют — объект не включён в состав или скрыт в командном интерфейсе
Под пользователем с целевой ролью видны только нужные команды
Пользователь видит лишние объекты или не видит нужные — пересмотрите права
Часто используемые разделы расположены первыми
Разделы идут в случайном порядке — настройте порядок в параметрах командного интерфейса
Подсистемы, роли и функциональные опции
Подсистемы тесно связаны с механизмом прав. Роль в 1С определяет, к каким объектам у пользователя есть доступ, а командный интерфейс автоматически скрывает команды недоступных объектов. Поэтому один и тот же раздел у администратора и у менеджера выглядит по-разному — это нормальное поведение, а не ошибка настройки.
Функциональные опции позволяют управлять видимостью целых подсистем и отдельных объектов без изменения ролей. Например, если в компании не ведётся производственный учёт, соответствующая функциональная опция отключена, и раздел «Производство» не показывается никому. При доработках собственные объекты тоже стоит привязывать к функциональным опциям, если они нужны не всем внедрениям.
Типичная ситуация: разработчик добавил объект в подсистему, у себя всё видит, а пользователь — нет. Причина почти всегда в правах: у роли пользователя нет прав на новый объект, и платформа корректно скрывает команду. Проверка выполняется запуском под конкретным пользователем, а не под полными правами.
Типичные ошибки при работе с подсистемами
Большинство проблем с подсистемами возникает не из-за сложности механизма, а из-за невнимательности при доработках. Ниже собраны ошибки, которые встречаются чаще всего.
Отдельно стоит упомянуть синонимы. Имя подсистемы пишется латиницей без пробелов и используется в коде, а синоним — это то, что видит пользователь. Синоним должен быть понятен не программисту, а сотруднику: «Закупки» вместо «Purchasing», «Складской учёт» вместо аббревиатуры, известной только разработчику.
Подсистемы в типовых конфигурациях и при доработках
В типовых решениях («1С:Бухгалтерия», «1С:Управление торговлей», «1С:Зарплата и управление персоналом») структура подсистем уже продумана и соответствует прикладной логике. При внедрении собственных доработок есть два подхода: включать новые объекты в существующие типовые разделы или создавать отдельные подсистемы для доработок.
Сравнение вариантов
Пользователь видит новые объекты рядом с привычными. Минус: изменения типовых объектов усложняют обновление конфигурации.
Все собственные объекты собраны в одном разделе, обновление проще. Минус: пользователю приходится переключаться между разделами.
Раздел появляется только там, где доработка включена. Подходит для тиражируемых решений, требует дополнительной настройки.
Выбор зависит от масштаба доработки. Один-два новых отчёта логично добавить в существующий раздел через механизм расширения конфигурации — это самый безопасный путь. Крупный блок функциональности (например, собственный модуль интеграции) лучше оформить отдельной подсистемой. Расширения конфигурации вообще предпочтительнее прямых изменений: они позволяют добавлять подсистемы и включать в них объекты без снятия конфигурации с поддержки.
Что важно запомнить
Подсистемы формируют разделы интерфейса и определяют, какие объекты видит пользователь, но не влияют на логику учёта. Каждый новый объект включайте в подсистему, проверяйте командный интерфейс и права ролей, а типовые конфигурации дорабатывайте через расширения, чтобы не потерять изменения при обновлении.
Частые вопросы о подсистемах в 1С
Что произойдёт, если объект не включён ни в одну подсистему?
Объект продолжит полноценно работать: данные хранятся, проведение и движения выполняются, программный доступ сохраняется. Но в стандартном интерфейсе его не будет видно — открыть такой объект можно только через меню «Все функции» (если оно включено) или программно. Для пользователей это выглядит как отсутствие объекта в программе.
Можно ли включить один объект в несколько подсистем?
Да, это штатная возможность. Один справочник или документ может отображаться сразу в нескольких разделах — например, «Продажи» и «Склад». Команды объекта появятся в командном интерфейсе каждой из подсистем, и это не создаёт дублей данных: объект в конфигурации остаётся один.
Почему пользователь не видит раздел или команду, хотя объект включён в подсистему?
Наиболее частые причины — отсутствие прав у роли пользователя на этот объект, отключённая функциональная опция, к которой привязан объект или подсистема, либо ручное скрытие команды в настройках командного интерфейса. Проверяйте в указанном порядке, запуская сеанс под учётной записью конкретного пользователя.
Можно ли добавить подсистему через расширение конфигурации?
Да, расширения позволяют создавать собственные подсистемы и включать в них как собственные, так и заимствованные объекты типовой конфигурации. Это рекомендуемый способ доработки интерфейса, поскольку типовая конфигурация остаётся на поддержке и обновляется штатно.
Как изменить порядок разделов в панели разделов?
Порядок настраивается в конфигураторе через «Параметры командного интерфейса» корня конфигурации: там перечислены все подсистемы верхнего уровня, и их можно перемещать вверх и вниз. Кроме того, пользователь в режиме предприятия может частично настроить вид панели разделов под себя через настройки интерфейса, если это не запрещено административно.
Влияют ли подсистемы на скорость работы программы?
Напрямую — практически нет, это интерфейсный механизм группировки команд. Косвенное влияние возможно: раздел с очень большим числом команд в панели навигации отрисовывается чуть дольше, а избыточная видимость лишних объектов замедляет работу пользователя, а не системы. Проблемы производительности стоит искать в запросах и коде, а не в структуре подсистем.