1с как посмотреть временную таблицу в запросе
Перейти к содержимому

1с как посмотреть временную таблицу в запросе

  • автор:

Получить данные временной таблицы

  • При добавлении данной функции в общий модуль, позволяет быстро и без внесения изменений в код получать данные из временных таблиц в запросе. Используется в случае, если МенеджерВременныхТаблиц = Неопределенно. Доступна с версии 8.3.8

    //Функция возвращает содержимое временной таблицы в запросе по индексу // // Параметры: // Запрос - Запрос - исполняемый запрос // ИндексПакета - Число – индекс временной таблицы // // Возвращаемое значение: // - Таблица значений - таблица значений с содержимым временной таблицы. // Функция ПолучитьДанныеВременнойТаблицы(Запрос, ИндексПакета) Экспорт Возврат Запрос.ВыполнитьПакетСПромежуточнымиДанными()[ИндексПакета].Выгрузить(); КонецФункции
    //Функция возвращает содержимое временной таблицы в запросе по индексу // // Параметры: // Запрос - Запрос - исполняемый запрос // ИндексПакета - Число – индекс временной таблицы // // Возвращаемое значение: // - Таблица значений - таблица значений с содержимым временной таблицы. // Функция ПолучитьДанныеВременнойТаблицы(Запрос, ИндексПакета) Экспорт Возврат Запрос.ВыполнитьПакетСПромежуточнымиДанными()[ИндексПакета].Выгрузить(); КонецФункции

    13 13 0 0 0 Скопировано.

    ред. 2 года назад

    Недостаточно рейтинга для добавления отрицательного голоса. Шаблон будет скрыт из ваших результатов поиска.

    1С 8.3 Просмотр данных временных таблиц запроса — Программист 1С Минск. Автоматизация бизнеса.

    ПРИМЕРЫ КОДА 1С

    Перейти в раздел примеры кода 1С 8.3:

    Пример №1: Получить содержимое временных таблиц запросов в 1С 8.3:

    &НаСервере
    Функция ПросмотрДанныхВременныхТаблицЗапроса_1 ( Запрос , НомерВременнойТаблицы ) // НомерВременнойТаблицы с 0

    Возврат Запрос . МенеджерВременныхТаблиц . Таблицы [ НомерВременнойТаблицы ]. ПолучитьДанные (). Выгрузить ();
    //Возвращает таблицу значений с данными временной таблицы

    Пример №2: Получить содержимое временных таблиц запросов в 1С 8.3:

    &НаСервере
    Функция ПросмотрДанныхВременныхТаблицЗапроса_2 ( Запрос , НомерВременнойТаблицы ) // НомерВременнойТаблицы с 0

    Возврат Запрос . ВыполнитьПакетСПромежуточнымиДанными ()[ НомерВременнойТаблицы ]. Выгрузить ();
    //Возвращает таблицу значений с данными временной таблицы

    Пример №3: Получить содержимое временных таблиц запросов в 1С 8.3:

    &НаСервере
    Функция ПросмотрДанныхВременныхТаблицЗапроса_3 ( Запрос , НаименованиеВременнойТаблицы ) // по имени ВТ

    Возврат Запрос . МенеджерВременныхТаблиц . Таблицы . Найти ( НаименованиеВременнойТаблицы ). ПолучитьДанные (). Выгрузить ();
    //Возвращает таблицу значений с данными временной таблицы

    Дополнительные возможности по работе с временными таблицами

    Данная статья является анонсом новой функциональности.
    Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
    Полное описание новой функциональности будет приведено в документации к соответствующей версии.
    Полный список изменений в новой версии приводится в файле v8Update.htm.

    Планируется в 8.3.25

    Добавление данных в существующую временную таблицу

    Как известно, временная таблица создается при выполнении запроса с помощью предложения ПОМЕСТИТЬ, идущего после перечисления полей в инструкции ВЫБРАТЬ. Имя временной таблицы идет после ПОМЕСТИТЬ, а её структура определяется структурой самого запроса.

    Номенклатура.Код КАК Код,

    Номенклатура.Наименование КАК Наименование

    Справочник.Номенклатура КАК Номенклатура

    создаст временную таблицу ВТ_Товары с полями Код и Наименование.

    Добавить данные в уже созданную временную таблицу нельзя. Если мы захотим сложить в ВТ_Товары ещё и содержимое справочника Услуги:

    Номенклатура.Код КАК Код,

    Номенклатура.Наименование КАК Наименование

    Справочник.Номенклатура КАК Номенклатура

    Услуги.Код КАК Код,

    Услуги.Наименование КАК Наименование

    Справочник.Услуги КАК Услуги

    мы получим ошибку «Временная таблица уже существует».

    В версии 8.3.25 появится возможность добавлять данные в уже существующую временную таблицу с помощью предложения ДОБАВИТЬ (ADD):

    Номенклатура.Код КАК Код,

    Номенклатура.Наименование КАК Наименование

    Справочник.Номенклатура КАК Номенклатура

    Услуги.Код КАК Код,

    Услуги.Наименование КАК Наименование

    Справочник.Услуги КАК Услуги

    ;

    Структура запросов, добавляющих данные в существующую временную таблицу (состав колонок и их типы) должны совпадать со структурой временной таблицы, иначе возникнет ошибка «Структура существующей временной таблицы не соответствует структуре добавляемых данных».

    Возможность добавлять данные в существующую временную таблицу позволит в ряде сценариев сократить количество «однотипных» временных таблиц в запросе, сделать текст запроса более читаемым, а исполнение запроса – более эффективным.

    Создание нескольких индексов для временной таблицы

    Для временной таблицы можно будет создавать несколько индексов для ускорения поиска по временной таблице. Для предложения ИНДЕКСИРОВАТЬ ПО будет реализовано расширение НАБОРАМ (SETS):

    ИНДЕКСИРОВАТЬ ПО НАБОРАМ ((НаборПолей1)[ ,(НаборПолей2)[,…]])

    Номенклатура.Код КАК Код,

    Номенклатура.Наименование КАК Наименование,

    Номенклатура.Артикул КАК Артикул

    1с как посмотреть временную таблицу в запросе

    В пакете несколько временных таблиц. Выполняю пакет и после этого имею в результирующем массиве таблицы значений в которых указано количество строк, а не сами строки. Как при выполнении пакета временную таблицу получить как таблицу в том виде, в котором она задумывалась, а не количество строк?

    выбрать * из МояТаблица

    Если у тебя 8.3.8 юзай так:
    МассивРезультатов = Запрос.ВыполнитьПакетСПромежуточнымиДанными(); ТаблицаЗначений1 = МассивРезультатов[0].Выгрузить();
    ТаблицаЗначений1 = МассивРезультатов[1].Выгрузить();

    или так(например у тебя есть «|ПОМЕСТИТЬ Должники» ):

    (2) И вот что мешало им вместо массива заюзать структуру, в качестве ключа хранить имя временной таблицы? Намного удобнее было бы..

    (4) это вопрос к разработчикам платформы?

    (5) Ага.. или еще лучше СписокЗначений. Там и порядок сохранен, и имя ВТ можно в представлении отобразить.

    тип значения Запрос.МенеджерВременныхТаблиц.Таблицы = «ВременныеТаблицыЗапроса» и есть что-то вроде соотвествия или структуры. Можешь через индекс получать таблицу, а хошь — по ключу(имени). В любом случае -чукча не писатель-чукча читатель. Беру что дают.:)

    Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn

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

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