При автоматизации управленческого учета, интеграции 1С со сторонними системами или расчете сложных систем мотивации часто возникает задача: получить сумму конкретных начислений сотрудника (например, только оклада и регулярных надбавок, исключая больничные и отпуска) «чистыми» — то есть за вычетом исчисленного НДФЛ и с учетом предоставленных налоговых вычетов.
В типовых конфигурациях 1С (таких как «Зарплата и Управление Персоналом 2.5» или «Управление производственным предприятием 1.3») НДФЛ рассчитывается в целом по сотруднику за налоговый период (месяц). Налог не привязывается напрямую к конкретным строкам начислений в расчетных листках. В этой статье мы подробно разберем, как решить эту задачу программно с помощью запросов и какие методологические подходы для этого существуют.
---
Этот подход является наиболее точным с точки зрения методологии и используется в некоторых специализированных (например, бюджетных) конфигурациях 1С, где необходимо разделять затраты и налоги по разным источникам финансирования. Суть метода заключается в том, чтобы распределить общую сумму исчисленного НДФЛ и предоставленных вычетов пропорционально суммам облагаемых начислений сотрудника за месяц.
Рассмотрим алгоритм распределения по шагам:
НДФЛСведенияОДоходах или непосредственно из регистров расчета.НДФЛРасчетыСБюджетом (или РасчетыНалогоплательщиковСБюджетомПоНДФЛ в зависимости от версии платформы).Математически формула выглядит следующим образом:
НДФЛ_Начисления = (Сумма_Начисления / Общая_Сумма_Облагаемого_Дохода) * Общий_НДФЛ_За_Месяц
После этого чистая сумма «на руки» по конкретному начислению рассчитывается как:
Чистая_Сумма = Сумма_Начисления - НДФЛ_Начисления
Проанализируем пример запроса для реализации этой схемы в ЗУП 2.5 / УПП 1.3:
ВЫБРАТЬ
ОсновныеНачисления.Сотрудник КАК Сотрудник,
ОсновныеНачисления.Результат КАК СуммаНачисления,
ОсновныеНачисления.ВидРасчета КАК ВидРасчета
ПОМЕСТИТЬ ВТ_ЦелевыеНачисления
ИЗ
РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисления
ГДЕ
ОсновныеНачисления.ПериодРегистрации = &ПериодРегистрации
И НЕ ОсновныеНачисления.ВидРасчета В (&ИсключаемыеВидыРасчета);
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
НДФЛДоходы.Сотрудник КАК Сотрудник,
СУММА(НДФЛДоходы.Сумма) КАК ОбщийОблагаемыйДоход
ПОМЕСТИТЬ ВТ_ОбщийДоход
ИЗ
РегистрНакопления.НДФЛСведенияОДоходах КАК НДФЛДоходы
ГДЕ
НДФЛДоходы.ПериодРегистрации = &ПериодРегистрации
ГРУППИРОВАТЬ ПО
НДФЛДоходы.Сотрудник;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
НДФЛРасчеты.Сотрудник КАК Сотрудник,
СУММА(НДФЛРасчеты.Налог) КАК ОбщийНДФЛ
ПОМЕСТИТЬ ВТ_ОбщийНДФЛ
ИЗ
РегистрНакопления.НДФЛСистемныйРегистр КАК НДФЛРасчеты // Имя регистра зависит от конфигурации
ГДЕ
НДФЛРасчеты.ПериодРегистрации = &ПериодРегистрации
ГРУППИРОВАТЬ ПО
НДФЛРасчеты.Сотрудник;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_ЦелевыеНачисления.Сотрудник,
ВТ_ЦелевыеНачисления.ВидРасчета,
ВТ_ЦелевыеНачисления.СуммаНачисления,
ВЫБОР
КОГДА ЕСТЬNULL(ВТ_ОбщийДоход.ОбщийОблагаемыйДоход, 0) = 0 Тогда 0
ИНАЧЕ (ВТ_ЦелевыеНачисления.СуммаНачисления / ВТ_ОбщийДоход.ОбщийОблагаемыйДоход) * ЕСТЬNULL(ВТ_ОбщийНДФЛ.ОбщийНДФЛ, 0)
КОНЕЦ КАК ДоляНДФЛ
ИЗ
ВТ_ЦелевыеНачисления КАК ВТ_ЦелевыеНачисления
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОбщийДоход КАК ВТ_ОбщийДоход
ПО ВТ_ЦелевыеНачисления.Сотрудник = ВТ_ОбщийДоход.Сотрудник
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОбщийНДФЛ КАК ВТ_ОбщийНДФЛ
ПО ВТ_ЦелевыеНачисления.Sotrudnik = ВТ_ОбщийНДФЛ.Сотрудник
---
Если в вашей организации внедрен строгий регламент выплаты зарплаты, вы можете пойти по более простому и надежному пути — использовать готовые данные из платежных документов. Для этого необходимо соблюдать следующее правило ведения учета:
Больничные листы и отпускные всегда должны выплачиваться отдельными межрасчетными ведомостями.
При такой схеме все регулярные начисления (оклад, премии, надбавки за вредность) выплачиваются в рамках итоговой ведомости за месяц. Программа 1С при заполнении ведомости на выплату зарплаты автоматически учитывает исчисленный НДФЛ, вычеты и все удержания (например, алименты по исполнительным листам).
Чтобы получить «чистую» сумму на руки по регулярной зарплате, вам достаточно проанализировать табличные части документов ЗарплатаКВыплатеОрганизаций за отчетный месяц, отобрав только те ведомости, в которых способ выплаты указан как «Зарплата» (или «Расчет»), и исключив ведомости с выплатами по больничным листам и отпускам. К полученной сумме при необходимости нужно прибавить удержания по исполнительным листам, которые уменьшили сумму к выплате, но фактически являются частью дохода сотрудника.
---
Иногда при детальном анализе бизнес-требований выясняется, что в сторонней программе, с которой ведется сравнение, вычеты вообще не учитываются, а «чистый» оклад рассчитывается путем математического вычитания 13%. В этом случае не имеет смысла усложнять алгоритмы в 1С.
Если в сторонней системе заложена логика «Оклад без НДФЛ = Оклад * 0.87», то и в 1С для сопоставления данных следует применить эту же формулу. Вычеты на детей, имущественные и социальные вычеты в таком случае полностью игнорируются при сравнении, так как они относятся к личным налоговым преференциям физического лица и не должны влиять на оценку выполнения производственных норм.
---
Разберем ситуацию, которая наглядно показывает, почему ручной расчет НДФЛ «на лету» с учетом вычетов практически невозможен без использования встроенных механизмов 1С. Представим сотрудника со следующими условиями:
Поскольку программа предоставляет вычеты строго в хронологическом порядке проведения документов, попытка рассчитать «чистый» оклад без привязки к датам проведения документов больничных и отпусков приведет к математическим искажениям. Именно поэтому рекомендуется использовать готовые данные регистров 1С (Метод 1) или ориентироваться на суммы к выплате в ведомостях (Метод 2).
---
Если вы планируете переход или уже работаете в современных конфигурациях на платформе 1С v8.3 (например, ЗУП 3.1), задача существенно упрощается. В системе реализован специализированный регистр накопления НачисленияУдержанияПоСотрудникам.
Этот регистр хранит детальные сведения обо всех начислениях, удержаниях и исчисленном НДФЛ в разрезе сотрудников и документов-оснований. Простой запрос к этому регистру позволяет получить сопоставленные данные по начислениям и налогам без необходимости писать сложные распределения вручную.