Почему ошибка «Элемент не выбран» при вызове ПолучитьОбъект()?

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

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

        Если ЗначениеЗаполнено(Почта) Тогда

        // Формируем уникальный ключ по контрагенту и почте

        КлючПочты = Строка(Контрагент) + «|» + Почта;

        Если МассивПочт.Найти(КлючПочты) = Неопределено Тогда

        МассивПочт.Добавить(КлючПочты);

        СправКонтр = Справочники.Контрагенты.НайтиПоКоду(Контрагент.Код,Истина);;
        ЗанКонтр = СправКонтр.ПолучитьОбъект();
        СтрокаКонтрак = ЗанКонтр.КонтактнаяИнформация.Добавить();
        СтрокаКонтрак.АдресЭП = Почта;
        ЗанКонтр.Записать();
        // Здесь заносим Почту в контактную информацию

        // Например: ДобавитьПочту(Контрагент, Почта);

        КонецЕсли;

        КонецЕсли;
        почему такая ошибка вылезла
        Ошибка при вызове метода контекста (ПолучитьОбъект)
        {ВнешняяОбработка.ПреобразованиеПочтыТелефонаКонтрагент.Форма.Форма1.Форма(243)}: ЗанКонтр = СправКонтр.ПолучитьОбъект();
        {ВнешняяОбработка.ПреобразованиеПочтыТелефонаКонтрагент.Форма.Форма1.Форма(215)}: ЗапуститьТаблицуНаСервере();
        по причине:
        Элемент не выбран!
        Элемент не выбран!

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

          Ошибка «Элемент не выбран!» возникает потому, что метод Справочники.Контрагенты.НайтиПоКоду(Контрагент.Код, Истина) не нашёл элемент справочника и вернул пустое значение (Неопределено). А дальше вы пытаетесь вызвать ПолучитьОбъект() у пустого значения, что и даёт ошибку.

          Как исправить:

          1. Проверьте, что Контрагент.Код действительно существует и корректен.
          2. Добавьте проверку результата поиска перед вызовом ПолучитьОбъект().

          Пример исправленного кода:

          Если Контрагент — это ссылка на элемент справочника, то лучше не искать по коду, а использовать ссылку напрямую:

          Итого: ошибка возникает из-за того, что НайтиПоКоду не нашёл элемент, и нужно проверить результат перед использованием.

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