При работе в конфигурации 1С:Зарплата и управление персоналом 3.1 (ЗУП) или 1С:Бухгалтерия предприятия 3.0 пользователи часто сталкиваются с неприятной ситуацией: при попытке сформировать отчет «Табель учета рабочего времени (Т-13)» программа выдает критическую ошибку Поле объекта не обнаружено (ДолжностьРуководителя). Эта ошибка блокирует вывод печатной формы и мешает своевременной сдаче отчетности.
Проанализируем ситуацию: программа сообщает нам, что при попытке программного обращения к некому объекту (структуре или выборке) она ожидает найти там свойство ДолжностьРуководителя, но по какой-то причине его там нет. Давайте вместе разберем основные причины этой проблемы и пошагово пройдем по путям её решения.
Первым делом нам необходимо убедиться, что данные об ответственном лице заполнены корректно и, что самое важное, на актуальную дату. Разберем этот процесс подробнее:
Если данные заполнены, но ошибка сохраняется, попробуйте полностью очистить строку руководителя, записать изменения, а затем создать запись заново. Это принудительно обновит записи в регистре СведенияОбОтветственныхЛицах.
Как показывает практика и обсуждения на профессиональных форумах, наиболее частой причиной «поломки» отчета после обновления конфигурации являются сохраненные пользовательские настройки. Система компоновки данных (СКД) может хранить старую структуру полей, которая стала несовместима с новым программным кодом.
Выполним следующие действия для исправления:
Проанализируем ситуацию, если вы используете свой уникальный вариант отчета (например, «Мой табель»). После обновления структуры конфигурации старые ссылки на поля могут стать недействительными. В этом случае правильным решением будет создать новый вариант отчета на основе типового и перенести в него нужные вам отборы.
Ситуация осложняется, если учет ведется по ИП. В этом случае предприниматель часто не числится в справочнике Сотрудники, но должен быть указан как ответственное лицо. Рассмотрим нюансы:
Программа при формировании печатной формы Т-13 ищет должность для подписи. Даже если в регистре ответственных лиц указано физическое лицо, 1С может пытаться найти его должность через связь с сотрудником. Для ИП в поле должность в регистре сведений стоит вписать «Индивидуальный предприниматель» вручную, даже если такой позиции нет в штатном расписании. Это часто «успокаивает» алгоритм проверки полей.
Иногда ошибка Поле объекта не обнаружено является следствием технических сбоев в работе платформы или конфликтов с расширениями:
Если стандартные методы не помогают, выясним причину с помощью отладки. Рассмотрим алгоритм действий программиста:
ДолжностьРуководителя. Часто оказывается, что структура ПараметрыПечати просто не содержит этого ключа из-за того, что запрос к базе данных вернул пустой результат по ответственному лицу.Проанализируем пример кода, который может вызывать ошибку, если структура не заполнена:
// Ошибка возникает здесь, если в структуре 'ДанныеПодписи' нет ключа 'ДолжностьРуководителя'
ОбластьМакета.Параметры.Должность = ДанныеПодписи.ДолжностьРуководителя;
В современных релизах 1С:ЗУП 3.1 для получения данных ответственных лиц часто используется функция СведенияОбОтветственныхЛицах. Если в ней происходит сбой, проверьте актуальность патчей (исправлений) от фирмы 1С. Зайдите в Администрирование — Обслуживание — Обновление программы — Установленные исправления (патчи) и убедитесь, что база обновлена.
Подводя итог: чаще всего проблема кроется либо в дате записи в регистре ответственных лиц, либо в устаревших настройках варианта отчета, которые «помнят» старую структуру объектов. Пройдя по шагам от простого сброса настроек до проверки дат в регистрах, вы сможете восстановить работоспособность табеля без привлечения программистов.