Как исправить ошибку «Поле объекта не обнаружено СуммаДополнения» при расчете удержаний по исполнительным листам в 1С:ЗУП?

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

При работе в программе 1С:Зарплата и управление персоналом 8 (редакция 3.1) пользователи могут столкнуться с неприятной ситуацией: документ Начисление зарплаты и взносов отказывается рассчитываться, выдавая ошибку: «поле объекта не обнаружено СуммаДополнения». Чаще всего это происходит именно в тех базах, где введены документы Исполнительный лист. Ситуация осложняется тем, что ошибка может проявляться в одной информационной базе и отсутствовать в другой при идентичных релизах конфигурации и платформы.

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

Анализ природы ошибки

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

Шаг 1. Очистка кэша и «перерегистрация» базы

Рассмотрим самый простой, но часто наиболее эффективный метод. Как показывает практика, ошибка «поле объекта не обнаружено» часто является следствием некорректного кэширования метаданных платформой 1С:Предприятие 8.3.

Проанализируем ситуацию: если в одной базе расчет проходит успешно, а в другой — нет, при этом версии конфигураций совпадают, проблема кроется в локальных файлах пользователя или временных данных сервера. Обычной очистки папки AppData может быть недостаточно. Мы рекомендуем выполнить следующие действия:

  1. Закройте все сеансы работы с программой.
  2. Удалите информационную базу из списка в окне запуска 1С.
  3. Добавьте её заново, но при этом обязательно измените наименование базы в списке (например, добавьте точку или лишний пробел в конце названия).
  4. Такое действие принудительно заставит платформу создать новую папку кэша для этой базы, что полностью исключит влияние старых временных файлов.

Шаг 2. Проверка расширений конфигурации

Выясним причину возможного конфликта на уровне программного кода. Даже если расширение не предназначено для изменения логики исполнительных листов, оно может затрагивать общие модули расчета зарплаты, такие как РасчетЗарплатыРасширенный или ПроцедурыРасчетаУдержаний. При обновлении основного релиза ЗУП (например, на версию 3.1.20.36 и выше) структура временных таблиц в коде может измениться, а расширение продолжит обращаться к старым полям.

Для проверки выполните следующие действия:

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

Шаг 3. Ревизия настроек вида удержания и расчетной базы

Иногда корень проблемы кроется в настройках самого удержания. В 1С:ЗУП удержание по исполнительному листу имеет предопределенную логику, но список начислений, входящих в его базу, настраивается пользователем.

Проанализируем вкладку «Расчет базы» в настройках удержания:

  1. Зайдите в раздел Настройка — Удержания.
  2. Найдите удержание с назначением Исполнительный лист.
  3. Перейдите на закладку Расчет базы. Проверьте, нет ли в списке «битых» ссылок (строк с надписью «Объект не найден») или начислений, которые были помечены на удаление, но не удалены физически.
  4. Попробуйте добавить в базу какой-либо «Прочий доход» или, наоборот, временно исключить специфические доплаты, которые были введены недавно. Это поможет локализовать конкретный вид расчета, вызывающий сбой.

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

Шаг 4. Работа с регистром «Пересчеты зарплаты»

В 1С:ЗУП 3.1 существует механизм автоматической регистрации необходимости перерасчетов. Ошибочные записи в этом регистре могут блокировать нормальный расчет текущего месяца. Проверим этот момент:

  1. Перейдите в раздел Зарплата — Сервис — Пересчеты зарплаты.
  2. Если вы видите в списке сотрудников, по которым возникает ошибка, попробуйте удалить записи о необходимости их пересчета.
  3. После этого создайте новый документ Начисление зарплаты и взносов и проверьте результат.

Шаг 5. Тестирование и исправление (ТиИ)

Если вышеуказанные методы не помогли, необходимо прибегнуть к стандартным средствам восстановления базы данных в Конфигураторе. Это актуально, если «в одной базе всё ок, а в другой такая хрень».

Запустите Конфигуратор и выберите пункт меню Администрирование — Тестирование и исправление. Рекомендуется установить следующие флаги:

Шаг 6. Особенности релиза и патчи

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

Проанализируем состояние системы:

  1. Зайдите в Администрирование — Обслуживание — Обновление программы — Установленные исправления (патчи).
  2. Убедитесь, что загружены все доступные патчи для вашего релиза.
  3. Особое внимание уделите патчам, в описании которых упоминается расчет удержаний или исполнительных листов.

Рекомендация для разработчиков (отладка)

Если вы обладаете навыками программирования, самый быстрый способ найти причину — использование отладчика. Посмотрим, как это сделать:

  1. Включите режим отладки в 1С.
  2. В Конфигураторе выберите меню Отладка — Остановка по ошибке.
  3. Поставьте галочку «Останавливаться по ошибке».
  4. Запустите расчет в режиме предприятия. Когда выполнение прервется, посмотрите в Стек вызова. Вы увидите, в какой именно функции происходит обращение к полю СуммаДополнения и в какой временной таблице его не хватает.

Чаще всего код выглядит примерно так (условный пример):


// В модуле расчета базы удержаний
Для Каждого СтрокаТЗ Из ТаблицаПоказателей Цикл
    ИтоговаяСумма = СтрокаТЗ.ОсновнаяСумма + СтрокаТЗ.СуммаДополнения; // Здесь падает, если поля нет в ТЗ
КонецЦикла;

Резюмируя: начните с самого простого — полной очистки кэша со сменой имени базы и проверки расширений. В 90% случаев это решает проблему «необнаруженного поля объекта» в типовых конфигурациях 1С.

← На главную