Как исправить ошибку «Метод объекта не обнаружен (ДополнитьАнализНачисленийИУдержаний)» в ЗУП 3.1

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

При переходе на новые релизы конфигурации 1С:Зарплата и управление персоналом 3.1 (в частности, на ветку 3.1.6 и выше) пользователи часто сталкиваются с неприятной ситуацией: при попытке сформировать расчетные листки система выдает критическую ошибку: Метод объекта не обнаружен (ДополнитьАнализНачисленийИУдержаний). Эта проблема блокирует работу бухгалтерии по выдаче отчетности сотрудникам и требует оперативного вмешательства технического специалиста.

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

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

Проанализируем техническую сторону вопроса. Ошибка Метод объекта не обнаружен сигнализирует о том, что программный код пытается обратиться к процедуре или функции, которой больше не существует в том модуле, куда направлен вызов. В релизе 3.1.6.54 разработчики фирмы «1С» провели масштабный рефакторинг общих модулей, отвечающих за подсистему начислений и удержаний. Метод ДополнитьАнализНачисленийИУдержаний был либо удален, либо перемещен в другой программный контекст в рамках оптимизации кода.

Почему же система продолжает к нему обращаться? Рассмотрим основные сценарии:

  1. Использование расширений: В базе установлено расширение конфигурации, которое модифицирует логику формирования расчетных листков. Код расширения «помнит» старое имя метода и не знает о его изменении в основной конфигурации.
  2. Внешние печатные формы: Вместо стандартного расчетного листка используется внешняя обработка (например, ПечатьРасчетныхЛистков.epf), в которой жестко прописан вызов устаревшего метода.
  3. Кэширование данных: Платформа 1С сохранила скомпилированные модули старой версии в локальном кэше пользователя, и после обновления пытается исполнить «старый» код на «новой» структуре данных.
  4. Несоответствие версии платформы: Использование устаревших сборок платформы (например, версии ниже 8.3.12) может приводить к некорректной работе динамического обновления.

Шаг 1. Очистка кэша конфигурации

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

Разберем, как правильно выполнить очистку:

  1. Закройте все сеансы работы с базой 1С.
  2. Откройте список баз в окне запуска «1С:Предприятие».
  3. Выберите нужную базу, нажмите кнопку «Изменить» и скопируйте путь к информационной базе.
  4. Перейдите в папку пользователя на компьютере (обычно это %AppData%\Local\1C\1Cv8 и %AppData%\Roaming\1C\1Cv8).
  5. Удалите все папки с длинными буквенно-цифровыми именами (идентификаторами баз).

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

Шаг 2. Проверка и отключение расширений

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

Выполним следующие действия:

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

Если ошибка исчезла, значит, расширение требует доработки программистом под новый программный интерфейс (API) релиза 3.1.6.54.

Шаг 3. Анализ внешних обработок и печатных форм

Выясним, не используется ли внешняя форма для формирования листка. В разделе Администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки проверим наличие подключенных внешних форм расчетных листков.

Многие компании используют кастомизированные формы расчетных листков. В коде таких обработок часто встречается прямой вызов общего модуля:


// Пример устаревшего вызова в коде внешней обработки
ЗарплатаКадрыОтчеты.ДополнитьАнализНачисленийИУдержаний(Параметры);

Поскольку в новом релизе этот метод отсутствует в общем модуле ЗарплатаКадрыОтчеты, внешнюю обработку необходимо обновить, заменив вызовы на актуальные методы, предусмотренные разработчиками в новом релизе.

Шаг 4. Обновление технологической платформы

Обратим внимание на версию платформы. В обсуждениях на форумах часто упоминается версия 8.3.10.2580. Эта ветка платформы признана морально устаревшей для работы с современными релизами ЗУП 3.1.

Проанализируем ситуацию: релизы линейки 3.1.6 и выше оптимизированы под работу с платформой версии 8.3.12 и выше. Старые версии платформы могут некорректно обрабатывать фоновые задания при формировании тяжелых отчетов, к которым относится и расчетный листок. Мы рекомендуем обновить платформу до актуальной стабильной версии (например, из ветки 8.3.22 или 8.3.24, в зависимости от рекомендаций к конкретному релизу конфигурации).

Шаг 5. Сброс пользовательских настроек отчета

Иногда причина кроется в сохраненных настройках самого отчета в пользовательском профиле. Система пытается применить старые настройки компоновки данных к новому программному коду.

Попробуем выполнить сброс настроек по шагам:

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

Технический анализ в Конфигураторе

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

  1. Откройте Конфигуратор.
  2. Выполните глобальный поиск (Ctrl+Shift+F) по строке ДополнитьАнализНачисленийИУдержаний.
  3. Если поиск выдал результаты в основной конфигурации, а она заявлена как типовая — значит, обновление прошло некорректно.
  4. В этом случае выполните Конфигурация — Сравнить, объединить с конфигурацией из файла, выбрав чистый файл 1cv8.cf того же релиза (3.1.6.54).

Посмотрим на пример того, как функционал мог быть изменен. Часто методы переносятся в модули с суффиксом Переопределяемый. Например, логика может теперь находиться в ЗарплатаКадрыОтчетыПереопределяемый или быть интегрирована в механизмы универсального отчета.

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

← На главную