Разработка и Конфигурация · 10 мин
Как в 1С установить видимость колонок
Как в 1С настроить видимость колонок: в режиме изменения формы, через код на встроенном языке и в динамических списках. Пошаговые инструкции и частые ошибки.
Видимость колонок в 1С настраивается на нескольких уровнях: пользователь может скрыть или показать колонки прямо в режиме «Предприятие» через изменение формы, а разработчик — управлять отображением программно через свойство «Видимость» элемента формы. Выбор способа зависит от задачи: разовая настройка под себя, типовое изменение для всех пользователей или динамическое управление по условиям.
Важно понимать разницу между двумя механизмами. В тонком клиенте и веб-клиенте пользовательские настройки формы сохраняются в хранилище системных настроек и применяются только для конкретного пользователя. Программное изменение свойства «Видимость» действует на всех, кто открывает эту форму, и может зависеть от данных, прав и других условий.
Ниже разобраны оба подхода: настройка видимости колонок без программирования, управление через код на встроенном языке, особенности для динамических списков и табличных частей, а также типичные ошибки, из-за которых колонка «не скрывается», хотя код написан правильно.
Как скрыть или показать колонки через «Изменить форму»
Самый простой способ, не требующий прав на конфигуратор, — режим изменения формы. Откройте нужный список или документ, затем в меню «Ещё» выберите пункт «Изменить форму». В появившемся окне отобразится дерево элементов формы с флажками видимости.
Найдите таблицу (например, «Список» или «Товары») и раскройте её. Снимите флажок у колонки, которую нужно скрыть, или установите у той, которую нужно показать. Нажмите «ОК» — форма перерисуется с новым составом колонок.
Настройка сохраняется автоматически и действует только для текущего пользователя. Другие сотрудники увидят форму в прежнем виде. Если нужно вернуть стандартный вид, снова откройте «Изменить форму» и нажмите «Установить стандартные настройки».
- 1Откройте список или документ с нужной таблицей
- 2В меню «Ещё» выберите «Изменить форму»
- 3Раскройте узел таблицы и снимите флажки у лишних колонок
- 4Нажмите «ОК» и проверьте результат
- 5При необходимости верните стандартные настройки той же командой
Настройка видимости колонок в динамическом списке
Журналы документов, списки справочников и многие отчётные формы построены на динамических списках. Для них работает отдельный механизм — настройка списка через команду «Ещё → Настроить список» (в некоторых конфигурациях — «Настройка списка»).
В открывшемся окне перейдите на закладку, отвечающую за поля (обычно она называется «Выбранные поля» или объединена с общими настройками). Здесь флажками отмечаются колонки, которые будут выведены в список. Порядок колонок меняется кнопками перемещения или перетаскиванием.
Учтите ограничение: состав доступных полей определяется запросом динамического списка и настройками, которые разработчик разрешил менять. Если нужной колонки нет в списке доступных полей, добавить её пользовательской настройкой не получится — потребуется доработка конфигурации.
Программное управление видимостью колонки
Разработчик управляет отображением колонки через свойство «Видимость» элемента формы. Обращение к элементу выполняется через коллекцию «Элементы» объекта «УправляемаяФорма». Код размещается в модуле формы, чаще всего — в обработчике «ПриСозданииНаСервере» или в процедуре, реагирующей на изменение данных.
&НаКлиенте
Процедура СкрытьКолонку(Команда)
Элементы.ТоварыЦена.Видимость = Ложь;
КонецПроцедуры
Здесь «ТоварыЦена» — имя элемента формы, а не имя реквизита. Узнать точное имя можно в конфигураторе: откройте форму, найдите колонку в дереве элементов и посмотрите свойство «Имя». Частая ошибка — обращаться по имени реквизита данных, когда элемент формы назван иначе.
Для условной видимости удобно выносить логику в отдельную процедуру и вызывать её из нескольких обработчиков — например, при изменении вида операции или организации:
&НаКлиенте
Процедура УстановитьВидимостьКолонок()
ЭтоУслуги = (Объект.ВидОперации = ПредопределенноеЗначение(
"Перечисление.ВидыОпераций.Услуги"));
Элементы.ТоварыСклад.Видимость = Не ЭтоУслуги;
КонецПроцедуры
Элементы.ТоварыЦена.Видимость = Ложь; // скрыть колонку
Элементы.ТоварыЦена.Видимость = Истина; // показать колонкуВидимость колонок табличной части и связь с условным оформлением
Колонки табличных частей («Товары», «Услуги», «Начисления») управляются тем же свойством «Видимость». Имя элемента формируется из имени таблицы и имени поля, но проверять его нужно в конфигураторе, потому что при доработках имена могли быть изменены.
Если скрыть нужно не всю колонку, а значения в отдельных строках, свойство «Видимость» не подходит — оно работает на уровне всей колонки. Для построчного управления используется условное оформление формы: создаётся элемент оформления с условием отбора и оформлением «Текст» (пустая строка) или «Доступность».
Ещё один нюанс — свойство «Видимость» у родительской группы. Если колонка находится внутри группы колонок, и у группы видимость отключена, колонка не отобразится независимо от собственного значения свойства. Проверяйте всю цепочку родителей элемента.
Управление видимостью по правам и функциональным опциям
Когда колонка должна быть доступна не всем пользователям, правильнее использовать не программное скрытие, а встроенные механизмы платформы. Функциональные опции позволяют привязать видимость элемента формы к значению константы или параметра: в свойстве колонки «Видимость» указывается связь с функциональной опцией, и платформа управляет отображением автоматически.
Для разграничения по ролям применяются права на реквизиты: если у пользователя нет права «Просмотр» на реквизит, колонка с этим реквизитом не отображается. Это надёжнее программного скрытия, потому что защищает данные на уровне платформы, а не только интерфейса.
Программное управление уместно для бизнес-логики формы: например, колонка «Серия» показывается только когда у номенклатуры включён учёт по сериям. Смешивать подходы не стоит — если видимость уже задана функциональной опцией, дополнительное присвоение в коде может конфликтовать с платформенным механизмом.
Способы управления видимостью колонок
Для разовой настройки под себя; действует только на текущего пользователя, не требует прав разработчика
Для динамических списков; гибкий выбор полей, но ограничен составом запроса
Для условной логики; требует доработки конфигурации и аккуратности с именами элементов
Для постоянных правил по ролям и режимам работы; самый надёжный вариант для разграничения доступа
Как проверить результат и откатить изменения
После настройки через «Изменить форму» достаточно визуально убедиться, что колонка исчезла или появилась, и что остальные колонки не съехали. Дополнительно проверьте связанные функции: итоги по скрытой колонке, сортировку и поиск — они продолжают работать, даже если колонка не видна.
Для программных изменений проверка сложнее. Откройте форму под пользователями с разными ролями, проверьте все ветки условной логики и сценарий обновления формы после записи объекта. Если видимость устанавливается в «ПриСозданииНаСервере», убедитесь, что она не сбрасывается при последующих серверных вызовах.
Откат пользовательских настроек выполняется командой «Установить стандартные настройки» в окне изменения формы. Для программных изменений потребуется вернуть прежний код или обновить конфигурацию из хранилища. Перед доработкой рабочей базы сохраните копию конфигурации.
Как проверить результат
Колонка скрыта или видна согласно настройке для нужного пользователя
Колонка появляется снова после переоткрытия формы — настройка не сохранена
Итоги и сортировка по скрытой колонке работают как раньше
Ошибки при сортировке — колонка удалена из запроса, а не скрыта
У коллег форма выглядит по-прежнему
Изменения затронули всех — применялась доработка конфигурации, а не личная настройка
Частые вопросы
Почему колонка скрывается, но после переоткрытия формы появляется снова?
Программное присвоение видимости выполняется при каждом открытии формы заново. Если код срабатывает только в одном обработчике, а затем другой обработчик или обновление формы возвращает состояние, видимость сбрасывается. Вынесите установку видимости в отдельную процедуру и вызывайте её во всех точках, где меняются условия.
Можно ли скрыть колонку только в некоторых строках таблицы?
Нет, свойство «Видимость» действует на колонку целиком. Для построчного управления используйте условное оформление формы: задайте условие по данным строки и оформление с пустым текстом или недоступностью поля.
Как вернуть колонки списка к виду по умолчанию?
Откройте «Ещё → Изменить форму» и нажмите «Установить стандартные настройки». Для динамического списка дополнительно проверьте «Ещё → Настроить список» — там тоже есть команда возврата к стандартным настройкам.
Почему в «Изменить форму» нет нужной колонки?
В окне изменения формы отображаются только элементы, уже добавленные на форму разработчиком. Если колонки нет в дереве элементов, её нет и в форме — добавить её может только разработчик в конфигураторе или через механизм расширений.
Влияет ли скрытие колонки на производительность списка?
Скрытие через «Изменить форму» почти не влияет: данные всё равно запрашиваются. Если колонку исключить из выбранных полей динамического списка, запрос к базе станет легче, что заметно на больших списках с вычисляемыми полями.
Как скрыть колонку для всех пользователей раз и навсегда?
Личная настройка для этого не подходит. Нужно изменить форму в конфигураторе (снять флажок «Видимость» у элемента), настроить функциональную опцию или ограничить права на реквизит. В типовой конфигурации на поддержке предпочтительнее расширение конфигурации.
Что важно запомнить
Личная видимость колонок настраивается через «Ещё → Изменить форму» или настройку списка и действует только на текущего пользователя. Программно видимость задаётся свойством Элементы.ИмяКолонки.Видимость, при этом важны точное имя элемента и видимость родительских групп. Для разграничения доступа используйте права и функциональные опции, а не скрытие в коде.