Почему пользователь не видит подразделения организации в 1С:ЗУП 3.1 КОРП и как исправить ошибку «Поле не обнаружено»?

Программист 1С v8.3 (Управляемые формы)
← На главную

В процессе администрирования системы 1С:Зарплата и управление персоналом 3.1 КОРП специалисты часто сталкиваются с ситуацией, когда пользователь при попытке открыть справочник Подразделения видит пустой список. Ситуация осложняется тем, что даже назначение полных прав или ролей на чтение и изменение данного справочника не всегда решает проблему. В некоторых случаях при попытке открыть конкретный элемент возникает системная ошибка, указывающая на отсутствие полей формы.

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

Разбор программной ошибки «Поле не обнаружено»

Одной из наиболее явных зацепок при поиске причины является ошибка в коде при открытии формы элемента. Рассмотрим ситуацию: при попытке зайти в карточку подразделения система выдает ошибку в процедуре СписокВыбораБухучетЗарплатыВариантНастройки. Проблема заключается в том, что в коллекции Элементы отсутствует объект БухучетЗарплатыВариантНастройки.

Проанализируем фрагмент кода, который вызывает сбой:


&НаСервере
Процедура СписокВыбораБухучетЗарплатыВариантНастройки()
    Если ДоступенПросмотрБухучетЗарплатыПодразделений Тогда
        СписокВыбора = Элементы.БухучетЗарплатыВариантНастройки.СписокВыбора;
        СписокВыбора.Очистить();
        СписокВыбора.Добавить(0, "Как указано для организации");
        СписокВыбора.Добавить(1, "Отражается на указанном счете, субконто");
        Если Не БазоваяВерсияКонфигурации Тогда
            СписокВыбора.Добавить(2, "Распределяется по счетам, субконто");
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Выясним причину такого поведения. В управляемых формах 1С элементы могут удаляться из формы динамически, если у пользователя нет прав на объекты метаданных, к которым эти элементы привязаны. В данном случае элемент формы БухучетЗарплатыВариантНастройки напрямую зависит от прав на ведение бухгалтерского учета зарплаты. Если роль не назначена, платформа «вырезает» поле из формы еще до выполнения серверного кода, и когда процедура пытается обратиться к нему — происходит обращение к неопределенному объекту.

Решение: Для устранения этой ошибки пользователю необходимо добавить роль «Добавление и изменение бухгалтерского учета зарплаты» или аналогичную роль на чтение этих данных. Это позволит платформе корректно отрисовать форму.

Влияние настроек штатного расписания на видимость подразделений

Если программных ошибок нет, но список подразделений пуст, проанализируем настройки ведения штатного расписания. В ЗУП 3.1 существует тесная связь между справочником Подразделения и штатным расписанием.

Разберем основные моменты:

  1. Флаг «Показывать новые»: В форме списка подразделений по умолчанию могут скрываться те позиции, которые еще не утверждены в штатном расписании или по которым не созданы соответствующие документы (например, «Утверждение штатного расписания»). Попробуем включить опцию «Показывать новые» в меню формы.
  2. Дата формирования и расформирования: Если в карточке подразделения указана дата расформирования, оно считается архивным. Проверьте, не установлена ли в списке фильтрация, скрывающая архивные подразделения.
  3. Ведение штатного расписания: Если в настройках программы (Настройка — Управление персоналом) включена опция «Ведется штатное расписание», но при этом не создано ни одной позиции штатного расписания для конкретных подразделений, они могут не отображаться в стандартных списках выбора.

Ограничение доступа на уровне записей (RLS)

Одной из самых частых причин «пустых списков» в версии КОРП является механизм RLS (Record Level Security). В отличие от обычной версии, в КОРП настройки доступа могут быть очень детализированными.

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

Специфика справочников «Подразделения» и «Структура предприятия» в КОРП

Проанализируем архитектурную особенность версии КОРП. Здесь часто используются два похожих понятия:

  1. Подразделения организаций: Используются для регламентированного учета (зарплата, налоги, отчетность).
  2. Структура предприятия: Используется для управленческого учета и HR-процессов.

Если пользователь ищет подразделения в одной форме, а настройки прав выполнены для другой структуры, возникнет путаница. Убедимся, что права настроены именно на объект Справочник.ПодразделенияОрганизаций.

Очистка кэша и пользовательских настроек

Если даже с полными правами конкретный пользователь не видит данные, а у других всё отображается корректно, стоит заподозрить проблему в локальных настройках отображения. Рассмотрим шаги по их очистке:

Шаг 1. Очистка настроек формы. Перейдем в Администрирование — Настройки пользователей и прав — Настройки пользователей. Выберем проблемного пользователя и в разделе «Внешний вид» или «Настройки отчетов» удалим настройки, связанные со справочником подразделений. Иногда пользователи случайно устанавливают фильтр «встать на пустое поле» и сохраняют его.

Шаг 2. Очистка кэша конфигурации. Выясним, не закешировались ли некорректные метаданные на компьютере пользователя. Для этого необходимо удалить базу из списка в стартере 1С и добавить её заново (это очистит идентификаторы кэша) или вручную удалить содержимое папок %AppData%\1C\1Cv8.

Итоги и рекомендации

Для решения проблемы отсутствия подразделений в ЗУП 3.1 КОРП рекомендуем действовать по следующему алгоритму:

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

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

← На главную