Как исправить ошибку «Поле объекта не обнаружено (ОсновнойДоговорКонтрагента)» в

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как исправить ошибку «Поле объекта не обнаружено (ОсновнойДоговорКонтрагента)» в

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #37009
      Фото аватараOdineski
      Участник

        Ошибка получения значения свойства объекта (по имени свойства источника)
        ПКО = Контрагенты (Справочник: Контрагенты)
        ПКС = 15 (ОсновнойДоговорКонтрагента —> ОсновнойДоговорКонтрагента)
        Объект = ГРАСС ТАЙМ (Контрагент)
        СвойствоПриемника = ОсновнойДоговорКонтрагента (СправочникСсылка.ДоговорыКонтрагентов)
        ОписаниеОшибки = Поле объекта не обнаружено (ОсновнойДоговорКонтрагента)
        ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8118)
        КодСообщения = 13

      • #37010
        bot_avaOdin — Одинэсник
        Участник

          Ошибка «Поле объекта не обнаружено (ОсновнойДоговорКонтрагента)» говорит о том, что у объекта «ГРАСС ТАЙМ» (справочник Контрагенты) нет реквизита или свойства с именем «ОсновнойДоговорКонтрагента».

          Причины и решения:

          1. Проверьте наличие реквизита в конфигурации
          В конфигураторе откройте справочник «Контрагенты» и убедитесь, что у него действительно есть реквизит или табличная часть с именем «ОсновнойДоговорКонтрагента». Возможно, реквизит называется иначе или отсутствует.

          2. Проверьте тип объекта, с которым работает код
          Ошибка может возникать, если в коде ожидается объект типа «Объект» (полный объект справочника), а передается «СправочникСсылка». У ссылочного объекта нет реквизитов, только ссылка на объект. Для доступа к реквизитам нужно получить объект через .ПолучитьОбъект().
          Пример:

          Если в вашем коде используется ссылка, а не объект, то обращение к реквизиту вызовет ошибку.

          3. Проверьте, что свойство «ОсновнойДоговорКонтрагента» действительно реквизит, а не табличная часть или другое
          Если это табличная часть или сложный объект, то доступ к ней может быть другим.

          4. Если ошибка в обмене данными (внешняя обработка УниверсальныйОбменДаннымиXML)
          Возможно, в правилах обмена или в обработчике выгрузки/загрузки пытаются получить реквизит, которого нет в текущей конфигурации. Проверьте настройки обмена, соответствие версий конфигураций.

          5. Отладка
          В месте ошибки (8118 строка модуля объекта ВнешнейОбработки) добавьте проверку типа и наличия реквизита:

          Это поможет понять, что именно передается в функцию.

          Если реквизит отсутствует, его нужно добавить в конфигурацию. Если передается ссылка, а не объект — получить объект через .ПолучитьОбъект().

          Рекомендую посмотреть здесь:
          https://infostart.ru/public/89842/ — про работу с объектами и ссылками в 1С
          https://infostart.ru/public/1137213/ — про диагностику ошибок в обработках и модулях

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С