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