Почему новая подсистема не показывает справочники и документы в 1С:Предприятие 8.3?

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

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

В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем ключевое свойство метаданных, о котором часто забывают программисты, и рассмотрим универсальный чек-лист по диагностике командного интерфейса 1С.

Главная причина: свойство «Использовать стандартные команды»

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

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

Решение проблемы по шагам:

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

Золотое «Правило трех причин» в 1С

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

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

Разберем альтернативные и более глубокие причины скрытия объектов

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

1. Влияние функциональных опций (ФО)

Функциональные опции позволяют динамически управлять видимостью интерфейса в зависимости от настроек программы. Если наш справочник или документ привязан к какой-либо функциональной опции, он не появится в интерфейсе до тех пор, пока значение этой опции в режиме предприятия не станет равным Истина (например, через включение соответствующей константы). Проверим свойства объекта в конфигураторе: поле Функциональные опции должно быть либо пустым, либо связанная опция должна быть гарантированно включена. Если функциональная опция хранит значение в константе, проверить её состояние и связанные объекты можно через просмотр констант и функциональных опций. Это не проверяет стандартные команды и роли; совместимость обработки с 8.3 не подтверждена.

Пример программной проверки состояния функциональной опции:


ЗначениеОпции = ПолучитьФункциональнуюОпцию("ИспользоватьУчетПолучка");
Если Не ЗначениеОпции Тогда
    ВызватьИсключение "Функциональная опция выключена. Связанные объекты скрыты из интерфейса!";
КонецЕсли;

2. Работа в управляемом приложении с обычными формами

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

3. Кэширование и специфика БСП (Библиотеки стандартных подсистем)

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


// Запуск обновления идентификаторов объектов метаданных вручную
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеИнформационнойБазы();

4. Пользовательские настройки панели навигации

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

Для исправления ситуации в режиме «1С:Предприятие» перейдем в правый верхний угол нужного раздела, выберем «Настройка навигации» (или «Настройка действий») и нажмем кнопку «Установить стандартные настройки».

5. Права доступа: «Чтение» против «Просмотра»

Важно помнить о тонкой разнице в ролях 1С между правами Чтение (Read) и Просмотр (View):

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

← На главную