Как сформировать реестр больничных листов с детальной информацией по оплате первых трех дней в ЗУП 2.5?

Программист 1С v8.3 (Обычные формы) 1С:Зарплата и Управление Персоналом Бухгалтерский учет IT и автоматизация бизнеса
← На главную

В практической работе бухгалтера и расчетчика заработной платы часто возникает задача анализа расходов на выплату пособий по временной нетрудоспособности. В частности, руководство или контролирующие органы могут потребовать детализированный реестр больничных листов по сотрудникам. Особый интерес представляет информация о начислениях за первые три дня болезни, которые, как известно, оплачиваются за счет средств работодателя.

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

Анализ бизнес-требований к отчету

Для того чтобы отчет полностью удовлетворял потребностям пользователей, он должен содержать следующие ключевые показатели:

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

На первый взгляд задача кажется тривиальной, но при детальном рассмотрении архитектуры 1С:ЗУП 2.5 возникает множество технических нюансов, которые мы сейчас подробно разберем.

Типичные ошибки при проектировании отчета

Прежде чем перейти к написанию правильного алгоритма, давайте проанализируем две классические ошибки, которые часто совершают начинающие программисты 1С при решении этой задачи.

Ошибка 1: Использование регистра «ПособияСоциальномуСтрахованию»

Некоторые разработчики пытаются построить отчет по регистру накопления ПособияСоциальномуСтрахованию. Это логическая и техническая ошибка. Данный регистр предназначен исключительно для учета государственных пособий, которые выплачиваются за счет средств Фонда социального страхования (ныне СФР).

Поскольку первые 3 дня болезни по закону оплачивает сам работодатель из собственных средств, эти суммы не относятся к государственным пособиям и не возмещаются фондом. Соответственно, в регистре ПособияСоциальномуСтрахованию записей по оплате первых трех дней просто нет. Попытка построить отчет по этому источнику приведет к тому, что вы получите пустой результат или увидите только суммы начиная с 4-го дня болезни.

Ошибка 2: Прямой запрос к табличным частям документов «НачислениеПоБольничномуЛисту»

Это очень распространенный подход среди тех, кто ищет «быстрые» готовые решения на различных форумах. На первый взгляд, в документе НачислениеПоБольничномуЛисту есть все данные. Но выборка данных напрямую из документов (минуя регистры) — это грубое нарушение стандартов разработки 1С, которое приводит к следующим проблемам:

Правильное техническое решение: Использование регистра расчета

Единственным архитектурно верным и надежным источником данных для нашей задачи является Регистр расчета «ОсновныеНачисленияРаботниковОрганизаций». Именно в нем хранятся результаты расчетов всех начислений, имеющих протяженность во времени, включая оплату по больничным листам.

Для того чтобы выделить из всего многообразия начислений именно оплату первых трех дней за счет работодателя, мы выполним следующие шаги:

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

Давайте рассмотрим структуру запроса, который ляжет в основу нашего отчета на СКД.


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

Разбор работы запроса по шагам

Проанализируем детально структуру нашего запроса, чтобы понимать, как система обрабатывает данные:

Настройка схемы компоновки данных (СКД)

После того как мы определились с запросом, выполним настройку отчета в конструкторе СКД. Это позволит сделать отчет гибким и удобным для конечного пользователя.

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

  1. Параметры периода. Для параметров &НачалоПериода и &КонецПериода задайте тип данных Дата. В свойствах параметров укажите доступные ограничения, чтобы пользователи могли выбирать стандартные периоды (Месяц, Квартал, Год) через стандартный диалог 1С.
  2. Роли полей. Для поля Регистратор укажите роль "Обязательное", чтобы при группировке данных связь с документом не терялась. Для поля СуммаЗаСчетРаботодателя настройте выражение ресурса как Сумма(СуммаЗаСчетРаботодателя) на вкладке "Ресурсы".
  3. Оформление дат. Чтобы даты начала и окончания периода оплаты выглядели презентабельно, задайте для полей ДатаНачалаОплаты и ДатаКонцаОплаты формат редактирования. Например, форматная строка ДФ=dd.MM.yyyy скроет ненужное время и оставит только дату.

Преимущества разработанного решения

Использование регистра расчета для построения реестра больничных листов дает нам ряд неоспоримых преимуществ перед «быстрыми» решениями на основе запросов к документам:

Таким образом, потратив немного времени на правильное проектирование запроса к регистру расчета, мы получаем профессиональный, надежный и быстродействующий инструмент для анализа расходов предприятия на оплату первых дней нетрудоспособности сотрудников.

← На главную