Как сделать постоянной видимость колонки в табличной части документа в 1С?

Программист 1С v8.3 (Обычные формы) Управленческий учет Промышленность, строительство и АПК
← На главную

При работе с типовыми конфигурациями на обычных формах (например, 1С:Управление производственным предприятием 1.3 или 1С:Комплексная автоматизация 1.1) пользователи часто сталкиваются с ситуацией, когда нужная колонка табличной части (например, Проект в документе ОтчетПроизводстваЗаСмену) скрыта по умолчанию. Пользователям приходится каждый раз открывать окно «Настройка списка…» и вручную проставлять флаг видимости. Разберем, почему так происходит и как зафиксировать отображение реквизита на форме навсегда.

Причины скрытия колонок в обычном приложении

Проанализируем основные факторы, влияющие на отображение колонок табличного поля:

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

Разбор типичной ошибки разработчика

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


// Ошибочный вариант: попытка обратиться к колонке через объект данных
ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(
    ТехнологическиеОперации["Проект"],
    ПоказыватьВДокументахСчетаУчета И ОтражатьВБухгалтерскомУчете
);

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

Способ 1. Программное включение видимости в модуле формы

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

Прямое присвоение свойства видимости колонке элемента формы:


Процедура ПриОткрытии()
    
    // Вызов типовой логики формы
    // ...
    
    // Принудительно включаем видимость колонки "Проект"
    ЭлементыФормы.ТехнологическиеОперации.Колонки.Проект.Видимость = Истина;
    
КонецПроцедуры

Если в конфигурации используется типовой общий модуль ОбработкаТабличныхЧастей, передадим в процедуру корректную ссылку на колонку элемента формы:


ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(
    ЭлементыФормы.ТехнологическиеОперации.Колонки.Проект,
    Истина
);

Размещение этого кода в самом конце процедуры ПриОткрытии() позволяет гарантированно переопределить как типовые алгоритмы видимости, так и загруженные персональные настройки пользователя.

Способ 2. Решение без изменения конфигуратора (пользовательский метод)

Если конфигурация находится на поддержке без возможности внесения изменений в код, применим административные и пользовательские методы:

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