При интеграции Библиотеки стандартных подсистем (БСП) в новую или существующую конфигурацию разработчики часто сталкиваются со сбоем при первом запуске в режиме «1С:Предприятие». В процессе инициализации платформа выдает исключение вида: Поле объекта не обнаружено (ПоказатьОписаниеИзмененийСистемы) при обращении к структуре ПараметрыРаботыКлиента.
Проанализируем механику работы БСП: данный сбой означает, что структура параметров работы клиента сформировалась не полностью. Серверная процедура формирования параметров не заполнила часть свойств, из-за чего клиентский код при попытке прочитать параметр выбивает ошибку. Рассмотрим основные причины возникновения этой проблемы и разберем способы их устранения по шагам.
Самая распространенная причина ошибки — рассинхронизация имени конфигурации в палитре свойств и имени, указанного в процедурах подсистемы обновления информационной базы. Если конфигурацию переименовали или создали с нуля, но забыли обновить имя в коде, БСП не может правильно идентифицировать конфигурацию и пропускает заполнение клиентских параметров.
Выясним, какие объекты необходимо проверить в первую очередь:
Имя в корне дерева метаданных конфигурации (например, МояКонфигурация).ОбновлениеИнформационнойБазы_МояКонфигурация.ПриДобавленииПодсистемы имя подсистемы строго совпадает с именем конфигурации:
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "МояКонфигурация";
Описание.Версия = "1.0.0.1";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "1.0.0.0";
КонецПроцедуры
Далее проверим общий модуль ПодсистемыКонфигурацииПереопределяемый. В нем должен быть зарегистрирован созданный модуль обновления:
Процедура ПриДобавленииПодсистем(МодулиПодсистем) Экспорт
МодулиПодсистем.Добавить("ОбновлениеИнформационнойБазы_МояКонфигурация");
КонецПроцедуры
Важно: Если имя конфигурации было изменено после первоначального внедрения БСП, обязательно требуется обновить его во всех указанных процедурах, иначе механизму обновления ИБ не удастся завершить инициализацию.
Библиотека стандартных подсистем имеет жесткие внутренние зависимости. Попытка внедрить «только одну подсистему» без минимально необходимого ядра БСП приведет к ошибкам обращения к свойствам. Разберем состав обязательных элементов.
Для корректной сборки структуры ПараметрыРаботыКлиента в конфигурацию должны быть объединены следующие подсистемы:
Также проверим наличие общего макета ОписаниеИзмененийСистемы. Если макет отсутствует или не зарегистрирован в подсистеме обновления, вызов проверки изменений завершается сбоем.
При переносе объектов из БСП необходимо вручную прописать вызовы переопределяемых процедур в модулях конфигурации. Проанализируем ключевые точки интеграции:
В МодульУправляемогоПриложения должны быть переданы вызовы в модуль СтандартныеПодсистемыКлиент для событий:
ПередНачаломРаботыСистемыПриНачалеРаботыСистемыПриЗаполненииПараметровРаботыКлиентаПриЗапускеЕсли событие ПриЗаполненииПараметровРаботыКлиентаПриЗапуске не передает управление в БСП, платформа формирует пустую структуру параметров, что неизбежно приводит к ошибке Поле объекта не обнаружено при старте сеанса.
При использовании современных версий платформы «1С:Предприятие 8.3» необходимо обращать внимание на режим использования синхронных вызовов. Если в свойствах конфигурации параметр Режим использования синхронных вызовов расширений платформы и внешних компонент установлен в значение Не использовать, некоторые устаревшие или неадаптированные вызовы могут блокировать работу серверных процедур БСП.
Для диагностики этой проблемы выполним следующие шаги:
Режим использования синхронных вызовов.... Для корректной работы технологических компонентов при внедрении установим его в режим Использовать (или переведем код на асинхронные вызовы)./ClearCache.Рассмотрим последовательность действий для успешного первого запуска конфигурации с внедренной БСП:
Имя конфигурации и подсистемы в модуле ОбновлениеИнформационнойБазы_ИмяКонфигурации заданы одинаковые значения.ПодсистемыКонфигурацииПереопределяемый.ПриДобавленииПодсистем.1.0.0.1)./C СтартОбновленияИнформационнойБазы.