Скрытие подсистем в 1С:Предприятие — стандартная задача при настройке интерфейсов для разных групп пользователей. Например, бухгалтеру не нужны разделы склада, а кладовщику — зарплатные отчёты. Но просто убрать ненужные элементы из меню недостаточно: если подсистема остаётся активной в конфигурации, она продолжает потреблять ресурсы, может конфликтовать с обновлениями или случайно открываться через горячие клавиши.
В этой статье разберём три основных способа скрытия подсистем — от базовых настроек прав до программного удаления из дерева метаданных. Особое внимание уделим нюансам для 1С:ERP, 1С:УТ 11 и 1С:Бухгалтерии 3.0, где структура подсистем наиболее сложная. Также рассмотрим, как избежать типичных ошибок, например, потери доступа к критичным разделам после скрытия родительской подсистемы.
1. Скрытие подсистем через права доступа (для администраторов)
Самый безопасный метод — ограничить видимость подсистемы для конкретных ролей. Это не удаляет её физически, но делает недоступной в интерфейсе. Подходит для типовой конфигурации, где нельзя вносить изменения в метаданные.
Алгоритм действий:
- 🔐 Откройте конфигуратор (
1С:Предприятие → Конфигуратор) под администратором. - 📋 Перейдите в
Администрирование → Пользователи и права → Роли. - 🔍 Выберите роль, для которой нужно скрыть подсистему (например,
Кладовщик). - ⚙️ В разделе
Права на подсистемыснимите галочку с ненужной подсистемы (например,Зарплата).
Важно: если подсистема содержит общие модули или обработки, используемые другими разделами, её скрытие через права может привести к ошибкам. Перед применением проверьте зависимости в Конфигуратор → Отчёт → Анализ использования объектов.
2. Удаление подсистемы из дерева метаданных (для разработчиков)
Если подсистема не используется ни одной ролью, её можно полностью удалить из конфигурации. Это уменьшит размер базы и ускорит работу системы. Однако метод требует осторожности: удаление родительской подсистемы автоматически удаляет все вложенные объекты (отчёты, обработки, справочники).
Пошаговая инструкция:
- Запустите конфигуратор в режиме
Конфигуратор(не1С:Предприятие!). - Откройте дерево метаданных (
Конфигурация → Открыть конфигурацию). - Найдите нужную подсистему в ветке
Подсистемы. - Кликните правой кнопкой и выберите
Удалить. - Сохраните конфигурацию (
Конфигурация → Сохранить конфигурацию) и обновите базу (Конфигурация → Обновить конфигурацию базы данных).
Создать резервную копию базы|Проверить зависимости объектов|Убедиться, что подсистема не используется в бизнес-процессах|Заблокировать доступ пользователей на время изменений
-->
⚠️ Внимание: В 1С:ERP 2.5 и 1С:УТ 11.5 некоторые подсистемы (например,CRMилиБюджетирование) интегрированы с другими модулями. Их удаление может нарушить работу связанных функций, таких как планирование закупок или аналитика продаж.
3. Программное скрытие подсистем через код (для опытных пользователей)
Если нужно динамически скрывать подсистемы в зависимости от условий (например, по дате, версии платформы или настройкам пользователя), используйте программный код. Этот метод гибкий, но требует знания языка 1С.
Пример кода для скрытия подсистемы Зарплата при запуске системы:
Процедура ПриНачалеРаботыСистемы()
Подсистема = Метаданные.Подсистемы.Зарплата;
Подсистема.Видимость = Ложь;
КонецПроцедуры
Где разместить код:
- 📄 В модуле управляемого приложения (
Общий → Модуль управляемого приложения). - 🔄 В обработчике события
ПриНачалеРаботыСистемы. - 🔐 В отдельном общем модуле с правом
Вызов сервера(если нужно скрывать на сервере).
Перед применением программного скрытия проверьте, не используется ли подсистема в Командном интерфейсе или Панелях действий. Иначе пользователи увидят "битые" ссылки в меню.
4. Скрытие подсистем в тонком и веб-клиенте
В тонком и веб-клиенте подсистемы могут отображаться иначе, чем в толстом. Например, в 1С:Бухгалтерии 3.0 веб-версия по умолчанию скрывает некоторые административные разделы. Чтобы управлять видимостью, используйте:
| Клиент | Метод скрытия | Ограничения |
|---|---|---|
| Толстый клиент | Права доступа или удаление из метаданных | Полный контроль, но требует обновления конфигурации |
| Тонкий клиент | Настройка командного интерфейса (Администрирование → Интерфейсы) |
Не все подсистемы можно скрыть без правки конфигурации |
| Веб-клиент | Права доступа + настройка публикации на сервере | Ограничено настройками webinst и apache |
Для веб-клиента дополнительно проверьте настройки публикации в файле default.vrd (для Apache) или в IIS. Например, чтобы скрыть подсистему Администрирование, добавьте в конфиг строку:
DenySubsystem /ru_RU/enterprise/администрирование
5. Типичные ошибки и как их избежать
Ошибка 1: Скрытие подсистемы, от которой зависят другие объекты.
Пример: в 1С:УТ 11 подсистема Склад используется в отчётах Продажи и Закупки. Если её скрыть, эти отчёты перестанут работать. Перед удалением всегда запускайте Анализ использования объектов.
Ошибка 2: Несовместимость с обновлениями.
Если вы удалили подсистему из метаданных, а затем установили обновление конфигурации, она может появиться снова. Чтобы этого избежать, используйте расширения конфигурации или фиксируйте изменения в Конфигуратор → Поддержка → Настройка поддержки.
Что делать, если после скрытия подсистемы пропало меню?
Если после скрытия подсистемы исчезли пункты меню (например, Справочники или Документы), проверьте:
1. Не скрыта ли родительская подсистема (например, Нормативно-справочная информация).
2. Не сбросились ли права у роли Полные права.
3. Не конфликтует ли ваше изменение с последними обновлениями (сравните конфигурацию с эталонной).
Восстановить меню можно через Конфигуратор → Интерфейсы → Командный интерфейс.
6. Альтернативные способы: расширения и внешние обработки
Если вы не хотите изменять основную конфигурацию, используйте расширения или внешние обработки:
- 📦 Расширения конфигурации: позволяют добавлять или скрывать объекты без правки исходной базы. Подходит для типового решения, где нельзя снимать с поддержки.
- 🖥️ Внешние обработки: можно создать обработку, которая будет динамически скрывать подсистемы при запуске. Пример — обработка
УправлениеВидимостьюПодсистем.epf. - 🔄 Обновляемые отчёты: если подсистема содержит только отчёты, их можно перенести в отдельную обработку и открывать по требованию.
Пример кода для расширения, скрывающего подсистему Кадры:
#Область Подсистемы
Подсистема Кадры;
Видимость = Ложь;
#КонецОбласти
⚠️ Внимание: В 1С:ЗУП 3.1 подсистемаКадровый учёттесно интегрирована с расчётом зарплаты. Её скрытие через расширение может привести к ошибкам при формировании отчётовРСВили6-НДФЛ.
7. Как проверить, что подсистема действительно скрыта
После применения изменений проверьте результат в трёх режимах:
- Интерфейс пользователя: войдите под ролью, для которой скрывали подсистему, и убедитесь, что она отсутствует в меню.
- Конфигуратор: откройте дерево метаданных и проверьте, что подсистема удалена (если использовали этот метод).
- Журнал регистрации: запустите действие, которое должно было быть в скрытой подсистеме (например, создание документа), и проверьте, не появляются ли ошибки.
Для глубокой проверки используйте запрос к метаданным:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Имя ИЗ Метаданные.Подсистемы";
Результат = Запрос.Выполнить();
Пока Результат.Следующий() Цикл
Сообщить(Результат.Имя); // Список всех подсистем
КонецЦикла;
Если подсистема скрыта через права, но остаётся видна в Полном интерфейсе (Alt+F12), значит, она не удалена из метаданных, а только ограничена для ролей. Для полного скрытия используйте удаление или программный код.
FAQ: Частые вопросы по скрытию подсистем в 1С
Можно ли скрыть подсистему только для одного пользователя, а не для всей роли?
Да, но не через стандартные права. Нужно создать индивидуальную роль для пользователя в Администрирование → Пользователи, скопировать в неё права основной роли и убрать галочку с ненужной подсистемы. Либо использовать программный код в модуле сеанса:
Если Пользователь.Имя = "ИвановИИ" Тогда
Метаданные.Подсистемы.Зарплата.Видимость = Ложь;
КонецЕсли;
Почему после обновления конфигурации скрытая подсистема появилась снова?
Это происходит, если подсистема была удалена из метаданных, а не скрыта через права. При обновлении типовой конфигурации 1С восстанавливает исходную структуру. Чтобы избежать этого:
- Используйте расширения вместо прямого удаления.
- Фиксируйте изменения в
Конфигуратор → Поддержка → Настройка поддержки. - Скрывайте подсистему через права доступа, а не удаление.
Как скрыть подсистему в мобильном приложении 1С?
В мобильном клиенте 1С:Предприятие подсистемы скрываются через:
- Права доступа (аналогично десктопной версии).
- Настройку мобильного интерфейса в конфигураторе (
Конфигурация → Мобильное приложение → Интерфейсы). - Публикацию на сервере: в файле
mobileapp.publishможно исключить ненужные подсистемы.
Обратите внимание: в 1С:Мобильная торговля некоторые подсистемы (например, Касса) нельзя скрыть без потери функциональности.
Можно ли скрыть подсистему только на определённом рабочем месте?
Да, для этого:
- Создайте отдельный интерфейс в конфигураторе (
Конфигурация → Интерфейсы). - Настройте видимость подсистем для этого интерфейса.
- Привяжите интерфейс к конкретному пользователю или рабочему месту через
Администрирование → Настройки пользователя.
В 1С:ERP 2.5 для этого также можно использовать профили групп доступа.
Что делать, если после скрытия подсистемы перестали работать отчёты?
Это означает, что отчёты зависели от объектов скрытой подсистемы. Решения:
- 🔄 Восстановите подсистему и скрывайте только ненужные элементы внутри неё (например, отдельные отчёты).
- 📊 Перенесите отчёты в другую подсистему через конфигуратор.
- 🛠️ Исправьте код отчётов, убрав зависимости от скрытой подсистемы (например, замените обращения к
Подсистема.Зарплата.Модульна прямые вызовы).
В 1С:Бухгалтерии 3.0 частая проблема — зависимость отчётов Налоговая отчётность от подсистемы Зарплата. Решается переносом общих модулей.