Как исправить ошибку «Поле объекта не обнаружено (ПоказатьОписаниеИзмененийСистемы)» при внедрении БСП в 1С?

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

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

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

Причина 1. Несоответствие имени конфигурации и настроек модуля обновления ИБ

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

Выясним, какие объекты необходимо проверить в первую очередь:

  1. Проверим свойство Имя в корне дерева метаданных конфигурации (например, МояКонфигурация).
  2. Найдем или создадим общий модуль ОбновлениеИнформационнойБазы_МояКонфигурация.
  3. Убедимся, что в процедуре ПриДобавленииПодсистемы имя подсистемы строго совпадает с именем конфигурации:

Процедура ПриДобавленииПодсистемы(Описание) Экспорт

	Описание.Имя = "МояКонфигурация";
	Описание.Версия = "1.0.0.1";
	Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
	Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "1.0.0.0";

КонецПроцедуры

Далее проверим общий модуль ПодсистемыКонфигурацииПереопределяемый. В нем должен быть зарегистрирован созданный модуль обновления:


Процедура ПриДобавленииПодсистем(МодулиПодсистем) Экспорт

	МодулиПодсистем.Добавить("ОбновлениеИнформационнойБазы_МояКонфигурация");

КонецПроцедуры

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

Причина 2. Пропуск обязательных подсистем БСП

Библиотека стандартных подсистем имеет жесткие внутренние зависимости. Попытка внедрить «только одну подсистему» без минимально необходимого ядра БСП приведет к ошибкам обращения к свойствам. Разберем состав обязательных элементов.

Для корректной сборки структуры ПараметрыРаботыКлиента в конфигурацию должны быть объединены следующие подсистемы:

  1. Базовая функциональность — ядро БСП, обеспечивающее работу механизмов сеанса и параметров клиента.
  2. Обновление версии ИБ — отвечает за запуск обработчиков обновления и регистрацию параметров изменений системы.
  3. Пользователи и Контактная информация — базовые справочники и механизмы прав доступа, к которым обращаются сервисные модули БСП.

Также проверим наличие общего макета ОписаниеИзмененийСистемы. Если макет отсутствует или не зарегистрирован в подсистеме обновления, вызов проверки изменений завершается сбоем.

Причина 3. Отсутствие вызовов БСП в модулях приложения и сеанса

При переносе объектов из БСП необходимо вручную прописать вызовы переопределяемых процедур в модулях конфигурации. Проанализируем ключевые точки интеграции:

В МодульУправляемогоПриложения должны быть переданы вызовы в модуль СтандартныеПодсистемыКлиент для событий:

  1. ПередНачаломРаботыСистемы
  2. ПриНачалеРаботыСистемы
  3. ПриЗаполненииПараметровРаботыКлиентаПриЗапуске

Если событие ПриЗаполненииПараметровРаботыКлиентаПриЗапуске не передает управление в БСП, платформа формирует пустую структуру параметров, что неизбежно приводит к ошибке Поле объекта не обнаружено при старте сеанса.

Причина 4. Настройки платформы и режим синхронных вызовов

При использовании современных версий платформы «1С:Предприятие 8.3» необходимо обращать внимание на режим использования синхронных вызовов. Если в свойствах конфигурации параметр Режим использования синхронных вызовов расширений платформы и внешних компонент установлен в значение Не использовать, некоторые устаревшие или неадаптированные вызовы могут блокировать работу серверных процедур БСП.

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

  1. Откроем свойства корневого элемента конфигурации.
  2. Проверим свойство Режим использования синхронных вызовов.... Для корректной работы технологических компонентов при внедрении установим его в режим Использовать (или переведем код на асинхронные вызовы).
  3. Очистим кэш конфигурационного сеанса, запустив платформу с параметром /ClearCache.

Пошаговый чек-лист запуска после внедрения БСП

Рассмотрим последовательность действий для успешного первого запуска конфигурации с внедренной БСП:

  1. Убедимся, что свойствам Имя конфигурации и подсистемы в модуле ОбновлениеИнформационнойБазы_ИмяКонфигурации заданы одинаковые значения.
  2. Проверим регистрацию модуля в ПодсистемыКонфигурацииПереопределяемый.ПриДобавленииПодсистем.
  3. Зададим номер версии конфигурации в свойстве метаданных (например, 1.0.0.1).
  4. Запустим сеанс «1С:Предприятие» от имени пользователя с Полными правами. Первичный запуск под администратором необходим для выполнения инициализационных процедур БСП и записи служебных данных в регистры.
  5. Для принудительного перезапуска процедур обновления можно запустить базу с ключом командной строки: /C СтартОбновленияИнформационнойБазы.
← На главную