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