Как исправить ошибку "Функция не найдена СтатистикаПерсоналаРасширенный.ЗначениеПараметраПоУмолчанию" в 1С:ЗУП 3.1

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

При работе в программе 1С:Зарплата и управление персоналом 3.1 пользователи могут столкнуться с неприятной ситуацией: при попытке сформировать отчет «Численность и текучесть кадров» через подсистему «Дополнительные отчеты» система выдает критическую ошибку: Функция не найдена "СтатистикаПерсоналаРасширенный.ЗначениеПараметраПоУмолчанию". Ситуация осложняется тем, что в основной конфигурации такая функция действительно отсутствует, хотя раньше она там была. Давайте разберем причины этой проблемы и пошагово выясним, как вернуть отчету работоспособность.

Почему возникает эта ошибка?

Проанализируем архитектуру программы. Конфигурации 1С постоянно развиваются, и разработчики фирмы «1С» регулярно проводят рефакторинг кода. В версиях ЗУП 3.1.27.х и выше многие общие модули были переработаны. Модуль СтатистикаПерсоналаРасширенный претерпел значительные изменения, и функция ЗначениеПараметраПоУмолчанию, которая ранее использовалась для инициализации параметров отчетов, была удалена или перенесена.

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

Шаг 1: Анализ внешнего отчета

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

  1. Перейдем в раздел Администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки.
  2. Найдем в списке наш отчет «Численность и текучесть кадров».
  3. Выгрузим файл отчета на диск, нажав кнопку Выгрузить файл.
  4. Откроем этот файл через Конфигуратор (Меню Файл — Открыть).

Теперь мы можем приступить к поиску «виновника». Чаще всего вызов удаленной функции прячется в Схеме компоновки данных. Нам нужно открыть основную схему (обычно она называется ОсновнаяСхемаКомпоновкиДанных), перейти на закладку Параметры и внимательно изучить колонку Выражение.

Шаг 2: Исправление выражения в СКД

Разберем ситуацию, когда в параметре (например, «Рабочее время» или «Вид стажа») прописан вызов старой функции. Типичное ошибочное выражение выглядит так:

СтатистикаПерсоналаРасширенный.ЗначениеПараметраПоУмолчанию("Работа")

Для исправления нам нужно заменить это обращение на актуальное. В современных версиях ЗУП 3.1 вместо вызова функции из общего модуля для предопределенных элементов справочников можно использовать прямые ссылки. Рассмотрим пример правильного заполнения параметра «Рабочее время»:

Справочники.ВидыИспользованияРабочегоВремени.Работа

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

Шаг 3: Поиск вызова в программном модуле

Если в параметрах СКД вы не обнаружили подозрительного кода, проанализируем Модуль объекта самого отчета. Для этого в конфигураторе в окне отчета нажмем кнопку Действия — Открыть модуль объекта.

Используем глобальный поиск (Ctrl + F) по строке СтатистикаПерсоналаРасширенный. Если мы найдем обращения к этой функции в тексте кода, их нужно будет заменить. Рассмотрим, как это может выглядеть в коде:


// Старый некорректный код:
ЗначениеПараметра = СтатистикаПерсоналаРасширенный.ЗначениеПараметраПоУмолчанию("Работа");

// Новый исправленный код:
ЗначениеПараметра = Справочники.ВидыИспользованияРабочегоВремени.Работа;

После внесения изменений обязательно сохраним файл отчета и загрузим его обратно в базу через справочник Дополнительные отчеты и обработки (кнопка Загрузить из файла).

Шаг 4: Альтернативный вариант (Типовой отчет)

Выясним важный момент: отчет «Численность и текучесть кадров» является типовым для конфигурации ЗУП 3.1. Если вы используете его внешнюю копию, скорее всего, она была создана для внесения каких-то специфических правок. Если же правок не было, или они уже не актуальны, самым простым и правильным решением будет использование встроенного отчета.

Проверим это:

  1. Перейдем в раздел Кадры — Кадровые отчеты.
  2. Найдем отчет Численность и текучесть кадров.
  3. Попробуем сформировать его здесь.

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

Дополнительные рекомендации по отладке

Если вы начинающий администратор или программист 1С, рассмотрим еще несколько нюансов, которые помогут в диагностике:

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

← На главную