Почему в январе больничный лист неправильно распределяется по статьям финансирования и как это исправить?

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

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

Выясним причину: почему база берется не за два расчетных года

Для расчета среднедневного заработка по больничным листам берется заработок за два предшествующих календарных года. Однако распределение начисленного пособия по статьям финансирования (источникам) строится по совершенно иному принципу. Разберем официальную позицию разработчиков 1С и архитектурные ограничения учетной системы:

  1. Наличие сторонних работодателей. Пособие исчисляется с учетом справок о сумме заработка за два года, полученных от предыдущих страхователей. У сторонних работодателей нет статей финансирования и аналитики нашего учреждения. Отнести сумму на источник, которого никогда не было в текущей организации, программа не может.
  2. Закрытые и недействующие источники. За два года целевые субсидии, договоры или внебюджетные программы могли завершиться. Если распределять пособие по исторической базе двух лет, система попытается сформировать проводки по закрытым кодам бюджетной классификации, что вызовет фатальные ошибки контроля бюджетных обязательств при синхронизации с бухгалтерской программой.
  3. Механизм распределения текущего года. В конфигурации реализован следующий алгоритм: пособия распределяются пропорционально доходам, облагаемым взносами в ФСС, с начала текущего календарного года по период регистрации больничного листа.

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

Решение 1. Корректировка порядка проведения документов в расчетном периоде

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

  1. В начале января при предоставлении листка нетрудоспособности регистрируем только факт отсутствия сотрудника на рабочем месте документом Невыходы в организациях или отметкой в табеле учета рабочего времени.
  2. В конце месяца в плановом порядке рассчитываем и проводим документ Начисление зарплаты работникам организаций за январь. В регистрах расчета появляются фактические начисления текущего года с указанием статей финансирования и КОСГУ.
  3. Открываем документ Начисление по больничному листу и нажимаем кнопку перерасчета. Система находит сформированную базу января и корректно делит пособие пропорционально долям заработка по источникам текущего месяца.

Решение 2. Использование документа распределения заработка

Если больничный необходимо рассчитать в межрасчетный период до начисления основной заработной платы, а автоматическая подстановка по умолчанию относит расход не на тот источник, рассмотрим регламентный документ Ввод распределения заработка сотрудников (или Распределение заработка):

  1. Вводим документ распределения заработка на сотрудника на текущий расчетный месяц (январь).
  2. Задаем фиксированные доли источников финансирования в процентах или коэффициентах согласно действующему трудовому договору или штатному расписанию.
  3. Перерассчитываем больничный лист. При расчете начислений программа в первую очередь обращается к индивидуальным пропорциям, заданным данным документом.

Решение 3. Итоговая корректировка в отражении зарплаты в бухучете

Если выплата пособия уже произведена, а документ больничного листа закрыт от изменений, исправление распределения можно выполнить на этапе финального закрытия месяца. Для этого проанализируем документ Отражение зарплаты в регламентированном учете:

  1. Формируем и автоматически заполняем документ отражения зарплаты в конце января после проведения всех начислений.
  2. Находим строки с начисленным пособием по временной нетрудоспособности.
  3. Вручную или с помощью переподбора способов отражения указываем корректные статьи финансирования, КЭК (КОСГУ) и счета бухгалтерского учета перед передачей данных в бухгалтерский контур.

Решение 4. Доработка функции формирования базы в общем модуле

Если специфика учреждения строго требует распределять больничный пропорционально заработку за предшествующие расчетные периоды, а не доходам января, потребуется доработка конфигурации. Рассмотрим процедуру изменения алгоритма в общем модуле ОтражениеВУчете в функции ПолучитьБазуПособийПоСоциальномуСтрахованию2011.

В типовом решении период формирования базы жестко ограничен началом текущего года. Заменим данное ограничение на границы периода расчета среднего заработка:


Функция ПолучитьБазуПособийПоСоциальномуСтрахованию2011(Регистратор, Начисления)
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Регистратор", Регистратор);
	Запрос.УстановитьПараметр("Начисления", Начисления);
	
	// Передаем границы периода расчета среднего заработка из документа
	Запрос.УстановитьПараметр("ПериодРасчетаСреднегоЗаработкаНачало", Регистратор.ПериодРасчетаСреднегоЗаработкаНачало);
	Запрос.УстановитьПараметр("ПериодРасчетаСреднегоЗаработкаОкончание", Регистратор.ПериодРасчетаСреднегоЗаработкаОкончание);

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

	ВременнаяТаблица = Запрос.Выполнить().Выгрузить();
	Возврат ВременнаяТаблица;
КонецФункции

Оценим риски программного изменения алгоритма

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

  1. Появление неактуальных источников финансирования. Если сотруднику оплачивали работу из средств целевого гранта или разового договора два года назад, программа попытается списать часть больничного листа на эту закрытую статью. Бухгалтерская программа выдаст ошибку отсутствия лимитов бюджетных обязательств или закрытия счета.
  2. Искажение долей у вновь принятых работников. Если человек отработал в учреждении всего пару месяцев, а остальной заработок за два года подтвержден справкой с предыдущего места работы, расчет базы за 24 месяца в текущей базе учтет только микроскопическую часть заработка, что приведет к неверному соотношению статей.
  3. Снижение скорости расчета. Сканирование таблиц БУОсновныеНачисления и БУДополнительныеНачисления за 24 месяца вместо одного месяца при массовом вводе листков нетрудоспособности ощутимо замедляет проведение документов на крупных базах данных.

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

← На главную