Ответ в теме: Почему возникает ошибка «Значение не является значением объектного типа»?

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

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

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

    Судя по скриншоту, в запросе:

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

    Причина:

    1. В запросе поле Документ.Ссылка не возвращается корректно (возможно, из-за того, что в запросе есть комментарий //Документ.Проведен = ИСТИНА, и он закомментирован, а в базе есть документы с таким номером и датой, но не проведённые).

    2. В выборке вы вызываете Результат.Выбрать().ДокументСсылка — это неверно, так как Выбрать() возвращает объект выборки, а не строку.

    Как правильно получить ссылку из результата запроса:

    Далее, чтобы получить объект документа, нужно вызвать метод ПолучитьОбъект() у ссылки:

    —

    Исправленный код процедуры:

    —

    Основные моменты:

    — Используйте Результат.Выбрать() для получения объекта выборки.
    — Вызывайте Следующий() для перехода к первой записи.
    — Получайте ссылку из поля выборки.
    — Проверяйте тип ссылки перед вызовом ПолучитьОбъект().
    — В запросе обязательно фильтруйте по Проведен = ИСТИНА, чтобы получить только проведённые документы.
    — Не обращайтесь напрямую к Результат.Выбрать().ДокументСсылка — это не строка, а объект выборки.

    —

    Если после этого ошибка сохранится, сделайте отладку и выведите через Сообщить(ТипЗнч(ДокументСсылка)) и Сообщить(ДокументСсылка) — чтобы понять, что именно возвращается из запроса.

    База знаний 1С