Почему в отчетах воинского учета 1С:ЗУП 3.1 не отображается состав семьи и как это исправить?

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

В процессе ведения воинского учета в программе 1С:Зарплата и Управление Персоналом 3.1 кадровики и бухгалтеры часто сталкиваются с ситуацией, когда в специализированных отчетах, таких как «Сведения для сверки с военкоматом» или «Карточка гражданина, подлежащего воинскому учету (Форма №10)», данные о составе семьи сотрудников выводятся некорректно или вовсе отсутствуют. При этом в карточке физического лица в разделе «Семья» все родственники могут быть добросовестно занесены. Рассмотрим подробнее, почему так происходит, и разберем по шагам технические и административные способы решения этой проблемы.

Анализ технической причины проблемы

Для начала проанализируем ситуацию с точки зрения архитектуры системы. Начиная с релизов ветки 3.1.7, компания 1С провела существенную реструктуризацию метаданных. Многие поля, которые ранее использовались для хранения информации о родственниках, получили префикс Удалить. Это означает, что данные теперь должны храниться в новых структурах, а механизмы формирования отчетов переориентированы на новые регистры и таблицы.

Основная проблема заключается в том, что при обновлении конфигурации или при переносе данных из предыдущих версий (например, 1С:ЗУП 2.5) автоматические обработчики обновления не всегда корректно «пробрасывают» информацию во внутренние системные поля, на которые опирается Система компоновки данных (СКД). Отчеты воинского учета в ЗУП 3.1 — это сложные структуры, которые часто используют не прямые запросы к справочникам, а функции модуля менеджера отчета для формирования сводных строк о семье.

Выясним причину, по которой «простая перезапись» данных помогает решить проблему. В 1С существуют механизмы, называемые Подписками на события. Когда вы нажимаете кнопку «Записать и закрыть» в карточке физического лица или конкретного родственника, срабатывает программный код, который обновляет связанные регистры сведений. Если данные были перенесены программно или «криво» обновились, эти связи могли не сформироваться. Перезапись заставляет систему актуализировать данные в соответствии с новой логикой текущего релиза.

Способ 1. Ручное обновление данных (для единичных случаев)

Если проблема наблюдается у нескольких сотрудников, мы можем воспользоваться простым методом «перезаписи». Разберем этот процесс:

  1. Перейдем в справочник Физические лица (или Сотрудники).
  2. Откроем карточку нужного человека и перейдем по ссылке Личные данные.
  3. Найдем раздел Семья.
  4. Нам не обязательно менять данные. Достаточно открыть запись о родственнике (например, о сыне или жене) и нажать Записать и закрыть.
  5. После этого сохраним саму карточку физического лица.

Проанализируем ситуацию: после этих действий данные в отчете должны появиться. Это происходит потому, что при записи объекта программный код 1С выполняет заполнение актуальных регистров, из которых отчет «Сведения для сверки» черпает информацию.

Способ 2. Групповое изменение реквизитов (для массового исправления)

Когда в базе данных числятся сотни сотрудников, ручная перезапись становится невозможной. В этом случае мы воспользуемся инструментом Групповое изменение реквизитов. Посмотрим на алгоритм действий:

  1. Откроем раздел Администрирование — Обслуживание — Корректировка данных — Групповое изменение реквизитов.
  2. В поле «Изменять» выберем объект Физические лица.
  3. Нажмем «Добавить условие отбора» и выберем только тех сотрудников, по которым ведется воинский учет (или просто всех работающих).
  4. В списке реквизитов нам не нужно ничего менять. Наша задача — инициировать процедуру записи.
  5. Нажмем кнопку Дополнительные параметры и убедимся, что установлена галочка «Выполнять в транзакции» и «Записывать объекты программно» (при этом важно, чтобы срабатывали обработчики ПриЗаписи).
  6. Нажимаем кнопку Изменить реквизиты. Система «пробежится» по всем объектам и перезапишет их, обновляя при этом все скрытые системные связи.

Особенности работы запроса в СКД и модуле менеджера

Рассмотрим подробнее, как именно отчет собирает строку состава семьи. Часто в модуле менеджера отчета используется алгоритм, подобный этому:


// Пример упрощенной логики сбора данных о семье
Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
|   СоставСемьиФизЛиц.СтепеньРодства,
|   СоставСемьиФизЛиц.ФИО,
|   СоставСемьиФизЛиц.ДатаРождения
|ИЗ
|   Справочник.ФизическиеЛица.СоставСемьи КАК СоставСемьиФизЛиц
|ГДЕ
|   СоставСемьиФизЛиц.Ссылка = &Ссылка";

// Далее идет цикл обработки, где формируется строка

Важно помнить, что если в данных родственника отсутствует Дата рождения или она заполнена некорректно (например, 01.01.0001), функция формирования строки в стандартных механизмах ЗУП может вернуть пустую строку для всей таблицы родственников этого сотрудника. Проанализируем ситуацию: один «битый» родственник может заблокировать вывод всей семьи в отчете. Проверьте наличие дат рождения у всех членов семьи.

Проверка классификатора степеней родства

Еще одна неочевидная причина — использование неверных элементов в справочнике Степени родства. Для корректной работы воинского учета программа ожидает увидеть предопределенные элементы (те, что созданы самой системой и имеют специальный внутренний идентификатор). Если бухгалтер вручную создал элемент «Дочка» вместо предопределенного «Дочь», отчет может проигнорировать такую запись.

Убедитесь, что используются системные значения:

Использование Формы №10 вместо старых отчетов

Если после всех манипуляций отчет «Сведения для сверки» все равно работает нестабильно, рекомендуется рассмотреть использование Формы №10 (Карточка гражданина). Это более современный отчет, введенный законодательством в последние годы. В 1С:ЗУП 3.1 алгоритмы сбора данных для Формы №10 написаны с учетом всех последних изменений метаданных и работают более надежно, чем старые варианты отчетов по воинскому учету.

Разберем, как проверить данные в ней:

  1. Перейдем в раздел Кадры — Кадровые отчеты.
  2. Найдем Карточка гражданина, подлежащего воинскому учету (10).
  3. Сформируем её по проблемному сотруднику.

Если в Форме №10 состав семьи отображается, а в старом отчете — нет, это прямое подтверждение того, что в старом отчете используется устаревший алгоритм обращения к полям Удалить....

Подведем итог: основная стратегия решения проблемы заключается в актуализации данных через групповую перезапись объектов Физические лица и проверке полноты заполнения реквизитов родственников (особенно дат рождения и степеней родства). Это позволит восстановить целостность данных после обновлений программы и обеспечит корректное формирование отчетности для военкоматов.

← На главную