Как исправить ошибку «В таблице Документ.УвольнениеСписком поле Сотрудник не найдено» в 1С:ЗУП 3.1?

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

При работе в конфигурации «Зарплата и управление персоналом» (ЗУП) редакции 3.1 пользователи могут столкнуться с критической ошибкой при попытке открыть меню «Налог на доходы» в карточке сотрудника. Программа выдает сообщение: ошибка {ОбщийМодуль.ОбщегоНазначенияБЗК.Модуль(72)}: Неверный второй параметр ИменаРеквизитов: - В таблице "Документ.УвольнениеСписком" поле "Сотрудник" не найдено. Эта проблема блокирует просмотр сведений о вычетах и настройках НДФЛ, что критично для ведения учета.

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

Выясним причину возникновения ошибки

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

Основная сложность заключается в следующем: в старых версиях кода 1С или при определенных условиях обновления система выполняет динамический запрос к документам-регистраторам. Она ожидает, что у любого документа, связанного с кадровыми изменениями (например, Документ.Увольнение), реквизит Сотрудник находится непосредственно в шапке. Однако в документе Увольнение списком данные хранятся в табличной части, а в шапке поля Сотрудник просто не существует.

Когда программный код пытается программно прочитать значение Документ.УвольнениеСписком.Сотрудник, платформа закономерно выдает исключение, так как не находит указанного поля в структуре метаданных шапки документа.

Метод 1: Корректировка регистров через перенос данных

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

  1. Перейдем в раздел «Администрирование» — «Обслуживание» — «Регистры сведений».
  2. Найдем регистр Стандартные вычеты физических лиц по НДФЛ.
  3. Установим отбор по проблемному сотруднику.
  4. Проанализируем колонку «Регистратор». Если там фигурирует Увольнение списком или некорректная запись Перенос данных, ссылающаяся на старое списочное увольнение, запись необходимо скорректировать.
  5. В ряде случаев помогает временное удаление записей о личных вычетах в этом регистре, если они ссылаются на битые или неподдерживаемые объекты.

Метод 2: Разделение списочного документа на индивидуальные

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

Разберем этот процесс по шагам:

  1. Найдем документ Увольнение списком, в котором фигурирует проблемный сотрудник.
  2. Посмотрим, какие данные внесены в строку этого сотрудника (дата увольнения, статья, компенсации, выплаты).
  3. Удалим строку сотрудника из списочного документа и проведем его.
  4. Создадим новый документ Увольнение (одиночный) на этого сотрудника с теми же данными.
  5. Поскольку в одиночном документе поле Сотрудник находится в шапке, код 1С корректно его прочитает при формировании формы НДФЛ.

Метод 3: Использование группового изменения реквизитов

Если документов много и ручная правка невозможна, воспользуемся инструментом «Групповое изменение реквизитов». Это позволит нам массово проверить ссылки в регистрах.

Рассмотрим порядок действий:

  1. Откроем «Групповое изменение реквизитов» (через «Все функции» или «Функции для технического специалиста»).
  2. Выберем объект — РегистрСведений.СтандартныеВычетыФизическихЛицНДФЛ.
  3. В настройках (кнопка «Дополнительные параметры») включим флажок «Показывать служебные реквизиты».
  4. Отберем записи, где Регистратор имеет тип Документ.УвольнениеСписком.
  5. В таких записях необходимо проверить корректность заполнения связей. Однако будьте осторожны: прямое изменение регистратора может нарушить целостность данных. Этот метод рекомендуется только опытным программистам для анализа масштаба проблемы.

Метод 4: Ограничение срока действия вычетов

Выясним еще одну хитрость. Иногда система «ломается», пытаясь прочитать историю вычетов за весь период работы сотрудника. Если мы вручную «отсечем» обращение к старому проблемному документу, ошибка может исчезнуть.

Попробуем следующий алгоритм:

  1. Зайдем в карточку сотрудника.
  2. Перейдем по ссылке «Налог на доходы». Если она не открывается, перейдем в раздел «Заявления на вычеты».
  3. Создадим новое Заявление на вычеты.
  4. В заявлении установим дату прекращения действия старых вычетов (датой, предшествующей дате проблемного увольнения).
  5. Это заставит систему при построении текущего представления игнорировать старые некорректные записи регистра.

Метод 5: Техническое обслуживание базы (Тестирование и исправление)

Если все вышеперечисленное не помогает, проанализируем состояние ссылочной целостности базы. Возможно, в базе присутствуют «битые» ссылки, когда объект метаданных был удален или некорректно изменен при обновлении.

Выполним следующие шаги в режиме Конфигуратор:

  1. Обязательно создадим резервную копию базы данных.
  2. Перейдем в меню «Администрирование» — «Тестирование и исправление».
  3. Установим флажки:
    • Проверка логической целостности;
    • Проверка ссылочной целостности.
  4. В блоке «При наличии ссылок на несуществующие объекты» выберем «Очищать ссылки».
  5. Запустим процесс. После завершения система может вычистить некорректные записи в регистрах НДФЛ, которые ссылались на несуществующие или поврежденные поля документов.

Рекомендации по обновлению и патчам

Стоит отметить, что данная проблема является признанной программной ошибкой в некоторых релизах ветки 3.1.8 и 3.1.9. Фирма 1С выпускала официальные исправления (патчи) для решения этой коллизии. Проверьте в разделе «Администрирование» — «Обслуживание» — «Обновление программы» — «Установленные исправления (патчи)» наличие патчей, связанных с УвольнениеСписком.

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

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

← На главную