При переходе на новые релизы конфигурации 1С:Зарплата и кадры государственного учреждения (ЗГУ) или 1С:Зарплата и управление персоналом (ЗУП) пользователи иногда сталкиваются с критической проблемой: при попытке открыть любой отчет в разделе «Зарплата» программа выдает ошибку и аварийно закрывает форму. При этом зайти в настройки отчета или выбрать другой вариант невозможно, так как ошибка возникает на этапе инициализации формы. Разберем подробно, почему это происходит и как восстановить работоспособность системы.
Ситуация, когда «чистая» и типовая конфигурация после штатного обновления начинает вести себя некорректно, чаще всего связана с механизмом Библиотеки стандартных подсистем (БСП). В процессе обновления конфигурации должны обновляться не только сами объекты метаданных, но и вспомогательные данные в системных регистрах: кэши свойств, справочники вариантов отчетов, ключи доступа и настройки компоновки. Если этот процесс завершился сбоем или был пропущен, возникает конфликт между новой структурой метаданных и старыми данными в служебных таблицах.
Проанализируем основные способы решения проблемы, начиная от самых простых и заканчивая использованием инструментов разработчика.
Если отчеты не открываются, мы не можем запустить внутренние функции программы через интерфейс. В этом случае нам поможет специальный параметр командной строки. Этот метод заставляет систему заново выполнить все обработчики обновления, которые предусмотрены разработчиками для текущего релиза.
Для реализации этого метода выполним следующие шаги:
/ЗапуститьОбновлениеИнформационнойБазы
Система запустится в режиме обновления. Дождемся окончания процесса (появится сообщение о том, что обновление успешно завершено) и попробуем открыть отчеты. После успешной проверки не забудьте удалить этот параметр из настроек запуска, чтобы база не инициировала проверку при каждом входе.
Если первый метод не помог, воспользуемся специализированным инструментом из состава «Инструментов разработчика БСП». Эта обработка позволяет точечно пересчитать кэши метаданных, которые влияют на работу вариантов отчетов.
Рассмотрим алгоритм работы с этой обработкой:
ОбновлениеВспомогательныхДанных.epf. Для конфигураций на базе ЗУП/ЗГУ 3.1.13 и выше обычно подходит версия для БСП 3.1.2.Этот метод эффективен, когда в базе «зависли» старые ссылки на настройки отчетов, которые больше не существуют в текущем релизе.
Иногда отчеты по зарплате (например, «Расчетный листок» или «Анализ зарплаты») не открываются из-за логической ошибки в справочнике «Порядок начислений» (приоритеты). Если одно начисление вытесняет другое, а то, в свою очередь, пытается вытеснить первое (напрямую или через цепочку других начислений), механизм СКД уходит в бесконечную рекурсию при попытке построить схему запроса.
Разберем, как проверить этот момент:
ПриоритетыНачислений.Хотя этот метод считается стандартным, им не стоит пренебрегать, если отчеты «вылетают» сразу. Важно понимать, что обычная очистка папок в %AppData% не всегда удаляет настройки форм, сохраненные внутри базы данных.
Выполним глубокую очистку:
/NoExtensions. Это критически важно, так как даже «отключенные» расширения могут влиять на общую форму отчета, если они подменяют её модуль.Посмотрим на пример того, как программно можно сбросить настройки конкретного отчета, если форма не открывается интерактивно. Для этого можно использовать небольшой фрагмент кода во внешней обработке:
Настройки = ХранилищеОбщихНастроек.Выбрать("ОбщаяФормаОтчета/НастройкиОтчета");
Пока Настройки.Следующий() Цикл
Если Настройки.КлючОбъекта = "Отчет.АнализЗарплатыПоСотрудникам" Тогда
ХранилищеОбщихНастроек.Удалить("ОбщаяФормаОтчета/НастройкиОтчета", Настройки.КлючОбъекта, Настройки.Пользователь);
КонецЕсли;
КонецЦикла;
Данный код позволяет «забыть» проблемные пользовательские настройки, которые могут вызывать ошибку Метод объекта не обнаружен или Ошибка компоновки данных при открытии формы.
Выясним причину возможного конфликта с платформой. Версии платформы 8.3.16.1148 и близкие к ней имели известные проблемы с утечкой памяти и некорректной работой с временными файлами при формировании табличных документов. Если вышеуказанные способы не помогли, настоятельно рекомендуем обновить платформу до актуальной (например, ветки 8.3.17, 8.3.18 или выше, в зависимости от требований вашего релиза ЗГУ).
Резюмируем: в большинстве случаев проблема решается либо параметром запуска /ЗапуститьОбновлениеИнформационнойБазы, либо использованием обработки «Обновление вспомогательных данных» для актуализации состояния регистров БСП. Если это не помогает, следует искать причину в «зацикливании» приоритетов начислений или в некорректных расширениях конфигурации.