Оцените, пожалуйста, статью, мы стараемся:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Ошибка «Тип не может быть выбран в запросе», использование Таблицы Значений в запросе (1С: Программисту: Язык запросов)

3

Вопрос Что означает сообщение об ошибке «Тип не может быть выбран в запросе»?
Ответ
Такая ошибка возникает, когда при выполнении запроса не получается определить тип выбираемого значения.
Пример.
В текст запроса требуется передать таблицу значений &ТЗПС и из этой таблицы значений построить новый запрос.
В параметры мы передаем ТаблицуЗначений:

т.е. Функция ПолучитьТЗСуммаПоПартииТоваровНаСкладах() возвращает ТаблицуЗначений.
Сам текст запроса выглядит примерно так:

Если просто передать эту таблицу значений в запрос, то может возникнуть ошибка для колонок, у которых сбился тип колонки, например, тип которых «Число».
Чтобы исправить такую таблицу значений, можно сделать следующее: по каждому элементу выборки, на котором запрос «споткнется» с сообщением «Тип не может быть выбран в запросе», выполнить переопределение типа колонки перед передачей таблицы значений в запрос. Например:

Здесь использован метод копирования колонки таблицы значений, рассмотренный в http://www.1c-h.ru/?p=1266

Автор

3 thoughts on “Ошибка «Тип не может быть выбран в запросе», использование Таблицы Значений в запросе (1С: Программисту: Язык запросов)

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

  2. «Если просто передать эту таблицу значений в запрос, то может возникнуть ошибка для колонок, у которых сбился тип колонки, например, тип которых «Число».»
    Весьма настораживает здесь слово «сбился», если оно здесь вообще уместно. Проблема в мягкой типизация встроенного языка 1С. Выгружая что-то, пусть даже с известным типом, в таблицу значений, у которой жестко не заданы типы значений колонок, и используя эту ТЗ далее как в контексте примера, всегда будет возникать ошибка. Для подобного использования НУЖНО явно задавать тип хранимых данных колонок ТЗ.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Next Post

Почему при попытке распечатать на конкретный принтер печать идет на принтер по умолчанию? Команда ТабДокумент.ИмяПринтера не работает (1С: V8: Программисту: Язык программирования)

Ср Июн 16 , 2010
Вопрос Почему может не работать команда ТабДокумент.ИмяПринтера — при попытке распечатать на конкретный принтер, печать идет на принтер по умолчанию? Ответ Возможно это происходит из-за того, что после присвоения имени принтера командой ТабДокумент.ИмяПринтера где-то ниже идет команда «ИмяПараметровПечати». Эта команда переопределит принтер. Например: ТабДокумент.ИмяПринтера = ... ... ТабДокумент.ИмяПараметровПечати = ... […]

Вам может понравиться