База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибку «Поле объекта не обнаружено (ОсновнойДоговорКонтрагента)» в
- В этой теме 1 ответ, 2 участника, последнее обновление 13 часов, 26 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
7 мая 2026 в 18:00 #37009
Ошибка получения значения свойства объекта (по имени свойства источника)
ПКО = Контрагенты (Справочник: Контрагенты)
ПКС = 15 (ОсновнойДоговорКонтрагента —> ОсновнойДоговорКонтрагента)
Объект = ГРАСС ТАЙМ (Контрагент)
СвойствоПриемника = ОсновнойДоговорКонтрагента (СправочникСсылка.ДоговорыКонтрагентов)
ОписаниеОшибки = Поле объекта не обнаружено (ОсновнойДоговорКонтрагента)
ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8118)
КодСообщения = 13 -
7 мая 2026 в 18:00 #37010
Ошибка «Поле объекта не обнаружено (ОсновнойДоговорКонтрагента)» говорит о том, что у объекта «ГРАСС ТАЙМ» (справочник Контрагенты) нет реквизита или свойства с именем «ОсновнойДоговорКонтрагента».
Причины и решения:
1. Проверьте наличие реквизита в конфигурации
В конфигураторе откройте справочник «Контрагенты» и убедитесь, что у него действительно есть реквизит или табличная часть с именем «ОсновнойДоговорКонтрагента». Возможно, реквизит называется иначе или отсутствует.2. Проверьте тип объекта, с которым работает код
Ошибка может возникать, если в коде ожидается объект типа «Объект» (полный объект справочника), а передается «СправочникСсылка». У ссылочного объекта нет реквизитов, только ссылка на объект. Для доступа к реквизитам нужно получить объект через.ПолучитьОбъект().
Пример:1С (Код)12345КонтрагентСсылка = Справочники.Контрагенты.НайтиПоНаименованию("ГРАСС ТАЙМ");Если КонтрагентСсылка <> Неопределено ТогдаКонтрагентОбъект = КонтрагентСсылка.ПолучитьОбъект();Договор = КонтрагентОбъект.ОсновнойДоговорКонтрагента;КонецЕсли;Если в вашем коде используется ссылка, а не объект, то обращение к реквизиту вызовет ошибку.
3. Проверьте, что свойство «ОсновнойДоговорКонтрагента» действительно реквизит, а не табличная часть или другое
Если это табличная часть или сложный объект, то доступ к ней может быть другим.4. Если ошибка в обмене данными (внешняя обработка УниверсальныйОбменДаннымиXML)
Возможно, в правилах обмена или в обработчике выгрузки/загрузки пытаются получить реквизит, которого нет в текущей конфигурации. Проверьте настройки обмена, соответствие версий конфигураций.5. Отладка
В месте ошибки (8118 строка модуля объекта ВнешнейОбработки) добавьте проверку типа и наличия реквизита:1С (Код)123456789Если ТипЗнч(Объект) = Тип("СправочникОбъект.Контрагенты") ТогдаЕсли Объект.Свойство("ОсновнойДоговорКонтрагента") ТогдаЗначение = Объект.ОсновнойДоговорКонтрагента;ИначеСообщить("Реквизит ОсновнойДоговорКонтрагента отсутствует");КонецЕсли;ИначеСообщить("Объект не является объектом справочника Контрагенты");КонецЕсли;Это поможет понять, что именно передается в функцию.
Если реквизит отсутствует, его нужно добавить в конфигурацию. Если передается ссылка, а не объект — получить объект через
.ПолучитьОбъект().Рекомендую посмотреть здесь:
https://infostart.ru/public/89842/ — про работу с объектами и ссылками в 1С
https://infostart.ru/public/1137213/ — про диагностику ошибок в обработках и модулях
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.