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

SeiOkami 463 5 11 9

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

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

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

Например:

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

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

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

Например:

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

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

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

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

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

Источник

0

См. также

Шпаргалка по горячим клавишам для разработчика 1С

Не переносите код таким образом

Вопрос перед закрытием конфигуратора

Как узнать, чем занято место на диске (Windows)

Соревнование по программированию на 1С

Как получить атрибут ХМЛ

Получение второго гражданства или ВНЖ в странах СНГ и Евросоюзе

Тест

Запуск обновления ИБ

Игровые автоматы на реальные деньги с выводом: путеводитель по лучшим и дающим

Модератору