При работе в конфигурациях на базе современных версий Библиотеки стандартных подсистем (например, «1С:Управление торговлей 11», «1С:ERP», «1С:Комплексная автоматизация») пользователи и разработчики могут столкнуться с ситуацией, когда при открытии любого стандартного отчета (например, «Ведомость расчетов с клиентами») возникает исключительная ситуация:
«Метод объекта не обнаружен (ОтчетыСНастройками)».
При этом ошибка может проявляться внезапно — после точечной доработки отдельных документов, выполнения динамического обновления («демонического обновления») или перехода между промежуточными релизами конфигурации.
Проанализируем архитектурные причины возникновения этой ошибки и подробно рассмотрим все способы её устранения.
Механизм формирования и отображения отчетов в УТ 11 управляется подсистемой БСП ВариантыОтчетов. Во время инициализации формы отчета вызывается обращение к структуре настроек через повторно используемый модуль ВариантыОтчетовПовтИсп.Параметры().
Выделим основные причины сбоя:
Параметры работы программы. Если структура кэша повредилась или не обновилась вовремя, свойство или коллекция ОтчетыСНастройками перестает определяться в возвращаемом объекте.ПараметрыРасширений.ОтчетыСНастройками). Некорректное расширение или сбой фонового задания по сбору метаданных расширений приводит к падению процедуры.Важное замечание: стандартная очистка локального кэша пользователя (удаление каталогов %LocalAppData%\1C\1Cv8) в данной ситуации не помогает, так как закэшированные структуры БСП хранятся непосредственно в таблицах базы данных на сервере.
Разберем по шагам наиболее надежный путь решения проблемы, если сбой вызван ошибкой конкретного релиза конфигурации:
Если возможность немедленного обновления на новый релиз отсутствует, запустим полную инициализацию процедур обновления БСП без изменения конфигурации:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" ENTERPRISE /IBConnectionString "..." /C ЗапуститьОбновлениеИнформационнойБазы
ЗапуститьОбновлениеИнформационнойБазы принудительно перезаписывает служебные структуры данных и пересобирает кэш подсистем.Рассмотрим, как сбросить закэшированные настройки программным путем с помощью внешней обработки или консоли кода:
// Принудительное обновление параметров подсистемы вариантов отчетов
ВариантыОтчетов.ЗаписатьПараметрыВариантовОтчетов();
// Общее обновление параметров работы программы
СтандартныеПодсистемыСервер.ОбновитьПараметрыРаботыПрограммы();
Разберем ручной способ очистки служебного кэша через интерфейс программы:
Параметры работы программы.СтандартныеПодсистемы.ВариантыОтчетов и удалим её.Если в базе используются пользовательские расширения, выполним следующие действия: