При работе в программе 1С:Зарплата и управление персоналом 8 (редакция 3.1) пользователи могут столкнуться с критическим сбоем при попытке открыть справочник ШтатноеРасписание или сформировать отчетность по нему. Система выдает сообщение об ошибке: «Поле объекта не обнаружено (Поля)», ссылаясь на конкретные строки кода в модуле формы списка. Давайте подробно разберем, почему возникает эта ситуация, и какими способами ее можно устранить.
Проанализируем технические подробности сбоя. Чаще всего ошибка проявляется в базовых версиях конфигурации (например, в релизе 3.1.26.11). Суть проблемы заключается в программной ошибке (баг с кодом 10255502), допущенной разработчиками при реализации механизма отборов в динамическом списке штатного расписания.
В базовой версии программы учет ведется строго по одной организации. Однако программный код в форме списка пытается принудительно добавить поле Владелец (которое в данном контексте соответствует организации) в схему компоновки данных для установки отбора. Рассмотрим фрагмент кода, на котором происходит прерывание работы программы:
ПолеВладелец = Список.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
ПолеВладелец.ПутьКДанным = "Владелец";
ПолеВладелец.Поле = "Владелец";
Поскольку в базовой версии структура динамического списка Список может отличаться от версии ПРОФ, обращение к коллекции Поля вызывает исключение, так как объект не инициализирован должным образом для работы с программными отборами такого типа. Это блокирует открытие справочника и работу со всеми кадровыми документами, завязанными на позиции штатного расписания.
Самый правильный и надежный метод — это установка актуального релиза программы. Разработчики 1С оперативно признали проблему и выпустили исправление. Проанализируем последовательность действий:
После обновления до версии 3.1.26.13 или выше программный код в процедуре УстановитьИспользованиеОтбораПоОрганизации будет корректно обрабатывать условия работы в базовой версии, и ошибка исчезнет.
Если по каким-то причинам вы не можете обновить программу немедленно, рассмотрим варианты временного обхода проблемы, которые позволят продолжить ведение учета:
Иногда пользователи сталкиваются с похожим сообщением об ошибке в гораздо более свежих версиях программы (например, 3.1.27.51). В этом случае причина, скорее всего, не в системном баге, а в пользовательских настройках или кэше. Разберем шаги по исправлению:
Мы рассмотрели сложную техническую проблему, связанную с внутренними механизмами СхемыКомпоновкиДанных в типовой конфигурации. Основной причиной является несоответствие программного кода для версии ПРОФ и Базовой в части работы с полями организаций.
Резюмируем наши действия: в первую очередь обновляем программу до актуального релиза. Если обновление не помогает — проверяем пользовательские макеты и очищаем кэш. Эти шаги гарантированно устраняют ошибку Поле объекта не обнаружено (Поля) и восстанавливают работоспособность кадрового учета в 1С.