Почему не отображается колонка табличной части документа на управляемой форме в 1С

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

При разработке или доработке конфигураций на платформе 1С:Предприятие 8.3 разработчики часто сталкиваются с ситуацией, когда колонка табличной части документа присутствует в конфигураторе, у нее включена видимость, нет условий в условном оформлении, однако в режиме 1С:Предприятие она отсутствует на форме. Более того, при попытке настроить видимость через меню «Еще — Изменить форму» нужный реквизит вовсе отсутствует в списке доступных полей.

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

1. Влияние функциональных опций на реквизиты и типы данных

Самая распространенная причина полного исчезновения поля из интерфейса и из окна настройки формы — работа механизма функциональных опций (ФО). Если функциональная опция выключена, платформа полностью скрывает связанные с ней элементы интерфейса от пользователя.

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

  1. Функциональная опция на реквизит табличной части: откроем дерево метаданных конфигуратора, найдем наш документ, развернем табличную часть, нажмем правой кнопкой мыши на реквизите и выберем пункт «Дополнительно». На вкладке «Функциональные опции» проверим, в состав каких опций входит данный реквизит.
  2. Функциональная опция на ссылочный объект (тип реквизита): если сам реквизит ТЧ не привязан к ФО, проверим объект метаданных, тип которого он принимает (например, документ ЗаказПокупателя). Если сам документ ЗаказПокупателя включен в функциональную опцию (например, РезервированиеЗапасов или ИспользоватьЗаказыПокупателей), и эта опция в режиме предприятия отключена, все реквизиты конфигурации с этим типом данных автоматически исключаются платформой из форм.
  3. Функциональная опция на элемент управляемой формы: откроем свойства элемента формы (колонки) в палитре свойств и проверим свойство «Функциональные опции».

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

2. Ограничение прав доступа на уровне ролей и RLS

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

Проанализируем права текущего пользователя по следующим направлениям:

  1. Право «Просмотр» на конкретный реквизит табличной части документа.
  2. Права «Чтение» и «Просмотр» на ссылочный тип данных (справочник или документ, на который ссылается колонка). Если пользователю запрещен просмотр заказов покупателей, то и колонка для выбора заказа будет скрыта.
  3. Ограничения на уровне записей (RLS) — если шаблон ограничений отсекает доступ к таблице целиком.

3. Параметрические функциональные опции

Функциональная опция может быть параметрической — ее действие зависит от значения определенного параметра (например, организации, подразделения или типа склада). Если в контексте открываемой формы параметр функциональной опции не был установлен или рассчитан разработчиком, опция считается выключенной.

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


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

4. Кэшированные пользовательские настройки формы

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

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

  1. В правом верхнем углу формы нажмем «Еще» $\rightarrow$ «Изменить форму».
  2. В открывшемся окне настроек нажмем кнопку «Еще» $\rightarrow$ «Установить стандартные настройки».

В случаях, когда требуется программно очистить системные настройки формы для пользователя, воспользуемся объектом ХранилищеСистемныхНастроек:


ХранилищеСистемныхНастроек.Удалить("Документ.ПрочиеРасходы.Форма.ФормаДокумента/НастройкиФормы", "", ИмяПользователя());

5. Программное управление видимостью и удаление элементов

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

Проанализируем поведение формы с помощью отладчика:

  1. Установим точку останова на первой строке процедуры ПриСозданииНаСервере модуля формы.
  2. Добавим в табло выражение: Элементы.ИмяКолонки.Видимость и Элементы.ИмяКолонки.ПользовательскаяВидимость.
  3. Пройдем по шагам (F10 / F11) до завершения процедур ПриЧтенииСозданииНаСервере и ПриОткрытии, отслеживая, в какой момент значение флага меняется на Ложь.

Обратим внимание: если элемент формы был удален программно с помощью метода коллекции Элементы.Удалить(Элементы.ИмяКолонки), обращение к нему по имени вызовет исключение, а сам элемент полностью исчезнет из формы и окна персональных настроек.

6. Видимость родительской группы элементов

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

Пошаговый чек-лист для восстановления видимости колонки

  1. Проверяем состав функциональных опций реквизита ТЧ в конфигураторе (через панель «Дополнительно»).
  2. Проверяем функциональные опции ссылочного типа реквизита (документа, справочника).
  3. Проверяем права текущей роли на реквизит и ссылочный тип данных.
  4. Выполняем «Установить стандартные настройки» в меню изменения формы в режиме 1С:Предприятие.
  5. Используем отладчик в процедурах ПриСозданииНаСервере и ПриОткрытии для поиска программного скрытия или удаления элемента.
  6. Убеждаемся, что родительские группы колонок доступны и видимы.
← На главную