При разработке прикладных решений или кастомизации типовых конфигураций на платформе 1С:Предприятие 8.3 разработчики нередко сталкиваются со странным поведением интерфейса: после создания новой подсистемы и включения в неё различных объектов (справочников, документов, отчетов и журналов) в режиме «1С:Предприятие» отображаются только отчеты и журналы документов. Справочники и документы при этом остаются невидимыми на панели разделов, хотя у пользователя могут быть полные права, а сами объекты без проблем открываются через команду «Все функции» (или «Функции для технического специалиста»).
В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем ключевое свойство метаданных, о котором часто забывают программисты, и рассмотрим универсальный чек-лист по диагностике командного интерфейса 1С.
Как показывает практика и обсуждения практикующих разработчиков, в подавляющем большинстве случаев виновником является отключенное свойство Использовать стандартные команды у конкретного объекта метаданных (справочника или документа). Выясним, почему это влияет на интерфейс:
Использовать стандартные команды, платформа блокирует генерацию стандартных команд для этого объекта. В результате системе просто нечего выводить в командный интерфейс подсистемы, и объект «исчезает» для конечного пользователя. При этом журналы и отчеты продолжают отображаться, так как у них механизмы генерации команд могут отличаться или эти флаги изначально были взведены.Решение проблемы по шагам:
Справочник.Контрагенты).Использовать стандартные команды и установим напротив него флаг (значение Истина).Опытные разработчики 1С при любых проблемах с видимостью элементов в пользовательском интерфейсе рекомендуют сразу проверять классический чек-лист, известный как «правило трех причин». Проанализируем эти три фундаментальных шага:
Если флаг стандартных команд установлен и «правило трех причин» соблюдено, но объекты все равно не выводятся, нам следует проверить еще несколько важных факторов.
Функциональные опции позволяют динамически управлять видимостью интерфейса в зависимости от настроек программы. Если наш справочник или документ привязан к какой-либо функциональной опции, он не появится в интерфейсе до тех пор, пока значение этой опции в режиме предприятия не станет равным Истина (например, через включение соответствующей константы). Проверим свойства объекта в конфигураторе: поле Функциональные опции должно быть либо пустым, либо связанная опция должна быть гарантированно включена. Если функциональная опция хранит значение в константе, проверить её состояние и связанные объекты можно через просмотр констант и функциональных опций. Это не проверяет стандартные команды и роли; совместимость обработки с 8.3 не подтверждена.
Пример программной проверки состояния функциональной опции:
ЗначениеОпции = ПолучитьФункциональнуюОпцию("ИспользоватьУчетПолучка");
Если Не ЗначениеОпции Тогда
ВызватьИсключение "Функциональная опция выключена. Связанные объекты скрыты из интерфейса!";
КонецЕсли;
Если наша база данных запущена в режиме управляемого приложения, а у добавленных справочников или документов созданы только обычные (неуправляемые) формы, стандартные команды открытия списков отображаться не будут. Платформа 1С:Предприятие 8.3 в управляемом интерфейсе требует наличия управляемых форм. Для решения проблемы нам необходимо создать управляемую форму списка для проблемного объекта или перевести конфигурацию на управляемые формы.
В современных конфигурациях, построенных на базе БСП (например, 1С:ERP, 1С:УТ, 1С:КА, 1С:БП), структура метаданных и права доступа кэшируются в специальных служебных регистрах. После добавления новой подсистемы или изменения состава объектов стандартного обновления конфигурации бывает недостаточно. Нам может потребоваться:
/C ЗапуститьОбновлениеИнформационнойБазы.
// Запуск обновления идентификаторов объектов метаданных вручную
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеИнформационнойБазы();
Иногда разработчик ищет проблему в коде или метаданных, в то время как она кроется в индивидуальных настройках конкретного пользователя. Если пользователь ранее вручную настраивал свою панель разделов или панель навигации, система запоминает этот персональный вид. Новые объекты, добавленные разработчиком позже, могут автоматически не появиться на панели действий такого пользователя.
Для исправления ситуации в режиме «1С:Предприятие» перейдем в правый верхний угол нужного раздела, выберем «Настройка навигации» (или «Настройка действий») и нажмем кнопку «Установить стандартные настройки».
Важно помнить о тонкой разнице в ролях 1С между правами Чтение (Read) и Просмотр (View):
Чтение позволяет получать данные программно (например, запросом или в коде модулей).Просмотр отвечает за интерактивное отображение объекта в интерфейсе.Если у роли пользователя на справочник установлено только право Чтение, но снято право Просмотр, объект будет успешно открываться через программный код, но в командном интерфейсе подсистемы его кнопка никогда не появится. Убедимся, что в роли нашего пользователя для нужного объекта стоят оба этих флага.