Почему объект, включенный в подсистему, не отображается в командном интерфейсе в Конфигураторе 1С?

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

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

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

Причина 1. Отключено свойство «Использовать стандартные команды»

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

Проанализируем этот механизм подробнее. Если у объекта (например, документа ТребованиеНакладнаяПеремещение) отключено свойство генерации стандартных команд, то платформе попросту нечего выводить в командный интерфейс подсистемы. Объект включен в состав, но команд у него нет, поэтому редактор интерфейса игнорирует его.

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

  1. Откройте дерево метаданных в Конфигураторе и найдите проблемный объект (документ или справочник).
  2. Нажмите на него правой кнопкой мыши и выберите пункт «Свойства» (или нажмите комбинацию клавиш Alt + Enter).
  3. В открывшейся панели свойств перейдите на вкладку «Основные».
  4. Найдите свойство «Использовать стандартные команды».
  5. Установите флажок (значение Истина) напротив этого свойства.
  6. После этого откройте командный интерфейс подсистемы — объект должен появиться в списке доступных команд, где вы сможете настроить его видимость.

Причина 2. Особенности разработки в Расширениях конфигурации

Если доработка базы выполнялась сторонним разработчиком, высока вероятность того, что новые объекты (или изменения существующих) были реализованы через расширения конфигурации. Это современный и безопасный стандарт кастомизации типовых решений.

Выясним причину проблемы в данном контексте: если сам документ ТребованиеНакладнаяПеремещение и подсистема добавлены (или заимствованы) в расширение, то настраивать командный интерфейс подсистемы в основной конфигурации абсолютно бесполезно. Основная конфигурация ничего «не знает» о тех связях и объектах, которые живут исключительно в пространстве расширения.

Рассмотрим порядок действий для решения этой проблемы:

  1. Откройте список расширений через меню Конфигурация -> Расширения конфигурации.
  2. Откройте конфигурацию нужного расширения, в котором ведется доработка.
  3. Убедитесь, что интересующий вас документ и подсистема заимствованы в это расширение. Если нет — заимствуйте их.
  4. Откройте свойства подсистемы внутри окна расширения и перейдите в ее командный интерфейс.
  5. Настройте видимость команд документа именно здесь. После применения изменений в расширении объект корректно отобразится в пользовательском режиме.

Причина 3. Свои команды без привязки к группе командного интерфейса

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

Если вы пошли по этому пути, проанализируем настройки созданной команды. Любая произвольная команда должна понимать, в какой именно раздел командного интерфейса платформе следует ее поместить. Если у команды не заполнено свойство «Группа», она не попадет в редактор командного интерфейса подсистемы.

Для исправления ситуации выполните следующие шаги:

  1. В дереве метаданных раскройте ветку проблемного объекта и перейдите в подраздел Команды.
  2. Откройте свойства вашей пользовательской команды.
  3. Найдите свойство «Группа».
  4. Укажите для нее стандартную группу интерфейса, например:
    • Панель навигации.Обычное — для отображения в левой панели навигации раздела;
    • Панель действий.Создать — для команд создания новых объектов.
  5. Сохраните изменения и проверьте командный интерфейс подсистемы.

В качестве примера рассмотрим, как выглядит программный вызов формы списка из модуля такой команды, если стандартное открытие было переопределено разработчиком:


&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    // Открываем форму списка с передачей необходимых параметров фильтрации
    ПараметрыФормы = Новый Структура("Отбор", Новый Структура("Проведен", Истина));
    ОткрытьФорму("Документ.ТребованиеНакладнаяПеремещение.ФормаСписка", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно);
КонецПроцедуры

Причина 4. Некорректное включение в фактический состав подсистемы

Иногда визуальное сопоставление вводит разработчика в заблуждение. Нам может казаться, что объект привязан к подсистеме (например, если мы взвели флажок в свойствах самого документа), но в структуре метаданных подсистемы эта связь не зафиксировалась корректным образом из-за сбоев или частичного объединения конфигураций.

Давайте проверим состав подсистемы «от обратного»:

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

Причина 5. Проблемы с кэшем Конфигуратора или динамическим обновлением

Если все предыдущие шаги проверены, свойства установлены верно, но объект так и не появился в списке командного интерфейса подсистемы, мы, скорее всего, столкнулись с классическим «глюком» платформы, вызванным многократным выполнением динамического обновления базы данных (так называемым «демонским» обновлением).

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

  1. Произведите монопольное обновление конфигурации базы данных (нажмите клавишу F7).
  2. Если это не помогло, полностью закройте Конфигуратор и очистите кэш конфигурации. Для этого можно воспользоваться запуском Конфигуратора с параметром /ClearCache или вручную удалить временные папки, расположенные по пути:
    %localappdata%\1C\1Cv8 (и соседнюю папку в %appdata%\1C\1Cv8).
  3. Запустите Конфигуратор заново и проверьте командный интерфейс. Метаданные обновятся, и скрытый объект станет доступен для редактирования в интерфейсе подсистемы.

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

← На главную