Описывает колонку временной таблицы.
Полное описание, параметры и ограничения
КолонкаВременнойТаблицыЗапроса (QueryTempTableColumn)
КолонкаВременнойТаблицыЗапроса (QueryTempTableColumn)
Доступен, начиная с версии 8.3.8.
Свойства:
Имя (Name)
ТипЗначения (ValueType)
Описание:
Описывает колонку временной таблицы.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.8.
Методическая информация
Практические примеры
Посмотреть содержимое и колонки собственной временной таблицы
Диагностика временной таблицы без изменения товаров в базе. Менеджер создаётся внутри примера и закрывается при любом исходе.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Менеджер принадлежит только этому примеру. Не передавайте менеджер незавершённого обмена или отчёта.
Две строки Книга/3 и Ручка/1 создаются текстом запроса, не берутся из справочника.
Менеджер = Новый МенеджерВременныхТаблиц;
Попытка
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Менеджер;
Запрос.Текст = "ВЫБРАТЬ ""Книга"" КАК Название, 3 КАК Количество
|ПОМЕСТИТЬ ВТУчебныеТовары
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ ""Ручка"", 1";
Запрос.Выполнить();
Таблицы = Менеджер.Таблицы;
Сообщить(Таблицы.Количество() = 1);
ВременнаяТаблица = Таблицы.Найти("ВТУчебныеТовары");
Если ВременнаяТаблица = Неопределено Тогда
ВызватьИсключение "Временная таблица не создана";
КонецЕсли;
Сообщить(Таблицы.Индекс(ВременнаяТаблица) = 0);
Сообщить(Таблицы.Получить(0).ПолноеИмя = ВременнаяТаблица.ПолноеИмя);
Сообщить("Имя временной таблицы: " + ВременнаяТаблица.ПолноеИмя);
Колонки = ВременнаяТаблица.Колонки;
Сообщить(Колонки.Количество() = 2);
КолонкаКоличество = Колонки.Найти("Количество");
Если КолонкаКоличество = Неопределено Тогда
ВызватьИсключение "Нет колонки Количество";
КонецЕсли;
Сообщить(Колонки.Индекс(КолонкаКоличество) = 1);
Сообщить(Колонки.Получить(0).Имя = "Название");
Сообщить(КолонкаКоличество.ТипЗначения.СодержитТип(Тип("Число")));
Данные = ВременнаяТаблица.ПолучитьДанные().Выгрузить();
Сообщить(Данные.Количество() = 2);
Сообщить(Данные.Итог("Количество") = 4);
Исключение
Менеджер.Закрыть();
ВызватьИсключение;
КонецПопытки;
Менеджер.Закрыть();Разбор по шагам
Назначаем новый менеджер запросу; после ПОМЕСТИТЬ его Таблицы содержит одну временную таблицу.
Найти и Получить работают с описаниями таблиц. ПолноеИмя выводим для диагностики, а Индекс считаем с нуля.
Колонки описывают две типизированные колонки; их имена и типы можно проверить перед чтением.
ПолучитьДанные даёт результат, Выгрузить — независимую таблицу значений; проверяем две строки и сумму 4.
Закрыть уничтожает все таблицы именно этого менеджера. После закрытия ни менеджер, ни его таблицы повторно не используем.
Как проверить результат
Одна временная таблица, две колонки, индекс Количество=1 и две строки — контрольные сообщения Истина.
Итог количества равен 4.
Искусственная ошибка после создания таблицы проходит через очистку менеджера и передаёт первоначальное исключение дальше.
Ожидаемый результат
Получена диагностика схемы и данных собственной временной таблицы с ограниченным временем жизни.
На что обратить внимание
Закрывать чужой менеджер нельзя: в нём могут находиться нужные другому коду таблицы.
ПолучитьДанные большого результата может быть дорогим; этот урок использует только две записи.
Временная таблица не является объектом метаданных и не сохраняется как справочник.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.