В процессе разработки и доработки конфигураций на платформе 1С:Предприятие 8.3 программисты часто сталкиваются с ситуацией, когда новый или заимствованный объект (например, документ или справочник) привязан к определенной подсистеме, однако упорно не желает появляться в режиме «1С:Предприятие». Более того, при попытке настроить командный интерфейс этой подсистемы в самом Конфигураторе мы обнаруживаем, что нужного объекта просто нет в списке доступных команд.
Давайте подробно разберем эту проблему, выясним ее основные причины и пошагово рассмотрим способы ее решения, чтобы восстановить корректное отображение объектов в интерфейсе системы.
Это самая распространенная и банальная причина, с которой сталкиваются как начинающие, так и опытные разработчики. Для того чтобы платформа автоматически создала команды открытия списка, создания нового элемента или записи для вашего прикладного объекта, у него должно быть активно соответствующее свойство.
Проанализируем этот механизм подробнее. Если у объекта (например, документа ТребованиеНакладнаяПеремещение) отключено свойство генерации стандартных команд, то платформе попросту нечего выводить в командный интерфейс подсистемы. Объект включен в состав, но команд у него нет, поэтому редактор интерфейса игнорирует его.
Разберем по шагам, как это исправить:
Alt + Enter).Истина) напротив этого свойства.Если доработка базы выполнялась сторонним разработчиком, высока вероятность того, что новые объекты (или изменения существующих) были реализованы через расширения конфигурации. Это современный и безопасный стандарт кастомизации типовых решений.
Выясним причину проблемы в данном контексте: если сам документ ТребованиеНакладнаяПеремещение и подсистема добавлены (или заимствованы) в расширение, то настраивать командный интерфейс подсистемы в основной конфигурации абсолютно бесполезно. Основная конфигурация ничего «не знает» о тех связях и объектах, которые живут исключительно в пространстве расширения.
Рассмотрим порядок действий для решения этой проблемы:
Конфигурация -> Расширения конфигурации.Иногда разработчики намеренно отключают свойство Использовать стандартные команды, чтобы реализовать собственную логику открытия форм, проверки прав или заполнения параметров. В этом случае создается подчиненный объект метаданных — Команда.
Если вы пошли по этому пути, проанализируем настройки созданной команды. Любая произвольная команда должна понимать, в какой именно раздел командного интерфейса платформе следует ее поместить. Если у команды не заполнено свойство «Группа», она не попадет в редактор командного интерфейса подсистемы.
Для исправления ситуации выполните следующие шаги:
Команды.Панель навигации.Обычное — для отображения в левой панели навигации раздела;Панель действий.Создать — для команд создания новых объектов.В качестве примера рассмотрим, как выглядит программный вызов формы списка из модуля такой команды, если стандартное открытие было переопределено разработчиком:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
// Открываем форму списка с передачей необходимых параметров фильтрации
ПараметрыФормы = Новый Структура("Отбор", Новый Структура("Проведен", Истина));
ОткрытьФорму("Документ.ТребованиеНакладнаяПеремещение.ФормаСписка", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно);
КонецПроцедуры
Иногда визуальное сопоставление вводит разработчика в заблуждение. Нам может казаться, что объект привязан к подсистеме (например, если мы взвели флажок в свойствах самого документа), но в структуре метаданных подсистемы эта связь не зафиксировалась корректным образом из-за сбоев или частичного объединения конфигураций.
Давайте проверим состав подсистемы «от обратного»:
Если все предыдущие шаги проверены, свойства установлены верно, но объект так и не появился в списке командного интерфейса подсистемы, мы, скорее всего, столкнулись с классическим «глюком» платформы, вызванным многократным выполнением динамического обновления базы данных (так называемым «демонским» обновлением).
В процессе динамического обновления кэш метаданных в локальном профиле разработчика может рассинхронизироваться с реальным состоянием конфигурации базы данных. Чтобы решить эту проблему, выполните следующие действия:
F7)./ClearCache или вручную удалить временные папки, расположенные по пути:
%localappdata%\1C\1Cv8 (и соседнюю папку в %appdata%\1C\1Cv8).Применяя эти комплексные методы диагностики, мы всегда сможем быстро определить причину исчезновения объектов из интерфейса и вернуть их на панели навигации для удобства пользователей.