Разберем одну из самых распространенных и в то же время коварных проблем, с которой сталкиваются разработчики 1С при доработке конфигураций: ситуацию, когда новый реквизит табличной части (или обычный реквизит формы) прекрасно виден под правами администратора, но полностью отсутствует в интерфейсе рядового пользователя. Проанализируем причины этого явления и пошагово выясним, как вернуть колонки на место.
Первым делом рассмотрим технический аспект взаимодействия платформы с клиентскими приложениями. В сообщениях форума часто упоминается «демоническое» (динамическое) обновление. Это механизм, позволяющий вносить изменения в конфигурацию без выгона пользователей из базы. Однако именно он часто становится причиной того, что структура формы у пользователя «залипает» в старом состоянии.
Проанализируем механизм возникновения ошибки: при динамическом обновлении сервер приложений 1С может некорректно обновить кэш метаданных для активных сеансов. В результате пользователь продолжает работать с описанием формы, в котором нового реквизита еще не существует.
Что необходимо сделать в этой ситуации:
%AppData%\1C\1cv8\).1C:Enterprise или очистить серверный кэш в каталоге srvinfo (папка snccntx).Если очистка кэша не помогла, перейдем к проверке настроек самого элемента формы. У каждого элемента управления в 1С есть два похожих, но разных по смыслу свойства: Видимость и «Пользовательская видимость».
Рассмотрим подробнее свойство «Пользовательская видимость». Оно находится в палитре свойств элемента формы. Нажав на кнопку с лупой рядом с этим полем, мы увидим таблицу со списком всех ролей конфигурации. Если для роли «Менеджер» или «Пользователь» галочка снята, то колонка будет скрыта на уровне платформы, даже если у пользователя есть полные права на чтение и изменение данных реквизита.
Важный момент: при добавлении нового реквизита в существующую форму платформа не всегда автоматически проставляет видимость для всех ролей. Проверьте, включен ли ваш новый реквизит Комментарий для всех необходимых профилей доступа в этом окне.
Выясним еще одну вероятную причину — использование Функциональных опций (ФО). Если реквизит или элемент формы привязан к функциональной опции, которая в данный момент выключена, платформа полностью исключит этот элемент из интерфейса.
Проверим два места в конфигураторе:
Истина.Иногда причина кроется в программном коде, который динамически управляет составом колонок. Посмотрим на процедуру ПриСозданииНаСервере. Если в конфигурации реализован механизм «универсальных» форм или используются программные надстройки для разных ролей, код может принудительно скрывать «лишние» колонки.
Проанализируем ситуацию через поиск (Ctrl+Shift+F). Выполним поиск по имени нового реквизита Комментарий во всем тексте конфигурации. Нам нужно убедиться, что нигде не встречается конструкций вида:
Элементы.КлиентыКомментарий.Видимость = Ложь;
// Или обход в цикле
Для Каждого Элемент Из Элементы.Клиенты.ПодчиненныеЭлементы Цикл
Если Элемент.Имя = "КлиентыКомментарий" И НЕ ЭтоАдминистратор Тогда
Элемент.Видимость = Ложь;
КонецЕсли;
КонецЦикла;
Если в коде есть логика, скрывающая колонки по списку, необходимо добавить туда имя нового реквизита.
Если ваша база находится на поддержке и вы используете Расширения, это вносит дополнительные нюансы. Рассмотрим сценарий: форма документа была добавлена в расширение ранее, а новый реквизит вы добавили в основную конфигурацию.
В этом случае в форме, которая берется из расширения, новой колонки просто не будет, так как форма в расширении — это «слепок» старого состояния. Чтобы исправить это, необходимо:
Последний рубеж обороны — это индивидуальные настройки пользователя. Управляемые формы запоминают положение, ширину и видимость колонок для каждого конкретного человека. Если пользователь когда-то «играл» с кнопкой «Изменить форму», настройки могли сохраниться в базе данных (в системных таблицах).
Посмотрим, как это сбросить:
Если это не помогло, можно воспользоваться административным способом: зайти в «Администрирование» — «Настройки пользователей и прав» — «Очистка настроек». Там можно выбрать конкретного пользователя и конкретную форму документа, чтобы полностью удалить его индивидуальные предпочтения отображения интерфейса.
Резюмируем: решение проблемы всегда кроется в цепочке «Права доступа -> Кэш метаданных -> Свойства элемента формы (Видимость/ФО) -> Программный код -> Настройки пользователя». Последовательно проверяя каждый этап, мы гарантированно найдем причину «исчезновения» реквизита.