В процессе работы с типовыми конфигурациями 1С, такими как Комплексная автоматизация 2.4, ERP Управление предприятием или Зарплата и управление персоналом 3.1, разработчики часто сталкиваются с ситуацией, когда стандартный отчет «Анализ начислений и удержаний» (в варианте «Расчетный листок») внезапно начинает отображаться некорректно. Даже если вы сбросили все настройки СКД к стандартным и очистили кэш, отчет может выводить «куцый» или пустой вариант макета. Рассмотрим подробно, почему это происходит и как найти «виновника» проблемы.
Для начала проанализируем ситуацию: отчет «Анализ начислений и удержаний» не является классическим отчетом на СКД в чистом виде. Хотя в его основе лежит Система Компоновки Данных, визуальное представление (формирование печатной формы) часто перехватывается программным кодом. Разберем по шагам, как это устроено:
В случае с расчетными листками основным макетом обычно выступает ОбщийМакет.ПФ_MXL_РасчетныйЛистокНастраиваемый. Если этот макет был изменен или подменен, стандартные настройки СКД не помогут исправить внешний вид отчета.
Как показывает практика, самой частой причиной странного поведения отчетов является наличие старых или «забытых» расширений. Проанализируем ситуацию: если в базе установлено несколько расширений (более 10), одно из них может переопределять общий макет. Выясним, как это проверить:
АнализНачисленийИУдержаний или содержат объекты с именем ПФ_MXL_РасчетныйЛистокНастраиваемый.Если расширения не найдены или их отключение не помогло, нам необходимо найти место в коде, где отчету назначается макет. Посмотрим на пример кода, который часто встречается в модулях менеджеров или модулях объектов подобных отчетов:
МакетыВариантовОтчетов.Вставить("Отчет.АнализНачисленийИУдержаний.РасчетныйЛисток", "ОбщийМакет.ПФ_MXL_РасчетныйЛистокНастраиваемый");
Разберем, как провести диагностику:
АнализНачисленийИУдержаний.ПриКомпоновкеРезультата или в местах обращения к МакетыВариантовОтчетов.Система 1С позволяет пользователям редактировать макеты печатных форм прямо в режиме «Предприятие» без изменения кода. Это мощный инструмент, который часто становится источником проблем. Проанализируем, не «накрутили» ли там лишнего:
Перейдем в раздел Администрирование — Печатные формы, отчеты и обработки — Макеты печатных форм. Найдем в списке наш макет ПФ_MXL_РасчетныйЛистокНастраиваемый. Если он выделен жирным шрифтом или имеет отметку об изменении, значит, пользователь (или администратор) отредактировал его вручную. В этом случае:
Иногда отчет выглядит «куцым» (отсутствуют колонки «Дни», «Часы» или шапка), потому что программный код не может найти именованные области в макете. Выясним причины:
Во-первых, проверьте область ШапкаТаблицы. Если в макете (особенно в расширении) были удалены или переименованы ячейки, которые ожидает код (например, поле Рабочие над колонками времени), алгоритм вывода может «сломаться» и пропустить вывод всей области.
Во-вторых, обратите внимание на настройки самой зарплаты. В программах 1С состав колонок расчетного листка динамически меняется в зависимости от учетной политики. Если в настройках расчета зарплаты отключено использование почасовой оплаты, колонки с часами будут скрываться программно, даже если они физически присутствуют в макете.
Если все вышеперечисленное не помогло, и вы уверены, что макет в конфигурации верный, а расширений нет, стоит очистить хранилище системных настроек. Посмотрим на алгоритм:
ПользовательскиеМакетыПечатныхФорм напрямую через консоль запросов или «Все функции», чтобы убедиться в отсутствии «битых» записей.Подведем итог: когда расчетный листок отображается неправильно, проблема почти всегда кроется в программной подмене макета. Либо это делает расширение, либо измененный пользовательский макет в справочнике печатных форм. Всегда начинайте диагностику с поиска вхождения строки с именем макета в коде через глобальный поиск и проверки списка расширений.