В современных реалиях ведение воинского учета в программе 1С:Зарплата и управление персоналом 8 (ред. 3.1) стало критически важной задачей. Одной из самых востребованных форм является «Карточка гражданина, подлежащего воинскому учету» (Форма №10). Однако пользователи часто сталкиваются с ситуацией, когда при попытке формирования отчета программа выдает ошибку или просто не выводит данные. Особенно остро эта проблема проявляется в базах, где выполнялся так называемый «рекомендованный перенос данных» или используются программные расширения.
В этой статье мы подробно разберем причины возникновения данной ошибки, проанализируем программный код и найдем способы решения проблемы, включая корректное заполнение персональных данных и контроль срока действия паспортов.
Если вы переходили на ЗУП 3.1 с версии 2.5 или других программ (например, используя перенос данных из УПП в ЗУП 3.1) с использованием рекомендованного переноса, ваша кадровая история за прошлые периоды свернута в документы типа ПереносДанных. Это фундаментальный момент для понимания проблемы. Рассмотрим подробнее, как работает алгоритм отчета:
Кадровая история сотрудников (для анализа этих данных также полезно использовать отчет «Кадровые изменения» в формате до / после).Регистратор выступает документ Перенос данных, который не имеет привычных печатных форм и реквизитов кадрового приказа.Проанализируем ситуацию: если в коде отчета стоит жесткое ожидание ссылок на документы ПриемНаРаботу или КадровыйПеревод, то при встрече с ПереносДанных система может выдать ошибку «Поле объекта не обнаружено» или сформировать пустую строку.
Как показывает практика, часто виновником становится расширение конфигурации, которое когда-то было установлено для модификации Личной карточки (Т-2). Дело в том, что механизмы формирования Формы №10 и карточки Т-2 в ЗУП 3.1 тесно взаимосвязаны. В частности, они используют общую функцию:
ДополнительныеСведенияУнифицированнойФормыТ2ПоРеестрам
Выясним причину: если ваше расширение перехватывает эту функцию (через &Вместо или &После), оно может не знать о новых колонках или требованиях, которые добавили разработчики 1С для воинского учета (Форма №10 появилась позже, чем стандартная Т-2). В результате данные «затираются» или передаются в некорректном формате, что приводит к краху отчета.
Если отчет выдает ошибку, нам как техническим специалистам необходимо заглянуть «под капот». Рассмотрим процесс отладки.
Шаг 1. Поиск места ошибки. Откройте конфигуратор и найдите общий модуль (или модуль объекта отчета) ВоинскийУчетОбщий. Нас интересует цикл обработки кадровых событий.
Проанализируем фрагмент кода, где часто возникает сбой:
Для Каждого ДанныеПриемыПеремещения Из ДанныеЗаполненияПоСотруднику Цикл
// Проверка наличия регистратора
Если ДанныеПриемыПеремещения.Регистратор = Неопределено Тогда
Продолжить;
КонецЕсли;
КонецЦикла;
Шаг 2. Корректировка работы с документами переноса. В некоторых релизах (например, 3.1.23.866) наблюдалась проблема: программа пыталась взять Регистратор там, где нужно было использовать поле ОснованиеПеревода. Посмотрим на пример исправления, который помог пользователям:
// Вместо прямого обращения к Регистратору:
// Отбор = Новый Структура("Приказ", ДанныеПриемыПеремещения.Регистратор);
// Используем проверку типа документа:
Если ТипЗнч(ДанныеПриемыПеремещения.Регистратор) = Тип("ДокументСсылка.ПереносДанных") Тогда
Отбор = Новый Структура("Приказ", ДанныеПриемыПеремещения.ОснованиеПеревода);
Иначе
Отбор = Новый Стуктура("Приказ", ДанныеПриемыПеремещения.Регистратор);
КонецЕсли;
Важное замечание: Будьте осторожны при подстановке ОснованиеПеревода вместо ссылки на объект. Если в это поле записывается текст, отчет может «проглотить» ошибку, но данные в печатной форме могут оказаться некорректными. Обязательно проверьте содержимое сформированной карточки после таких правок.
Рассмотрим ситуацию, когда отчет не формируется у пользователя с ограниченными правами, но работает у администратора. Даже если RLS (Ограничение прав на уровне записей) в базе выключен, система может спотыкаться на «битых» ссылках или объектах, к которым нет доступа в текущем сеансе.
Посмотрим, нет ли в регистре Кадровая история сотрудников записей с пометкой «Объект не найден». Такое случается после некорректного удаления документов или частичного переноса данных. Иногда требуется исправление даты начала 31.12.1899 в записях о приеме, так как если отчет натыкается на такую битую ссылку или некорректную дату, он завершается аварийно.
Просуммируем всё вышесказанное и составим план действий для исправления ситуации:
ДополнительныеСведенияУнифицированнойФормыТ2ПоРеестрам.Кадровая история сотрудников (через «Все функции» или «Функции для технического специалиста»). Сделайте отбор по проблемному сотруднику. Убедитесь, что поле Регистратор заполнено и ссылки валидны.Помните, что Форма №10 — это сложный отчет, собирающий данные из множества регистров (кадровая история, персональные данные, воинский учет). Совместная работа программного кода и ваших данных — залог успешного формирования карточки. Мы рекомендуем всегда начинать с проверки чистоты данных в регистрах, прежде чем приступать к изменению конфигурации.