Как устранить ошибку «Содержимое объекта данных может быть выбрано только во вре

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

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

        Ошибка при вызове метода контекста (Выполнить)
        {ВнешняяОбработка.ПФ_MXL_ЗаявкаНаПотребныйМатериал_.МодульОбъекта(249)}:Результат = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        {ВнешняяОбработка.ПФ_MXL_ЗаявкаНаПотребныйМатериал_.Форма.Форма.Форма(15)}: Возврат РеквизитФормыВЗначение(«Объект»).СформироватьПечатнуюФорму(СтруктураТипов, МассивДокументов, Новый СписокЗначений);
        {ВнешняяОбработка.ПФ_MXL_ЗаявкаНаПотребныйМатериал_.Форма.Форма.Форма(4)}: ТабДок = КомандаСформироватьНаСервере();
        по причине:
        Содержимое объекта данных может быть выбрано только во временную таблицу

        по причине:
        Содержимое объекта данных может быть выбрано только во временную таблицу

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

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

          В 1С запросы могут выбирать содержимое объектов данных только в конструкции «ПОМЕСТИТЬ ВТ_Врем» или использовать временные таблицы, чтобы потом с ними работать.

          Чаще всего ошибка возникает, если в запросе:

          — Вы пытаетесь выбрать поле с типом «Объект данных» (например, табличная часть или реквизит с типом «ТаблицаЗначений») без использования конструкции ПОМЕСТИТЬ.

          — Или пытаетесь напрямую использовать объект данных в запросе без преобразования.

          Что делать:

          1. Если в запросе выбирается табличная часть или реквизит с типом «ТаблицаЗначений», то нужно сначала поместить её в временную таблицу:

          |ПОМЕСТИТЬ ВТ_Врем
          |ИЗ
          | &ПараметрТаблицаЗначений КАК ВТ_Врем

          2. Далее уже работать с ВТ_Врем в запросе.

          3. Если вы пытаетесь выбрать содержимое объекта данных напрямую, то это нельзя. Нужно либо передать таблицу значений как параметр, либо использовать ПОМЕСТИТЬ.

          Пример:

          Если ошибка возникает в строке с Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);, значит в запросе есть выборка объекта данных без помещения во временную таблицу.

          Проверьте текст запроса, найдите выборку объекта данных (например, табличной части) и оберните её в конструкцию ПОМЕСТИТЬ.

          Если хотите, приложите текст запроса из модуля объекта (строка 249), помогу конкретно исправить.

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