В работе с конфигурациями на базе платформы «1С:Предприятие 8.2/8.3» с обычными формами (такими как «Комплексная автоматизация 1.1» или «Зарплата и управление персоналом 2.5») специалисты часто сталкиваются с ситуацией, когда при автоматическом заполнении документа Начисление зарплаты сотрудникам организаций конкретный работник игнорируется системой. Подобные проблемы вызывают трудности, так как внешне данные могут выглядеть корректно, а причина кроется глубоко в механизмах регистров расчета или специфике налогового учета НДФЛ.
В данной статье мы разберем технические причины такого поведения системы, проанализируем запрос, ответственный за выборку данных, и выясним, как ошибки в датах документов могут привести к отсутствию доходов в отчетности 2-НДФЛ.
Для понимания того, почему система «пропускает» сотрудника, сначала рассмотрим, как устроены регистры расчета в 1С. Основным объектом здесь выступает регистр расчета ОсновныеНачисленияРаботниковОрганизаций. В нем хранятся записи о плановых и разовых начислениях (оклады, премии, отпуска).
Важной особенностью является разделение на Период действия и Фактический период действия:
Рассмотрим ситуацию: если сотруднику начислен оклад на весь месяц, но в середине месяца он ушел в отпуск, то вид расчета «Отпуск» вытеснит «Оклад». В результате у записи оклада фактический период действия сократится. Если же отпуск или больничный покрывают месяц полностью, фактический период для оклада станет пустым.
Типовой запрос системы, который анализировал автор темы, проверяет наличие записей в регистре. Разберем его структуру:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Начисления.НомерСтроки КАК НомерСтроки
ИЗ
РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизации
ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия(Регистратор = &парамСсылка) КАК ОсновныеНачисленияРаботниковОрганизацииФактическийПериодДействия
ПО ОсновныеНачисленияРаботниковОрганизации.НомерСтроки = ОсновныеНачисленияРаботниковОрганизацииФактическийПериодДействия.НомерСтроки
И ОсновныеНачисленияРаботниковОрганизации.Регистратор = ОсновныеНачисленияРаботниковОрганизацииФактическийПериодДействия.Регистратор
ГДЕ
ОсновныеНачисленияРаботниковОрганизации.Регистратор = &парамСсылка
И ОсновныеНачисленияРаботниковОрганизацииФактическийПериодДействия.Регистратор ЕСТЬ NULL
Проанализируем это условие. Проверка ЕСТЬ NULL в сочетании с ЛЕВОЕ СОЕДИНЕНИЕ по виртуальной таблице ФактическийПериодДействия позволяет системе выявить записи, у которых фактический период не сформировался. Если запись полностью вытеснена или имеет некорректные настройки вытеснения в плане видов расчета, она может вызывать сбои при заполнении документа Начисление зарплаты.
В комплексной автоматизации 1.1 расчет НДФЛ имеет свои тонкости. В отличие от основных начислений (оклад), где доход признается по последнему дню месяца, для таких начислений, как отпускные и больничные, датой получения дохода является дата их выплаты (согласно законодательству, действовавшему в период актуальности КА 1.1).
Выясним причину, почему сотрудник может не попадать в документ для отражения НДФЛ. Даже если начисления по отпуску проведены корректно, система опирается на регистр накопления НДФЛ сведения о доходах. Если данные в этом регистре не соответствуют текущему расчетному периоду, документ заполнения их просто не увидит.
Посмотрим на основные регистры, которые задействованы в процессе:
РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций — здесь отражается сам факт и сумма отпуска.РегистрНакопления.НДФЛ сведения о доходах — здесь фиксируется дата получения дохода для целей налогового учета.РегистрНакопления.НДФЛ расчеты с бюджетом — здесь фиксируется исчисленный налог.Как правило, документ Начисление отпуска сотрудникам организаций самостоятельно делает движения по всем этим регистрам. Документ Начисление зарплаты лишь аккумулирует эти данные для окончательного расчета НДФЛ за месяц.
Рассмотрим конкретный случай из практики. Пользователь обнаружил, что все записи в регистрах вроде бы есть, но сотрудник упорно не попадает в итоговый документ месяца. После детального анализа выяснилось, что проблема заключалась в человеческом факторе при заполнении документа Начисление отпуска.
В документе начисления отпуска есть реквизит «Дата выплаты дохода» (или аналогичный реквизит, влияющий на учет НДФЛ в зависимости от релиза). Если в этом поле ошибочно указать дату из другого года (например, вместо 2020 поставить 2021), то произойдет следующее:
НДФЛ сведения о доходах запись появится, но с датой из будущего года.Начисления зарплаты за текущий месяц система запросит доходы именно за текущий период.Важный момент: такая ошибка также приводит к тому, что доход не отображается в справках 2-НДФЛ за текущий год, что является критичным для отчетности.
Проанализируем ситуацию и выполним следующие действия для исправления:
Начисление отпуска сотрудникам организаций, по которому возникли сомнения.НДФЛ сведения о доходах с правильной датой.Начисление зарплаты сотрудникам организаций и воспользуемся кнопкой Заполнить — По всем сотрудникам.Если после этого сотрудник все равно не попадает в документ, стоит проверить настройки Вида расчета. Убедимся, что для отпуска в плане видов расчета правильно указаны параметры налогового учета и он не вытесняет сам себя или другие важные начисления некорректным образом.
Подведем итог. Проблемы с заполнением документов в КА 1.1 чаще всего связаны либо с техническими коллизиями в регистрах расчета (вытеснение, пустой фактический период), либо с несоответствием дат в налоговом учете. Тщательная проверка движений документа через кнопку «Результат проведения» помогает быстро выявить, в какой именно период «ушли» суммы дохода и налога.
Помните, что налоговый учет в старых конфигурациях 1С крайне чувствителен к последовательности проведения документов и точности указания дат выплаты, так как именно они определяют налоговый период для НДФЛ.