При ежедневной работе в программе «1С:Зарплата и управление персоналом 3.1» расчетчики часто сталкиваются с ситуацией: на календаре уже наступил новый месяц, создается новый расчетный документ (например, Больничный лист), дата самого документа проставляется сегодняшним числом, однако в поле Месяц система упорно выставляет предыдущий расчетный период. Выясним причину такого поведения конфигурации и разберем по шагам, как исправить и настроить автоподстановку месяца.
Рассмотрим внутреннюю логику программы. В 1С:ЗУП 3.1 автоматическое заполнение реквизита Месяц при создании нового документа не всегда привязано к текущей системной дате компьютера. Для большинства документов начисления расчетный месяц жестко завязан на плановую дату выплаты зарплаты, указанную в настройках учетной политики организации.
Все расчетные документы условно разделяются на две основные группы по порядку выплаты дохода:
Больничный лист, Начисление зарплаты и взносов, Премия, Разовое начисление, Материальная помощь, Табель учета рабочего времени и ведомости на выплату. В этих документах по умолчанию предполагается порядок выплаты С зарплатой. Программа сравнивает текущую дату документа с днем выплаты зарплаты за предыдущий месяц. Если плановая дата выплаты зарплаты еще не наступила (например, зарплата установлена на 10-е число следующего месяца, а документ вводится 6-го числа), система считает, что расчеты за прошлый период еще не закрыты, и автоматически подставляет в реквизит Месяц прошлый месяц. Текущий месяц начнет подставляться только на следующий день после даты выплаты.Отпуск, по умолчанию в типовом коде заложен характер выплаты в межрасчетный период:
Если Не ЗначениеЗаполнено(ПорядокВыплаты) Тогда
ПорядокВыплаты = Перечисления.ХарактерВыплатыЗарплаты.Межрасчет;
КонецЕсли;
Отпуск автоматически выставляется прошлый период, это сигнализирует либо о наличии фильтра в форме списка, либо о внесенных доработках конфигурации (расширениях), изменивших логику по умолчанию.Проанализируем основную причину сдвига расчетного периода в таких документах, как Больничный лист. Если предприятие фактически рассчиталось с сотрудниками за прошлый месяц раньше установленного срока (например, зарплату за август фактически перечислили 5 сентября, а в настройках программы днем выплаты значится 15-е число), программа вплоть до 15 сентября будет считать август открытым для расчетов месяцем.
Разберем по шагам, как проверить и скорректировать плановые даты выплаты:
Больничный лист в поле Месяц автоматически заполнится текущий месяц (сентябрь).Рассмотрим нюанс, связанный с нерабочими днями. Согласно Трудовому кодексу РФ и алгоритмам 1С:ЗУП, если дата выплаты приходится на выходной или праздничный день, плановая дата выплаты автоматически смещается на предшествующий рабочий день согласно производственному календарю.
Следовательно, момент автоматического переключения расчетного периода в конфигурации также сдвигается на предшествующий день. Убедимся, что производственный календарь в базе заполнен корректно на текущий год.
Разберем ситуацию, когда прошлый месяц подставляется даже в те документы, которые должны открываться текущим периодом (например, Отпуск). Платформа «1С:Предприятие 8.3» обладает типовым свойством: при интерактивном создании нового объекта из формы списка с установленным отбором реквизиты нового документа автоматически заполняются значениями из этого отбора.
Проанализируем, каким именно способом формируется документ:
F9 или команды «Скопировать» реквизит Месяц всегда копируется из исходного документа без применения правил автоподстановки. Для регистрации данных за новый период создадим документ через кнопку «Создать».Отпуск создается на основании кадрового приказа или документа Отпуск списком, период и расчетный месяц могут наследоваться из документа-основания.Отпуск флаг «Рассчитать зарплату за...». При расчете зарплаты в межрасчетном документе включается зависимость от планового периода выплаты регулярной заработной платы.Если из-за неправильно выбранного месяца в базе уже проведен массив документов, важно помнить о рисках: начисление страховых взносов жестко привязано к реквизиту Месяц, а проведение задним числом может блокироваться датой запрета изменения данных.
ОбработкаЗаполнения соответствующего документа или обработчик формы ПриСозданииНаСервере, принудительно задав Объект.МесяцНачисления = НачалоМесяца(ТекущаяДатаСеанса()).