КолонкаВременнойТаблицыЗапроса

Типы · QueryTempTableColumn

Описывает колонку временной таблицы.

Полное описание, параметры и ограничения

КолонкаВременнойТаблицыЗапроса (QueryTempTableColumn)

КолонкаВременнойТаблицыЗапроса (QueryTempTableColumn)

Доступен, начиная с версии 8.3.8.

Свойства:
Имя (Name)
ТипЗначения (ValueType)

Описание:

Описывает колонку временной таблицы.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.3.8.

Методическая информация

Практические примеры

Посмотреть содержимое и колонки собственной временной таблицы

Диагностика временной таблицы без изменения товаров в базе. Менеджер создаётся внутри примера и закрывается при любом исходе.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Менеджер принадлежит только этому примеру. Не передавайте менеджер незавершённого обмена или отчёта.

  2. Две строки Книга/3 и Ручка/1 создаются текстом запроса, не берутся из справочника.


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

Разбор по шагам

  1. Назначаем новый менеджер запросу; после ПОМЕСТИТЬ его Таблицы содержит одну временную таблицу.

  2. Найти и Получить работают с описаниями таблиц. ПолноеИмя выводим для диагностики, а Индекс считаем с нуля.

  3. Колонки описывают две типизированные колонки; их имена и типы можно проверить перед чтением.

  4. ПолучитьДанные даёт результат, Выгрузить — независимую таблицу значений; проверяем две строки и сумму 4.

  5. Закрыть уничтожает все таблицы именно этого менеджера. После закрытия ни менеджер, ни его таблицы повторно не используем.

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

  1. Одна временная таблица, две колонки, индекс Количество=1 и две строки — контрольные сообщения Истина.

  2. Итог количества равен 4.

  3. Искусственная ошибка после создания таблицы проходит через очистку менеджера и передаёт первоначальное исключение дальше.

Ожидаемый результат

Получена диагностика схемы и данных собственной временной таблицы с ограниченным временем жизни.

На что обратить внимание

  1. Закрывать чужой менеджер нельзя: в нём могут находиться нужные другому коду таблицы.

  2. ПолучитьДанные большого результата может быть дорогим; этот урок использует только две записи.

  3. Временная таблица не является объектом метаданных и не сохраняется как справочник.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.