Как исправить ошибку «Поле объекта не обнаружено (Поля)» в штатном расписании 1С:ЗУП

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

При работе в программе 1С:Зарплата и управление персоналом 8 (редакция 3.1) пользователи могут столкнуться с критическим сбоем при попытке открыть справочник ШтатноеРасписание или сформировать отчетность по нему. Система выдает сообщение об ошибке: «Поле объекта не обнаружено (Поля)», ссылаясь на конкретные строки кода в модуле формы списка. Давайте подробно разберем, почему возникает эта ситуация, и какими способами ее можно устранить.

Анализируем причину возникновения ошибки

Проанализируем технические подробности сбоя. Чаще всего ошибка проявляется в базовых версиях конфигурации (например, в релизе 3.1.26.11). Суть проблемы заключается в программной ошибке (баг с кодом 10255502), допущенной разработчиками при реализации механизма отборов в динамическом списке штатного расписания.

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


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

Поскольку в базовой версии структура динамического списка Список может отличаться от версии ПРОФ, обращение к коллекции Поля вызывает исключение, так как объект не инициализирован должным образом для работы с программными отборами такого типа. Это блокирует открытие справочника и работу со всеми кадровыми документами, завязанными на позиции штатного расписания.

Решение №1: Обновление конфигурации (Основной способ)

Самый правильный и надежный метод — это установка актуального релиза программы. Разработчики 1С оперативно признали проблему и выпустили исправление. Проанализируем последовательность действий:

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

После обновления до версии 3.1.26.13 или выше программный код в процедуре УстановитьИспользованиеОтбораПоОрганизации будет корректно обрабатывать условия работы в базовой версии, и ошибка исчезнет.

Решение №2: Временный обход ошибки без обновления

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

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

Решение №3: Если ошибка возникла в новых релизах (3.1.27.x и выше)

Иногда пользователи сталкиваются с похожим сообщением об ошибке в гораздо более свежих версиях программы (например, 3.1.27.51). В этом случае причина, скорее всего, не в системном баге, а в пользовательских настройках или кэше. Разберем шаги по исправлению:

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

Подводим итоги

Мы рассмотрели сложную техническую проблему, связанную с внутренними механизмами СхемыКомпоновкиДанных в типовой конфигурации. Основной причиной является несоответствие программного кода для версии ПРОФ и Базовой в части работы с полями организаций.

Резюмируем наши действия: в первую очередь обновляем программу до актуального релиза. Если обновление не помогает — проверяем пользовательские макеты и очищаем кэш. Эти шаги гарантированно устраняют ошибку Поле объекта не обнаружено (Поля) и восстанавливают работоспособность кадрового учета в 1С.

← На главную