При работе с релизом 1С:Бухгалтерия предприятия 3.0.168.19 пользователи часто сталкиваются с критической ошибкой при попытке проведения документа Сведения об удержанном НДФЛ. Система выдает сообщение о невозможности изменения данных в запрещенном периоде, указывая на дату 01.01.0001 или требуя открыть период, который значительно предшествует дате самого документа. Рассмотрим подробнее, почему это происходит и как исправить ситуацию.
Проанализируем ситуацию: ошибка возникает не из-за того, что пользователь действительно пытается изменить старые данные, а из-за некорректного формирования движений по регистру накопления Расчет начисления налогов на ЕНС. В коде конфигурации при проведении документа программа рассчитывает сроки уплаты налога. Если по какой-то причине алгоритм не может определить крайний срок уплаты (например, из-за сбоя в учетной политике или отсутствия связи с начислениями), в поле Период или Срок уплаты записывается пустая дата — 01.01.0001.
Поскольку любая дата запрета редактирования (например, конец прошлого квартала) всегда позже, чем 01.01.0001, срабатывает механизм защиты данных. Программа «думает», что вы пытаетесь записать операцию в глубоком прошлом, и блокирует проведение. Выясним, какие технические узлы за это отвечают.
Посмотрим на фрагмент кода в общем модуле или модуле менеджера документа, который отвечает за движения по ЕНС. В процедуре СформироватьДвиженияРасчетНачисленияНалоговНаЕНС происходит заполнение записей регистра:
Процедура СформироватьДвиженияРасчетНачисленияНалоговНаЕНС(НалогиКУплате, Реквизиты, Движения)
Если Не ЗначениеЗаполнено(НалогиКУплате) Тогда
Возврат;
КонецЕсли;
ПериодРасчета = КонецМесяца(Реквизиты.Период);
Для каждого СтрокаНалога Из НалогиКУплате Цикл
Запись = Движения.РасчетНачисленияНалоговНаЕНС.Добавить();
ЗаполнитьЗначенияСвойств(Запись, СтрокаНалога);
// Ошибочное место: если СтрокаНалога.СрокУплаты не заполнена,
// Период становится 01.01.0001
Запись.Период = Макс(СтрокаНалога.СрокУплаты, Реквизиты.Период);
Запись.ПериодРасчета = ПериодРасчета;
Запись.Организация = Реквизиты.Организация;
КонецЦикла;
Движения.РасчетНачисленияНалоговНаЕНС.Записывать = Истина;
КонецПроцедуры
Как мы видим, поле Запись.Период напрямую зависит от значения СтрокаНалога.СрокУплаты. Если таблица НалогиКУплате содержит пустые значения дат, документ становится «непроводимым» при включенной дате запрета.
Разработчики 1С оперативно выпускают патчи для исправления ошибок в логике ЕНС. Проанализируем, все ли исправления установлены в вашей базе:
Сведениях об удержанном НДФЛ.Загрузить патчи.Документ Сведения об удержанном НДФЛ не существует в вакууме. Он тесно связан с данными о начисленной зарплате и налогах. Выясним, правильно ли подготовлена почва для проведения сведений:
Отражение зарплаты в бухучете за соответствующий месяц.Сведения об удержанном НДФЛ нажмем кнопку «Еще» — «Перезаполнить». Это принудительно обновит скрытые реквизиты строк, которые участвуют в формировании движений по регистрам ЕНС.Иногда ошибка в обработчике ПередЗаписью возникает из-за того, что в базе уже застряли движения с пустой датой от предыдущих неудачных попыток проведения. Система пытается их удалить или перезаписать, натыкается на дату запрета и блокирует процесс. Рассмотрим, как исправить регистр:
Проанализируем настройки учетной политики. Поскольку сроки уплаты НДФЛ в 2024 году жестко регламентированы, программа берет их из внутреннего классификатора. Убедимся, что:
Налоги и отчеты для НДФЛ верно указаны параметры регистрации в ИФНС.Таким образом, мы разобрали основные причины, по которым Сведения об удержанном НДФЛ могут конфликтовать с датой запрета. В большинстве случаев проблема решается комбинацией установки патча и перезаполнения документа после перепроведения отражения зарплаты.