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