Почему не скрывается колонка табличной части документа у конкретного пользователя в обычном приложении 1С?

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

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

Разберем подробнее, почему возникает такое поведение платформы «1С:Предприятие» и какие существуют способы гарантированного скрытия колонок.

Причины поведения платформы и жизненный цикл формы

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

  1. Автоматическое восстановление сохраненных настроек: В обычном приложении платформа сохраняет индивидуальные настройки табличных полей (видимость, ширину, порядок колонок и примененные отборы), которые пользователь менял интерактивно через контекстное меню. Восстановление этих настроек происходит автоматически в интервале между событиями ПередОткрытием и ПриОткрытии. В результате сохраненные параметры интерфейса пользователя переопределяют настройки по умолчанию, заданные разработчиком в конфигураторе.
  2. Место хранения пользовательских настроек: Индивидуальные настройки форм сохраняются не в локальном файловом кэше на клиентском компьютере, а в системном хранилище настроек информационной базы. По этой причине смена рабочего места или переустановка платформы не сбрасывает отображение колонок.
  3. Типовые механизмы разграничения прав: В конфигурациях на обычных формах видимость колонок может дополнительно управляться типовыми механизмами интерфейса или регистрами дополнительных прав пользователей, которые инициализируются при создании и открытии формы.

Способ 1. Интерактивный сброс пользовательских настроек

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

  1. Выполним вход в режим «1С:Предприятие» под учетной записью проблемного пользователя.
  2. Откроем документ и нажмем правой кнопкой мыши по области табличной части.
  3. В появившемся контекстном меню выберем пункт «Настройка списка...».
  4. В открывшемся окне нажмем кнопку «Стандартные» (или «Установить стандартные настройки») и применим изменения, нажав «ОК».

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

Способ 2. Программное управление видимостью в процедуре «ПриОткрытии»

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

Рассмотрим пример кода в модуле формы документа:


Процедура ПриОткрытии()
    
    // Принудительно скрываем колонку после применения сохраненных настроек
    ЭлементыФормы.Товары.Колонки.СуммаНДС.Видимость = Ложь;
    
КонецПроцедуры

Такой подход обеспечивает корректное отображение интерфейса без необходимости ручного сброса настроек для каждого пользователя базы данных.

Способ 3. Очистка настроек пользователей через системные механизмы

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

  1. Типовые обработки администрирования: Воспользуемся встроенными обработками конфигурации (например, «Управление настройками пользователей» или «Очистка настроек пользователей»), где выберем нужного пользователя и удалим настройки для требуемого документа.
  2. Программное удаление через хранилище настроек: Воспользуемся методами объекта ХранилищеСистемныхНастроек для удаления сохраненных данных формы конкретного пользователя:

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

Способ 4. Ограничение прав на уровне метаданных

Если колонка табличной части содержит конфиденциальную информацию, которую определенный пользователь вообще не должен видеть, отключения видимости в форме недостаточно. Пользователь сможет снова включить ее через «Настройку списка».

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

← На главную