Как правильно оформить и рассчитать больничный лист в период простоя в 1С:ЗУП

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

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

Нормативное регулирование: платить или не платить?

Для начала проанализируем правовую базу, на которой строится логика работы программы. Основным документом здесь является Федеральный закон № 255-ФЗ. Согласно статьям 7 и 9 этого закона, правила оплаты напрямую зависят от того, в какой момент наступил страховой случай:

  1. Болезнь началась ДО периода простоя. В этом случае пособие выплачивается за весь период. Однако за дни, совпавшие с простоем, вводится ограничение: сумма пособия должна соответствовать оплате простоя (например, 2/3 среднего заработка), но не превышать размер обычного пособия по нетрудоспособности.
  2. Болезнь началась ВО ВРЕМЯ периода простоя. В этой ситуации пособие за дни простоя не назначается (п. 1 ст. 9 закона № 255-ФЗ). Оплате будут подлежать только те дни больничного, которые продолжатся после официального окончания простоя.

Разберем ситуацию автора темы: больничный с 1 по 8 января, а простои зафиксированы посменно (1, 2-3, 5, 6-7 января). Если больничный лист открыт одновременно с началом первого простоя или внутри него, пособие за эти дни не положено.

Почему в 1С:ЗУП появляется «колесико» и происходит пересчет?

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

Во-первых, в последних релизах конфигураций на базе 1С 8.3 в процедуру ПриСозданииНаСервере была добавлена проверка заполненности табличной части Начисления. Если программа фиксирует, что данные в регистрах или связанных документах (например, в документе Простой сотрудников) изменились или имеют конфликтующие периоды, инициируется фоновый пересчет для актуализации данных.

Во-вторых, механизм вытеснения в 1С настроен так, что Простой имеет приоритет над оплатой по окладу, но вступает в сложное взаимодействие с Больничным листом. Если у вас введены «рваные» периоды простоя (строго по сменам), программа при каждом открытии пытается сопоставить эти интервалы с периодом нетрудоспособности.

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

Если по закону пособие за период простоя не положено, мы должны правильно зафиксировать это для СФР (бывший ФСС), чтобы избежать штрафов и корректно ответить на проактивный запрос. Рассмотрим алгоритм действий:

  1. Проверка пересечения периодов. Убедимся, что документ Простой сотрудников проведен и его даты соответствуют приказам. Важно понимать, что в 1С:ЗУП простой — это рабочее время (сотрудник освобожден от выполнения обязанностей, но период остается в стаже).
  2. Оформление больничного листа. В самом документе Больничный лист на вкладке «Оплата» необходимо проверить даты, за которые начисляется пособие. Если весь период поглощен простоем и болезнь началась во время простоя, программа может автоматически обнулить суммы.
  3. Заполнение исключаемых периодов. Для корректной передачи данных в СФР в документе Ответ на запрос СФР для расчета пособия необходимо заполнить раздел «Периоды простоя» или «Исключаемые периоды». Если пособие совсем не требуется, выбирается соответствующий признак и код причины отказа («Весь период оплачен в простое» или иная подходящая причина).

Технические нюансы для программистов 1С

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

Посмотрим на пример логики, которую можно реализовать для автоматизации контроля:


// Пример логики определения пересечения периодов
ПериодБЛ = Новый Период(Объект.ДатаНачала, Объект.ДатаОкончания);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Состояние, ДатаНачала, ДатаОкончания 
               ИЗ РегистрСведений.ДанныеСостоянийСотрудников 
               ГДЕ Сотрудник = &Сотрудник И Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Простой)";
// Далее следует сопоставление интервалов и расчет ограничения по п.7 ст.7 255-ФЗ

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

Практические рекомендации

Проанализируем ситуацию с выходными днями внутри простоя. Как отмечают эксперты на форуме, если приказы о простоях созданы только на рабочие смены (например, 1, 2-3, 5, 6-7 число), то дни между ними (в данном случае 4-е и 8-е января) формально не являются периодом простоя. Следовательно, за эти дни больничный должен быть оплачен в обычном порядке.

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

Таким образом, для решения проблемы с постоянным пересчетом:

  1. Проверьте приоритеты начислений в настройках состава начислений и удержаний.
  2. Убедитесь, что в больничном листе корректно заполнены закладки с данными о стаже и среднем заработке, даже если итоговая сумма равна нулю.
  3. Если используется доработка, проверьте подписки на события, которые могут инициировать процедуру РассчитатьДокумент() при открытии формы.
← На главную