При работе в конфигурации «Зарплата и управление персоналом» (ЗУП) редакции 3.1 пользователи могут столкнуться с критической ошибкой при попытке открыть меню «Налог на доходы» в карточке сотрудника. Программа выдает сообщение: ошибка {ОбщийМодуль.ОбщегоНазначенияБЗК.Модуль(72)}: Неверный второй параметр ИменаРеквизитов: - В таблице "Документ.УвольнениеСписком" поле "Сотрудник" не найдено. Эта проблема блокирует просмотр сведений о вычетах и настройках НДФЛ, что критично для ведения учета.
В данной статье мы подробно разберем, почему возникает эта ошибка, проанализируем механизмы работы конфигурации и рассмотрим несколько способов решения проблемы — от простых корректировок данных до использования встроенных инструментов исправления базы.
Проанализируем техническую сторону вопроса. Ошибка возникает в момент выполнения процедуры ОбщийМодуль.СотрудникиФормы.Модуль.ПолучитьСведенияОВычетахНДФЛ(ФизическоеЛицо). Система пытается собрать историю всех документов, которые влияли на право сотрудника на стандартные или иные вычеты. Для этого она обращается к регистрам сведений, таким как Стандартные вычеты физических лиц по НДФЛ или Применение стандартных вычетов по НДФЛ.
Основная сложность заключается в следующем: в старых версиях кода 1С или при определенных условиях обновления система выполняет динамический запрос к документам-регистраторам. Она ожидает, что у любого документа, связанного с кадровыми изменениями (например, Документ.Увольнение), реквизит Сотрудник находится непосредственно в шапке. Однако в документе Увольнение списком данные хранятся в табличной части, а в шапке поля Сотрудник просто не существует.
Когда программный код пытается программно прочитать значение Документ.УвольнениеСписком.Сотрудник, платформа закономерно выдает исключение, так как не находит указанного поля в структуре метаданных шапки документа.
Рассмотрим ситуацию, часто возникающую после миграции из ЗУП 2.5. При «кратком» переносе данных часто создаются технические документы Перенос данных. Если в регистре сведений по вычетам НДФЛ в качестве документа-основания (регистратора) указан списочный документ, это приведет к сбою.
Стандартные вычеты физических лиц по НДФЛ.Увольнение списком или некорректная запись Перенос данных, ссылающаяся на старое списочное увольнение, запись необходимо скорректировать.Если ошибка возникает по «свежим» документам, созданным уже в текущей базе, самым надежным (хоть и трудозатратным) способом будет замена одного списочного документа на несколько индивидуальных.
Разберем этот процесс по шагам:
Увольнение списком, в котором фигурирует проблемный сотрудник.Увольнение (одиночный) на этого сотрудника с теми же данными.Сотрудник находится в шапке, код 1С корректно его прочитает при формировании формы НДФЛ.Если документов много и ручная правка невозможна, воспользуемся инструментом «Групповое изменение реквизитов». Это позволит нам массово проверить ссылки в регистрах.
Рассмотрим порядок действий:
РегистрСведений.СтандартныеВычетыФизическихЛицНДФЛ.Регистратор имеет тип Документ.УвольнениеСписком.Выясним еще одну хитрость. Иногда система «ломается», пытаясь прочитать историю вычетов за весь период работы сотрудника. Если мы вручную «отсечем» обращение к старому проблемному документу, ошибка может исчезнуть.
Попробуем следующий алгоритм:
Заявление на вычеты.Если все вышеперечисленное не помогает, проанализируем состояние ссылочной целостности базы. Возможно, в базе присутствуют «битые» ссылки, когда объект метаданных был удален или некорректно изменен при обновлении.
Выполним следующие шаги в режиме Конфигуратор:
Стоит отметить, что данная проблема является признанной программной ошибкой в некоторых релизах ветки 3.1.8 и 3.1.9. Фирма 1С выпускала официальные исправления (патчи) для решения этой коллизии. Проверьте в разделе «Администрирование» — «Обслуживание» — «Обновление программы» — «Установленные исправления (патчи)» наличие патчей, связанных с УвольнениеСписком.
Если вы используете версию ниже 3.1.10, настоятельно рекомендуем обновиться до актуальных релизов (например, ветки 3.1.27 или 3.1.30), где механизм получения сведений о сотруднике был полностью переписан. В современных версиях система сначала проверяет тип документа и, если это списочный документ, корректно обращается к его табличной части, не пытаясь найти поле Сотрудник в шапке.
Таким образом, комбинируя методы очистки регистров и обновления конфигурации, мы можем полностью устранить ошибку и восстановить нормальную работу кадровой службы.