Как убрать документ из подсистемы в 1С:ERP, если в конфигураторе его там нет?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

Разберем довольно распространенную и на первый взгляд мистическую проблему, с которой часто сталкиваются разработчики при работе с крупными конфигурациями на платформе "1С:Предприятие 8.3" (такими как 1С:ERP, 1С:Комплексная автоматизация или 1С:Управление торговлей).

Представим ситуацию: в пользовательском интерфейсе в разделе Продажи / Оптовые продажи отображается документ, например СТ_ШаблонДокумента. Нам необходимо убрать его из этого раздела. Мы открываем конфигуратор, находим этот документ, смотрим свойства его состава — но флажок принадлежности к подсистеме "Оптовые продажи" снят. Мы открываем саму подсистему, проверяем ее состав — документа там тоже нет. В расширениях конфигурации его видимость также не настроена.

В чем же дело? Каким образом объект "пролезает" в командный интерфейс подсистемы в обход стандартных механизмов платформы? Выясним причины этого поведения и рассмотрим подробные инструкции по устранению проблемы.

1. Проверка параметризуемых общих команд

Это самая частая причина подобных "чудес". Платформа "1С:Предприятие 8.3" позволяет создавать Общие команды, которые могут параметризоваться типом определенного объекта. Если в конфигурации существует общая команда, которая добавлена в состав подсистемы ОптовыеПродажи, а в свойстве этой команды ТипПараметраКоманды указан наш документ СТ_ШаблонДокумента, то платформа автоматически выведет эту команду в панель навигации или панель действий этой подсистемы.

Разберем по шагам, как это исправить:

  1. Откроем конфигуратор и перейдем в ветку метаданных Общие -> Общие команды.
  2. Проанализируем команды, которые могут относиться к подсистеме продаж (например, команды печати, открытия связанных файлов, ввода на основании или работы с шаблонами).
  3. Откроем свойства подозреваемой команды и проверим свойство Группа (она должна указывать на панель навигации или действий нужной подсистемы) и свойство ТипПараметраКоманды.
  4. Если в типе параметра выбран наш документ СТ_ШаблонДокумента, то именно эта команда "вытягивает" его в интерфейс. Нам нужно либо исключить документ из типа параметра команды, либо убрать саму команду из подсистемы.

2. Настройка командного интерфейса подсистемы

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

Проанализируем ситуацию через интерфейс настройки подсистемы:

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

3. Динамическое подключение через механизмы БСП

Современные конфигурации уровня ERP практически полностью построены на Библиотеке стандартных подсистем (БСП). В БСП многие элементы интерфейса, командные панели форм, кнопки печати и заполнения формируются программно в режиме "1С:Предприятие".

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

  1. Подключаемые команды печати: Если для документа зарегистрированы команды печати через общий модуль УправлениеПечатьюПереопределяемый, система может автоматически выводить связанные команды в панели разделов.
  2. Создание на основании и заполнение: Проверим регистрацию документа в переопределяемых модулях, таких как СозданиеНаОснованииПереопределяемый или ЗаполнениеОбъектовПереопределяемый.

Посмотрим на пример кода в переопределяемом модуле БСП, который регистрирует объект для динамического вывода команд:


Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
    // Документ может быть зарегистрирован здесь программно
    СписокОбъектов.Добавить(Документы.СТ_ШаблонДокумента);
КонецПроцедуры

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

4. Использование Автоматизированных Рабочих Мест (АРМ) и Общих форм

Часто то, что пользователь воспринимает как стандартный список документов в панели навигации подсистемы, на самом деле является встроенной Общей формой или формой Обработки (АРМ), которая включена в состав подсистемы. Внутри этой формы программно настраивается вывод списков различных документов.

Выясним причину с помощью глобального поиска по конфигурации:

  1. Нажмем комбинацию клавиш Ctrl + Shift + F для вызова диалога глобального поиска.
  2. В строке поиска введем имя нашего документа: СТ_ШаблонДокумента.
  3. Проанализируем результаты поиска. Нам нужно искать места в коде модулей форм (особенно в процедурах ПриСозданииНаСервере), где динамически настраиваются пути к динамическим спискам или элементам навигации.

5. Очистка кэша метаданных и обновление базы

Если вы уже исключили документ из состава подсистемы в конфигураторе (или отключили его в расширении), но в режиме предприятия он продолжает отображаться, это связано с кэшированием динамического меню платформы или кэшем данных БСП.

Выполним очистку кэша по шагам:

  1. Очистим локальный кэш конфигурации на компьютере пользователя (путем удаления базы из списка запуска и ее повторного добавления или ручной очистки папки %localappdata%\1C\1Cv8).
  2. Запустим информационную базу в режиме "1С:Предприятие" с параметром запуска /C СтартОбновленияИнформационнойБазы (или /C StartInfobaseUpdate). Это заставит механизмы БСП обновить внутренние регистры сведений, которые отвечают за построение динамического интерфейса и командных панелей.

Применяя эти методы последовательно, мы обязательно найдем скрытую связь нашего документа с подсистемой и сможем корректно настроить интерфейс программы 1С:ERP.

← На главную