Как исправить ошибку «Поле ПримененныйВычетРасходыНаЛекарства не обнаружено» при начислении зарплаты в 1С:ЗУП

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом Налоговый учет
← На главную

При выполнении операции «Заполнить» в документе «Начисление зарплаты и взносов» пользователи версии 1С:ЗУП 3.1 могут столкнуться с критической ошибкой фонового задания. Текст ошибки обычно содержит указание на недопустимое значение параметра в общем модуле УчетНДФЛАрхивныеАлгоритмы и сообщение: Поле 'ПримененныйВычетРасходыНаЛекарства' объекта 'Строка таблицы значений' не обнаружено. Проанализируем причины возникновения этой проблемы и разберем по шагам методы её решения.

Техническая природа проблемы

Ситуация возникает из-за конфликта в программном коде 1С, когда система обращается к устаревшим (архивным) алгоритмам расчета НДФЛ. В процессе работы процедура ЗаполнитьЗначенияСвойств пытается скопировать данные из одной таблицы значений в другую. В источнике данных колонка ПримененныйВычетРасходыНаЛекарства присутствует (так как она была добавлена в последних релизах для учета новых социальных вычетов), а в приемнике — структуре, сформированной старым алгоритмом — её нет. Это вызывает аварийное завершение процесса.

Решение 1: Обновление платформы 1С:Предприятие

Одной из наиболее вероятных причин является ошибка самой платформы, которая некорректно обрабатывает динамические структуры данных в фоновых заданиях. Разберем этот вариант первым. Выясним, какая версия платформы используется в вашей информационной базе. По отзывам технических специалистов, данная проблема была зафиксирована в релизах ветки 8.3.20 и успешно исправлена, начиная с версии 8.3.20.1613 и выше.

Рекомендация: Если ваша платформа ниже указанной версии, выполните обновление. Часто это полностью устраняет программный сбой без необходимости внесения правок в данные учета.

Решение 2: Проверка на дублирование сотрудников

Рассмотрим ситуацию, когда ошибка вызвана некорректным состоянием справочника физических лиц и сотрудников. Проанализируем список сотрудников, по которым не проходит расчет. Если в базе существуют «двойники» (два элемента справочника Сотрудники, привязанные к одному Физическому лицу, или два разных физических лица для одного человека), алгоритм расчета НДФЛ может «запутаться» при попытке собрать данные по вычетам из разных карточек.

Для исправления воспользуемся стандартной обработкой «Поиск и удаление дублей». Объединим найденные дубли, предварительно убедившись, что все документы перепривязаны к основному объекту. После этого попробуем перезаполнить документ начисления.

Решение 3: Использование метода «Подбор» вместо «Заполнить»

Посмотрим на практический «лайфхак», который часто помогает обойти программную ошибку без глубокого анализа кода. Ошибка часто возникает именно при использовании автоматического заполнения по всей организации (кнопка «Заполнить»), так как это инициирует сложный механизм формирования очередей фоновых заданий.

Разберем алгоритм обхода:

  1. Очистим табличную часть документа «Начисление зарплаты».
  2. Нажмем кнопку «Подбор».
  3. В открывшемся окне выделим всех сотрудников (используя сочетание клавиш Ctrl+A).
  4. Перенесем их в документ.

Как показывает практика, при таком способе добавления 1С использует иные методы инициализации таблиц, и поле ПримененныйВычетРасходыНаЛекарства создается корректно. Однако будьте внимательны: после такого начисления на вкладке «НДФЛ» могут появиться корректировки за прошлые периоды, которые необходимо проверить.

Решение 4: Поиск некорректных дат в документах НДФЛ

Проанализируем ситуацию, когда программа обращается к архивным алгоритмам из-за наличия «битых» данных в прошлых периодах. Выясним, нет ли в системе документов, дата которых ошибочно установлена далеко в прошлом (например, 2002 год вместо 2022).

Чаще всего виновником становится документ «Операция учета НДФЛ». Если в таком документе дата дохода указана неверно, система при расчете текущей зарплаты пытается пересчитать налог, начиная с этой аномальной даты, задействуя старые модули. Для поиска таких записей рекомендуем проверить регистр накопления НачисленияДоходыПоНДФЛ через «Функции для технического специалиста». Отфильтруем записи по дате и проверим, нет ли выпадающих периодов.

Решение 5: Очистка кэша и работа с патчами

Если вышеуказанные способы не помогли, разберем технические аспекты обслуживания базы. Ошибка может быть следствием некорректного применения автоматических исправлений (патчей) или остатков в кэше сервера.

  1. Очистка кэша: Удалим базу из списка и добавим её заново, либо вручную очистим папки в профиле пользователя на сервере и локальном компьютере.
  2. Управление патчами: Зайдем в раздел «Администрирование» — «Обслуживание» — «Обновление программы» — «Установленные исправления (патчи)». Проверим наличие патчей, связанных с НДФЛ. Иногда помогает удаление старых патчей, которые могут конфликтовать с текущим релизом конфигурации.
  3. Расширения: Отключим временно все расширения конфигурации. Даже если расширение не касается НДФЛ напрямую, оно может влиять на структуру временных таблиц при вызове общего модуля УчетНДФЛАрхивныеАлгоритмы.

Решение 6: Анализ уведомлений на вычеты

Поскольку ошибка прямо указывает на поле ПримененныйВычетРасходыНаЛекарства, проанализируем документы «Уведомление о праве на вычеты». Посмотрим, нет ли за текущий год уведомлений, в которых фигурируют социальные вычеты на медицинские услуги. Ошибка может возникать, если в документе заполнены суммы, но по какой-то причине не проинициализированы структуры данных для их распределения. Попробуем временно пометить такие уведомления на удаление и перезаполнить начисление зарплаты, чтобы локализовать проблемного сотрудника.

Подводя итог, можно сказать, что данная проблема является комплексной. Рекомендуется начинать с обновления платформы и использования метода «Подбор», а при их неэффективности — переходить к детальному аудиту регистров НДФЛ на предмет аномальных дат и дублей физических лиц.

← На главную