Разработка отчета для проверки корректности начисления пособий по уходу за ребенком — это комплексная задача, требующая понимания механизмов расчета зарплаты, работы с регистрами сведений и накопления в конфигурации 1С:Зарплата и управление персоналом 8. В данной статье мы подробно разберем, какие данные и из каких регистров необходимо извлечь, как реализовать сложные условия отбора и на что обратить внимание при анализе документов исправления.
Для того чтобы отчет был достоверным, недостаточно анализировать только документ Отпуск по уходу за ребенком. Нам необходимо собрать данные из нескольких регистров, чтобы сопоставить плановые назначения с фактическими выплатами и текущим статусом сотрудника. Рассмотрим ключевые регистры, которые станут источниками данных для нашей системы компоновки данных (СКД):
Изменение условий оплаты отпуска по уходу за ребенком или Возврат из отпуска по уходу. Рекомендуется использовать срез последних на каждую дату периода для отслеживания изменений условий в середине месяца.Один из наиболее спорных моментов — это проверка условия, при котором начисление выполнено за два и более месяца. Разберем, что это означает с точки зрения механизмов 1С. В системе разделяются понятия Период регистрации (месяц, в котором была введена запись) и Период действия (период, за который начислены деньги).
Проанализируем ситуацию: если в марте сотруднику начисляется пособие за январь, февраль и март (например, из-за задержки в оформлении документов), то в регистре Начисления удержания по сотрудникам появятся три строки с одним периодом регистрации (март), но разными интервалами дат в полях ДатаНачала и ДатаОкончания.
Для реализации этого условия в отчете мы должны выполнить следующие шаги:
ПериодДействияНачало — ПериодДействияКонец.Пример логики запроса для проверки таких периодов:
ВЫБРАТЬ
Начисления.Сотрудник,
Начисления.Регистратор,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ НАЧАЛОПЕРИОДА(Начисления.ДатаНачала, МЕСЯЦ)) КАК КолВоМесяцев
ИЗ
РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК Начисления
ГДЕ
Начисления.Период МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
Начисления.Сотрудник,
Начисления.Регистратор
ИМЕЮЩИЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ НАЧАЛОПЕРИОДА(Начисления.ДатаНачала, МЕСЯЦ)) >= 2
Согласно законодательству (с учетом изменений 2024 года и правил прошлых лет), важно отслеживать случаи, когда сотрудник получает пособие и одновременно работает на полную ставку. Проанализируем, как это выявить технически. Нам необходимо найти пересечение во времени двух видов начислений: "Пособие по уходу за ребенком" и любого начисления, связанного с отработкой полной нормы времени (Оклад, Тариф и т.д.).
Выясним причину, по которой это важно: если в виде начисления (ПВР) в настройках учета времени стоит значение За работу полную смену в пределах нормы времени (код времени "Явка"), и при этом за этот же период начислено пособие, это может быть нарушением или требовать особого внимания проверяющих органов.
Для этого в СКД рекомендуется использовать Левое соединение регистра начислений с самим собой. В левой части мы выбираем записи с пособием, в правой — записи с основными начислениями, соединяя их по сотруднику и периоду. В условиях соединения проверяем, чтобы даты начала и окончания периодов действия пересекались.
Рассмотрим подробнее работу с исправлениями. В 1С:ЗУП реализован механизм сторнирования. Если расчетчик обнаружил ошибку и создал документ-исправление, старые записи не удаляются, а перекрываются новыми с отрицательными суммами.
Чтобы отчет корректно отображал финальные суммы, мы должны:
Сторно. Если Сторно = Истина, сумма должна уменьшать итоговый результат.ДокументОснование для связи исправленных записей с исходными.Отпуска по уходу предоставлять возможность расшифровки до регистратора, чтобы пользователь мог сразу открыть документ и внести правки.Посмотрим на пример правильного построения структуры запроса для повышения производительности. Вместо прямого обращения к таблице регистра накопления НачисленияУдержанияПоСотрудникам, эффективнее использовать виртуальную таблицу Обороты.
ВЫБРАТЬ
НачисленияОбороты.Сотрудник КАК Сотрудник,
НачисленияОбороты.Начисление КАК ВидНачисления,
НачисленияОбороты.СуммаОборот КАК ФактическаяСумма,
ПлановыеНачисленияСрезПоследних.Размер КАК ПлановаяСумма
ИЗ
РегистрНакопления.НачисленияУдержанияПоСотрудникам.Обороты(&НачалоПериода, &КонецПериода, , ) КАК НачисленияОбороты
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрСведений.ПлановыеНачисления.СрезПоследних(&КонецПериода, ) КАК ПлановыеНачисленияСрезПоследних
ПО
НачисленияОбороты.Сотрудник = ПлановыеНачисленияСрезПоследних.Сотрудник
Важный момент: СрезПоследних для плановых начислений лучше получать внутри цикла по месяцам или через соединение с таблицей периодов, если условия отпуска (например, размер пособия) менялись внутри выбранного интервала отчета.
Для полноты картины в отчет рекомендуется добавить следующие колонки:
Сведения для расчета пособия и подтверждение их отправки. Это можно проверить через регистр сведений СтатусыВыплатыПособий (название может варьироваться в зависимости от версии ЗУП).Используя предложенный алгоритм, мы создадим мощный инструмент для внутреннего аудита, который позволит минимизировать риски претензий со стороны контролирующих органов и обеспечит прозрачность расчетов с персоналом.