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