Колонки результата запроса

SeiOkami 360 5 6 8

Нюанс о типизации колонок результата запроса

Колонки результата запроса

У результата запроса есть одна особенность.
Какой бы вы ни выбирали тип значений, платформа добавит к колонке результата тип Null.
Число, Строка, Булево, Ссылка. Неважно. Даже если по тексту запроса очевидно, что в результате невозможен Null - он всё равно будет.

Например:

Запрос  = Новый Запрос("ВЫБРАТЬ 1");
Колонки = Запрос.Выполнить().Колонки;

Сообщить(Колонки.Получить(0).ТипЗначения);
//Сообщение: Null, Число

Так как в колонку добавляется тип Null, то она становится составного типа. И получает в довесок тип Неопределено.
С таким поведением можно столкнуться воочию, если решить дополнять данными Выгрузку результата запроса.
Все колонки добавленной строки будут значением Неопределено.

Например:

Запрос      = Новый Запрос("ВЫБРАТЬ 1 КАК Поле");
Выгрузка    = Запрос.Выполнить().Выгрузить();
НоваяСтрока = Выгрузка.Добавить();

Сообщить(ТипЗнч(НоваяСтрока.Поле));
//Сообщение: Неопределено

В принципе, поведение платформы нельзя назвать ошибочным. 1С просто не считает целесообразным проверять, есть ли действительно Null в результате. И просто добавляет этот тип, исключая возможные ошибки.

Поэтому, разработчику просто нужно это помнить.

Как думаете, а возможны ли случаи иного поведения формирования типа колонки результата запроса ?

Источник

Канал в Телеграм

Похожие публикации

РезультатЗапросаВСтруктуру (БСП)

ПроверитьДанные (БСП)

Запрос в SQL базу

ПолучитьОбластиДанныхРезультатЗапроса (БСП)

СловарьТиповРезультатовОбработкиЗапросов (БСП)

Передача таблицы значений в запрос

Проверка запроса на пустоту

Связывание таблиц значений по ФИФО

Таблица Значений Без Null

FastCode - сервис для программистов 1С
Модератору