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