Ситуация, когда период временной нетрудоспособности сотрудника совпадает с периодом простоя на предприятии, является одной из самых сложных в кадровом учете. Часто пользователи сталкиваются с тем, что программа 1С:Зарплата и Управление Персоналом (ЗУП) ведет себя неочевидно: документ пересчитывается при открытии, или пособие не начисляется вовсе. Рассмотрим подробно законодательную базу, технические нюансы и пошаговый алгоритм действий.
Для начала проанализируем правовую базу, на которой строится логика работы программы. Основным документом здесь является Федеральный закон № 255-ФЗ. Согласно статьям 7 и 9 этого закона, правила оплаты напрямую зависят от того, в какой момент наступил страховой случай:
Разберем ситуацию автора темы: больничный с 1 по 8 января, а простои зафиксированы посменно (1, 2-3, 5, 6-7 января). Если больничный лист открыт одновременно с началом первого простоя или внутри него, пособие за эти дни не положено.
Выясним причину технического поведения программы, когда при открытии проведенного документа Больничный лист он начинает самопроизвольно пересчитываться. Это часто сбивает расчетчиков с толку. Проанализируем возможные факторы:
Во-первых, в последних релизах конфигураций на базе 1С 8.3 в процедуру ПриСозданииНаСервере была добавлена проверка заполненности табличной части Начисления. Если программа фиксирует, что данные в регистрах или связанных документах (например, в документе Простой сотрудников) изменились или имеют конфликтующие периоды, инициируется фоновый пересчет для актуализации данных.
Во-вторых, механизм вытеснения в 1С настроен так, что Простой имеет приоритет над оплатой по окладу, но вступает в сложное взаимодействие с Больничным листом. Если у вас введены «рваные» периоды простоя (строго по сменам), программа при каждом открытии пытается сопоставить эти интервалы с периодом нетрудоспособности.
Если по закону пособие за период простоя не положено, мы должны правильно зафиксировать это для СФР (бывший ФСС), чтобы избежать штрафов и корректно ответить на проактивный запрос. Рассмотрим алгоритм действий:
Простой сотрудников проведен и его даты соответствуют приказам. Важно понимать, что в 1С:ЗУП простой — это рабочее время (сотрудник освобожден от выполнения обязанностей, но период остается в стаже).Больничный лист на вкладке «Оплата» необходимо проверить даты, за которые начисляется пособие. Если весь период поглощен простоем и болезнь началась во время простоя, программа может автоматически обнулить суммы.Ответ на запрос СФР для расчета пособия необходимо заполнить раздел «Периоды простоя» или «Исключаемые периоды». Если пособие совсем не требуется, выбирается соответствующий признак и код причины отказа («Весь период оплачен в простое» или иная подходящая причина).Если стандартного функционала недостаточно (например, требуется специфический расчет среднего, как в сообщении 91), рассмотрим логику возможной доработки. Нам потребуется анализировать данные из регистра сведений ДанныеСостоянийСотрудников.
Посмотрим на пример логики, которую можно реализовать для автоматизации контроля:
// Пример логики определения пересечения периодов
ПериодБЛ = Новый Период(Объект.ДатаНачала, Объект.ДатаОкончания);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Состояние, ДатаНачала, ДатаОкончания
ИЗ РегистрСведений.ДанныеСостоянийСотрудников
ГДЕ Сотрудник = &Сотрудник И Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Простой)";
// Далее следует сопоставление интервалов и расчет ограничения по п.7 ст.7 255-ФЗ
Важно помнить, что если вы используете доработанный функционал (как упомянуто в сообщении 0), то бесконечный пересчет («колесико») может быть вызван тем, что ваш код модифицирует данные, которые типовой механизм 1С считает «грязными», и пытается вернуть их к исходному состоянию.
Проанализируем ситуацию с выходными днями внутри простоя. Как отмечают эксперты на форуме, если приказы о простоях созданы только на рабочие смены (например, 1, 2-3, 5, 6-7 число), то дни между ними (в данном случае 4-е и 8-е января) формально не являются периодом простоя. Следовательно, за эти дни больничный должен быть оплачен в обычном порядке.
Важный момент: если вы решите полностью «удалить» больничный из программы, как предлагали некоторые участники обсуждения, вы рискуете нарушить права сотрудника. Больничный подтверждает уважительную причину отсутствия и может влиять на расчет среднего заработка в будущем (дни болезни исключаются из расчетного периода). Правильным подходом будет проведение документа с нулевой суммой оплаты за счет работодателя и СФР, но с корректной фиксацией состояния в системе.
Таким образом, для решения проблемы с постоянным пересчетом:
РассчитатьДокумент() при открытии формы.