При подготовке регламентированной отчетности бухгалтеры и специалисты по внедрению нередко сталкиваются с ситуацией, когда в Разделе 2 формы 6-НДФЛ даты получения дохода, удержания налога и срок перечисления (строки 100, 110, 120), а также сумма удержанного налога (строка 140) заполняются корректно, однако строка 130 (сумма фактически полученного дохода) остается абсолютно пустой. Проанализируем эту ситуацию на примере конфигурации «1С:Комплексная автоматизация 2», выясним причину такого поведения системы и рассмотрим практические способы решения проблемы без снятия базы с типовой поддержки.
Для понимания механизма сбора данных в отчете заглянем в структуру регистров накопления, отвечающих за учет НДФЛ. В типовых конфигурациях 1С формирование Раздела 2 строится на сопоставлении данных из двух ключевых регистров:
РасчетыНалогоплательщиковСБюджетомПоНДФЛ — в нем фиксируются факты исчисления и удержания налога. Записи с признаком «Удержано» содержат служебный реквизит УчитыватьВыплаченныйДоходВ6НДФЛ со значением Истина.СведенияОДоходахНДФЛ — оборотный регистр, в котором отражаются суммы начисленных доходов по кодам и датам их фактического получения. В данном регистре присутствует реквизит НеУчитыватьДоходВ6НДФЛ.Запрос заполнения регламентированного отчета 6-НДФЛ связывает удержанный налог с суммами доходов строго при соблюдении условия, что признак НеУчитыватьДоходВ6НДФЛ имеет значение Ложь. Назначение этого реквизита — отсекать доходы, которые не должны фигурировать в налоговой отчетности (например, полностью необлагаемые выплаты).
Однако в некоторых релизах конфигураций (в частности, в релизе КА 2.0.3.203) разработчиками была допущена программная ошибка: при проведении документов начисления зарплаты и прочих выплат всем формируемым движениям безусловно присваивалось значение НеУчитыватьДоходВ6НДФЛ = Истина. Зарплатный блок конфигурации «1С:Комплексная автоматизация 2» унаследован от конфигурации «1С:Зарплата и управление персоналом 3», но релизы КА выходят с определенным отставанием. В ЗУП указанная ошибка была оперативно устранена, тогда как в КА данные продолжали формироваться некорректно. В результате запрос отчета исключает начисленные доходы из выборки, и строка 130 остается незаполненной.
Если отчетность необходимо сдать немедленно, а времени на проведение технических процедур нет, воспользуемся штатной возможностью ручной корректировки отчета. Разберем порядок действий:
Если конфигурация находится на полной типовой поддержке и снимать ее с замка нельзя, исправим данные в регистре без модификации метаданных. Для этого изменим значение реквизита НеУчитыватьДоходВ6НДФЛ с Истина на Ложь в записях за закрываемый период.
Рассмотрим пример программной корректировки набора записей регистра с помощью внешней обработки:
НаборЗаписей = РегистрыНакопления.СведенияОДоходахНДФЛ.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ДокументСсылка);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
Если Запись.НеУчитыватьДоходВ6НДФЛ = Истина Тогда
Запись.НеУчитыватьДоходВ6НДФЛ = Ложь;
КонецЕсли;
КонецЦикла;
НаборЗаписей.Записать();
Также для выполнения этой операции можно применить стандартную обработку «Групповое изменение реквизитов», переключив ее в режим отображения служебных реквизитов и выполнив отбор по движениям регистра СведенияОДоходахНДФЛ за нужный период. После завершения корректировки откроем форму 6-НДФЛ и перезаполним отчет — строки 130 заполнятся автоматически.
Важное предостережение: если после выполнения ручной или программной корректировки движений документ-регистратор будет перепроведен, типовой алгоритм снова перезапишет реквизит в значение Истина. Поэтому до момента обновления конфигурации перепроводить документы за закрытый период не следует.
Если платформа поддерживает расширения конфигурации (файлы с расширением .cfe), решим проблему на программном уровне, сохранив типовую поддержку базы данных. Разберем по шагам создание расширения:
СведенияОДоходахНДФЛ при проведении начислений.&Вместо или &После скорректируем установку реквизита, принудительно задав Запись.НеУчитыватьДоходВ6НДФЛ = Ложь для облагаемых доходов.Наиболее надежный и методологически правильный вариант устранения проблемы — обновление конфигурации «1С:Комплексная автоматизация» на стабильный релиз, куда уже перенесены все исправления из ЗУП. После установки обновления обязательно выполним групповое перепроведение документов начисления доходов (начисление зарплаты, больничные листы, отпуска), чтобы система сформировала движения с корректно установленным признаком НеУчитыватьДоходВ6НДФЛ.