Разберем ситуацию, когда при попытке формирования отчетов по воинскому учету в программе 1С:Зарплата и Управление Персоналом (ЗУП) версии 3.1.18.586 или более поздних, пользователи сталкиваются с ошибкой: "Среди кадровых данных сотрудников нет данных с именем "ВоинскийУчетДополнительныеСведения"". Эта проблема часто возникает после обновления конфигурации и свидетельствует о несоответствии имен полей в запросах отчетов и актуальной структуре метаданных программы. Мы рассмотрим основные причины возникновения этой ошибки и предложим пошаговое решение.
Когда вы видите подобное сообщение, это означает, что система пытается обратиться к полю с именем ВоинскийУчетДополнительныеСведения, но такого поля больше не существует в структуре кадровых данных сотрудников. Как правило, это связано с тем, что в новой версии конфигурации 1С:ЗУП имя поля было изменено, а отчеты, возможно, остались с устаревшим именем.
Прежде чем перейти к непосредственному исправлению, нам необходимо провести ряд проверок, которые помогут локализовать проблему или исключить типовые причины:
Настройка - Кадровый учет - Настройка состава данных для кадрового учета
C:\Users\Username\AppData\Roaming\1C\1CE\ и C:\Users\Username\AppData\Local\1C\1CE\./ClearCache в дополнительных параметрах информационной базы.В нашем случае, очистка кэша не помогла решить проблему, что указывает на более глубокие изменения в структуре конфигурации.
ВоинскийУчетОбщий
КадровыйУчетБазовый
ЗапросВТКадровыеДанныеСотрудников()
ТекстыОписанияПолейЗапросПоляПостоянныхКадровыхДанныхСотрудников()
Как показали дальнейшие исследования и подтверждение автора в обсуждении, основной причиной ошибки является изменение имени поля, используемого для формирования временных таблиц кадровых данных. В более новых версиях 1С:ЗУП, начиная с 3.1.18.586, поле ВоинскийУчетДополнительныеСведения было переименовано или заменено на ВоинскийУчетДополнительныеСведенияКарточки. Если в схеме компоновки данных (СКД) отчета по-прежнему используется старое имя поля, система не сможет его найти и выдаст ошибку.
В данном случае, проблема была обнаружена в СКД отчета "ВоинскийУчетОбщий".
Теперь, когда мы знаем корень проблемы, приступим к ее исправлению. Критически важно выполнять все изменения на копии рабочей базы и только после успешного тестирования переносить их на основную базу!
Перед любыми изменениями в конфигурации всегда создавайте полную резервную копию вашей информационной базы. Это позволит нам откатиться к предыдущему состоянию в случае непредвиденных проблем.
Запустим программу 1С в режиме "Конфигуратор". Для этого нам потребуются права администратора или разработчика.
В дереве объектов конфигурации развернем ветку "Отчеты". Найдем отчет с именем "ВоинскийУчетОбщий". Возможно, ошибка проявляется и в других отчетах по воинскому учету, в таком случае действия нужно будет повторить для каждого из них.
Двойным щелчком откроем объект отчета. В окне объекта отчета нам понадобится перейти на вкладку "Макеты" или найти раздел "Основная схема компоновки данных". Откроем схему компоновки данных (СКД) для редактирования.
В редакторе СКД мы должны найти все упоминания поля ВоинскийУчетДополнительныеСведения и заменить их на корректное имя ВоинскийУчетДополнительныеСведенияКарточки. Обычно это может быть в следующих местах:
Давайте посмотрим на пример, как это могло выглядеть в запросе или в описании поля СКД (это пример, реальный код будет находиться в вашей конфигурации):
// Неправильно:
ВЫБРАТЬ
КадровыеДанныеСотрудников.Ссылка КАК Сотрудник,
КадровыеДанныеСотрудников.ВоинскийУчетДополнительныеСведения КАК ДопСведения
ИЗ
РегистрСведений.КадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
// Правильно:
ВЫБРАТЬ
КадровыеДанныеСотрудников.Ссылка КАК Сотрудник,
КадровыеДанныеСотрудников.ВоинскийУчетДополнительныеСведенияКарточки КАК ДопСведения
ИЗ
РегистрСведений.КадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
После внесения изменений обязательно сохраните СКД.
После того как все изменения внесены и сохранены, обновим конфигурацию базы данных (меню "Конфигурация" -> "Обновить конфигурацию базы данных"). Затем запустим 1С:Предприятие в пользовательском режиме и тщательно протестируем все отчеты по воинскому учету. Если ошибка исчезла, значит, мы успешно справились с задачей.
Чтобы избежать подобных проблем в будущем и обеспечить стабильную работу вашей системы 1С, мы рекомендуем придерживаться следующих практик:
Регулярно обновляйте вашу конфигурацию до последних актуальных релизов. Разработчики постоянно выпускают обновления, которые содержат исправления ошибок, улучшение функционала и адаптацию под меняющееся законодательство. Часто, ошибки, как та, что мы рассматривали, уже исправлены в более свежих версиях, например, в 3.1.23 или новее.
Если в вашу систему вносятся нетиповые изменения, всегда используйте механизм "Расширения конфигурации". Это позволяет модифицировать функционал программы без изменения исходного кода типовой конфигурации. Такой подход значительно упрощает процесс обновлений, минимизирует риски возникновения конфликтов и позволяет быстро отключать доработки для целей диагностики.
После каждого обновления конфигурации обязательно проводите комплексное тестирование ключевого функционала, особенно того, что связан с расчетом зарплаты, кадровым учетом и формированием регламентированной отчетности. Желательно иметь заранее подготовленный список контрольных проверок. Всегда тестируйте на копии боевой базы.
Убедитесь, что все необходимые настройки по воинскому учету включены в программе, а для сотрудников заполнены соответствующие данные в их карточках. Отсутствие этих данных, хотя и не вызывает ту же ошибку, что мы разбирали, может приводить к другим проблемам при формировании отчетов.
Следуя этим рекомендациям, мы можем значительно повысить стабильность и надежность работы нашей системы 1С:ЗУП, а также эффективно решать возникающие проблемы.