При работе в системе 1С:ERP Управление предприятием (редакции 2.4 и 2.5) бухгалтеры и технические специалисты часто сталкиваются с ситуацией, когда стандартные механизмы отражения зарплаты ведут себя «негибко». Одной из таких проблем является автоматическое использование счетов 96.01.1 (для сумм отпускных) и 96.01.2 (для страховых взносов) при выполнении операции «Ежегодный отпуск за счет оценочных обязательств». В ряде случаев учетная политика организации требует использования счета 96.09 («Прочие оценочные обязательства»), однако типовые настройки программы не позволяют изменить этот параметр в пользовательском режиме.
В этой статье мы подробно разберем, почему система навязывает использование определенных счетов, и рассмотрим программные способы решения этой задачи, сохранив целостность учета.
Проанализируем ситуацию: в отличие от большинства затратных счетов, которые настраиваются через Группы финансового учета (ГФУ) или Способы отражения зарплаты, счета оценочных обязательств в документе ОтражениеЗарплатыВФинансовомУчете определяются программно. Если мы откроем модуль менеджера данного документа, то обнаружим функцию (обычно она называется ТекстЗапросаОтражениеВРеглУчете), в которой текст запроса формирует проводки напрямую. В коде жестко прописано: если вид операции соответствует отпуску за счет резервов, в качестве дебетового счета подставлять предопределенные счета 96.01.1 или 96.01.2.
Это сделано разработчиками для обеспечения жесткой связи между подсистемой расчета резервов и регламентированным учетом. Однако, если ваша задача — использовать счет 96.09, нам придется прибегнуть к кастомизации системы.
Рассмотрим наиболее современный и безопасный способ — использование расширения. Нам не нужно снимать основную конфигурацию с поддержки. Мы можем перехватить формирование текста запроса и заменить имена счетов в нем. Проанализируем процедуру формирования проводок в модуле менеджера.
Алгоритм действий будет следующим:
ОтражениеЗарплатыВФинансовомУчете функцию, отвечающую за генерацию текста запроса для проводок.&Вместо для подмены этой функции.ПланыСчетов.Хозрасчетный.ОценочныеОбязательстваПоВознаграждениямРаботникам (или их строковые представления) и заменяем их на ПланыСчетов.Хозрасчетный.ПрочиеОценочныеОбязательства.Важный нюанс: при замене счета необходимо убедиться, что структура субконто на счете 96.09 совпадает со структурой на 96.01. Если на счете 96.09 не хватает аналитик (например, «Резервы и оценочные обязательства»), их нужно будет добавить, иначе система выдаст ошибку при проведении.
Если вы не хотите глубоко внедряться в алгоритмы формирования запросов, можно использовать механизм Подписки на события. Этот метод проще в реализации, но требует внимательности при работе с налоговым учетом.
Рассмотрим шаги по реализации:
ОтражениеЗарплатыВФинансовомУчете на событие ОбработкаПроведения.Хозрасчетный, фильтрует их по нужным критериям и заменяет счета.Пример программной реализации в подписке может выглядеть следующим образом:
Процедура ПриПроведенииОтраженияЗарплаты(Источник, Отказ, РежимПроведения) Экспорт
// Получаем набор записей регистра бухгалтерии
НаборДвижений = Источник.Движения.Хозрасчетный;
НаборДвижений.Прочитать();
Для Каждого Движение Из НаборДвижений Цикл
// Проверяем дебет счета 96.01.1 или 96.01.2
Если Движение.СчетДт = ПланыСчетов.Хозрасчетный.ОценочныеОбязательстваПоВознаграждениямРаботникам ИЛИ
Движение.СчетДт = ПланыСчетов.Хозрасчетный.ОценочныеОбязательстваПоСтраховымВзносам Тогда
// Заменяем на нужный нам счет 96.09
Движение.СчетДт = ПланыСчетов.Хозрасчетный.ПрочиеОценочныеОбязательства;
// Не забываем про налоговый учет (НУ), если организация его ведет
Движение.СчетДтНУ = ПланыСчетов.Хозрасчетный.ПрочиеОценочныеОбязательства;
КонецЕсли;
КонецЦикла;
// Записываем измененные движения
НаборДвижений.Записать();
КонецПроцедуры
Анализируем ситуацию с аналитикой: При такой замене критически важно, чтобы значения субконто из старого счета корректно перенеслись на новый. Если вы используете счет 96.09, проверьте настройки в Плане счетов: там должна быть включена аналитика по подразделениям и работникам, если вы хотите сохранить детальный учет.
Выясним причину, по которой простая замена счета может привести к проблемам в конце месяца. В системе 1С:ERP расчеты по ПБУ 18/02 (если они применяются) строятся на сопоставлении данных бухгалтерского и налогового учета. Если вы изменили счет в БУ на 96.09, но забыли изменить его в НУ, или если на счете 96.09 в налоговом учете не предусмотрено ведение резервов согласно вашей учетной политике, возникнут нежелательные разницы.
Поэтому при доработке кода (хоть через расширение, хоть через подписку) всегда проверяйте корректность заполнения ресурсов СуммаНУ, СуммаПР и СуммаВР. Резервы по отпускам — это сложный участок, где налоговый учет часто отличается от бухгалтерского (например, при использовании метода МСФО в БУ и нормативного метода в НУ).
Разберем ситуацию, когда изменение счета требуется только для красивой картинки в отчетности (например, в бухгалтерском балансе). Если ваша цель — чтобы суммы по счету 96.01 попадали в строку «Прочие обязательства», а не в «Кредиторскую задолженность» или иные специфические строки, вы можете просто настроить Формы бухгалтерской отчетности.
В настройках заполнения баланса можно указать, что сальдо счета 96.01 должно агрегироваться в нужную вам строку. Это избавит вас от необходимости менять программный код и гарантирует отсутствие ошибок в логике работы документа Резервы отпусков, который также «завязан» на счета 96.01.
Подведем итог: изменить счет в документе «Отражение зарплаты в финансовом учете» в типовой конфигурации через настройки нельзя. Это ограничение зашито на уровне программного кода модуля менеджера. Однако, используя расширение с перехватом запроса или подписку на событие проведения, программист 1С может реализовать эту задачу за короткое время. При реализации всегда помните о:
Проанализировав все варианты, мы рекомендуем использовать расширение конфигурации, так как оно позволяет точечно изменить алгоритм, не нарушая общую логику системы.