Почему не открываются отчеты в ЗГУ 3.1 после обновления и как это исправить?

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

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

Причина возникновения ошибки

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

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

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

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

Для реализации этого метода выполним следующие шаги:

  1. Полностью закроем программу 1С.
  2. В списке баз выберем нужную информационную базу и нажмем кнопку «Изменить».
  3. Перейдем на последнюю закладку настроек, где находится поле «Дополнительные параметры запуска».
  4. Впишем в это поле следующую команду: /ЗапуститьОбновлениеИнформационнойБазы
  5. Нажмем «Готово» и запустим базу в режиме «1С:Предприятие».

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

Решение 2: Использование обработки «Обновление вспомогательных данных»

Если первый метод не помог, воспользуемся специализированным инструментом из состава «Инструментов разработчика БСП». Эта обработка позволяет точечно пересчитать кэши метаданных, которые влияют на работу вариантов отчетов.

Рассмотрим алгоритм работы с этой обработкой:

  1. Найдем в составе дистрибутива БСП (или на портале ИТС) внешнюю обработку ОбновлениеВспомогательныхДанных.epf. Для конфигураций на базе ЗУП/ЗГУ 3.1.13 и выше обычно подходит версия для БСП 3.1.2.
  2. Запустим базу 1С и откроем данную обработку через меню «Файл — Открыть» (у пользователя должны быть права «Администратор системы»).
  3. В открывшемся окне мы увидим список подсистем. Проанализируем ситуацию: чаще всего проблема кроется в разделах «Варианты отчетов» и «Базовая функциональность».
  4. Отметим галочками соответствующие пункты и нажмем кнопку «Обновить».
  5. Программа выполнит перезапись предопределенных вариантов отчетов и очистит старые идентификаторы.

Этот метод эффективен, когда в базе «зависли» старые ссылки на настройки отчетов, которые больше не существуют в текущем релизе.

Решение 3: Проверка циклических ссылок в приоритетах начислений

Иногда отчеты по зарплате (например, «Расчетный листок» или «Анализ зарплаты») не открываются из-за логической ошибки в справочнике «Порядок начислений» (приоритеты). Если одно начисление вытесняет другое, а то, в свою очередь, пытается вытеснить первое (напрямую или через цепочку других начислений), механизм СКД уходит в бесконечную рекурсию при попытке построить схему запроса.

Разберем, как проверить этот момент:

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

Решение 4: Очистка кэша и проверка расширений

Хотя этот метод считается стандартным, им не стоит пренебрегать, если отчеты «вылетают» сразу. Важно понимать, что обычная очистка папок в %AppData% не всегда удаляет настройки форм, сохраненные внутри базы данных.

Выполним глубокую очистку:

  1. Удалим базу из списка запуска 1С и добавим её заново (это очистит локальный кэш на компьютере).
  2. Запустим базу с параметром /NoExtensions. Это критически важно, так как даже «отключенные» расширения могут влиять на общую форму отчета, если они подменяют её модуль.
  3. Если под другим пользователем отчеты открываются, необходимо зайти в «Настройки пользователей и прав» и выполнить «Очистку настроек пользователя» для проблемного сотрудника. Особое внимание уделим разделу «Настройки отчетов».

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


Настройки = ХранилищеОбщихНастроек.Выбрать("ОбщаяФормаОтчета/НастройкиОтчета");
Пока Настройки.Следующий() Цикл
    Если Настройки.КлючОбъекта = "Отчет.АнализЗарплатыПоСотрудникам" Тогда
        ХранилищеОбщихНастроек.Удалить("ОбщаяФормаОтчета/НастройкиОтчета", Настройки.КлючОбъекта, Настройки.Пользователь);
    КонецЕсли;
КонецЦикла;

Данный код позволяет «забыть» проблемные пользовательские настройки, которые могут вызывать ошибку Метод объекта не обнаружен или Ошибка компоновки данных при открытии формы.

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

Выясним причину возможного конфликта с платформой. Версии платформы 8.3.16.1148 и близкие к ней имели известные проблемы с утечкой памяти и некорректной работой с временными файлами при формировании табличных документов. Если вышеуказанные способы не помогли, настоятельно рекомендуем обновить платформу до актуальной (например, ветки 8.3.17, 8.3.18 или выше, в зависимости от требований вашего релиза ЗГУ).

Резюмируем: в большинстве случаев проблема решается либо параметром запуска /ЗапуститьОбновлениеИнформационнойБазы, либо использованием обработки «Обновление вспомогательных данных» для актуализации состояния регистров БСП. Если это не помогает, следует искать причину в «зацикливании» приоритетов начислений или в некорректных расширениях конфигурации.

← На главную