Использование менеджера временных таблиц в за...
-

Использование менеджера временных таблиц в запросах 1С

1
44525
18.10.2022 Дмитрий Гречушкин

Содержание:

1.       Что такое менеджер временных таблиц?

2.       Задача с штрихкодом номенклатуры  

   

1.      Что такое менеджер временных таблиц?


Давайте для начала разберемся, что такое менеджер временных таблиц (МВТ) и зачем он нужен. Что такое МВТ - этот объект позволяет передавать временные таблицы из запроса в запрос. То есть, мы можем создать временную таблицу в запросе, прерваться, выполнить какой-нибудь код, и продолжить работу с этой временной таблицей дальше. Менеджер временных таблиц нужен, если результат запроса нужно на какой-то небольшой промежуток времени сохранять и потом к этому результату делать ещё запросы.


И так с понятие что такое МВТ и для чего он нужен мы разобрали. Перейдем к практической задаче использования менеджера временных таблиц в 1С.   


2.      Задача с штрихкодом номенклатуры


Пример задачи: необходимо вывести данные обо всех товарах с соблюдением иерархии справочника Номенклатура. Для каждого товара мы хотим видеть соответствующий штрихкод.


Решение задачи:

·         Шаг первый – создадим менеджер временных таблиц и поместим в него выборку штрихкодов номенклатуры

// Создадим объект МВТ

МенеджерВТ = Новый МенеджерВременныхТаблиц;

// Создадим объект типа запрос

Запрос = Новый Запрос;

// Инициализируем МВТ запроса объектом МВТ

Запрос.МенеджерВременныхТаблиц = МенеджерВТ;

Запрос.Текст =

    "ВЫБРАТЬ

    |     Штрихкоды.Владелец КАК Номенклатура,

    |     Штрихкоды.Штрихкод

    |ПОМЕСТИТЬ ВТ_Штрихкоды

    |ИЗ

    |     РегистрСведений.Штрихкоды КАК Штрихкоды

    |

    |ИНДЕКСИРОВАТЬ ПО

    |     Номенклатура";

// Сформируем инициализируем объект МВТ

Запрос.Выполнить();

 

Результатом первого шага и создания временной таблицы будут данные, выбранные запросом, помещаются во временную таблицу ВТ_Штрихкоды. Результат выполнения запроса включает одну колонку Количество, содержащую количество строк, помещенных во временную таблицу.

 

·         Шаг второй – сформируем итоговый запрос с использованием менеджера временных таблиц в 1С 8.3.

 

// Создадим объект типа запрос

ЗапросИтог = Новый Запрос;

// Инициализируем МВТ запроса объектом МВТ

ЗапросИтог .МенеджерВременныхТаблиц = МенеджерВТ;

Запрос.Текст =

    "ВЫБРАТЬ

|        Товары.Наименование КАК Наименование,

|        ВТ_Штрихкоды.Штрихкод

|ИЗ

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

|                ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Штрихкоды КАК ВТ_Штрихкоды

|                ПО (ВТ_Штрихкоды.Номенклатура = Товары.Ссылка)

|

|ГДЕ

|     НЕ Товары.Услуга

|

|УПОРЯДОЧИТЬ ПО

|        Наименование ИЕРАРХИЯ";

 

РезультатЗапроса = ЗапросИтог.Выполнить();

 

ВыборкаЗапроса = РезультатЗапроса.Выбрать();

 

Результатом второго шага будет объединение данных временной таблицы «ВТ_Штрихкоды» МВТ «МенеджерВТ» и данных выборки из справочника «Номенклатура» с соблюдением иерархии справочника. Результат выполнения представлен на рисунке 1.

 


Рисунок 1. Результат итогового запроса

    

Необходимо учитывать, что когда вы создали временные таблицы, они будут существовать в памяти компьютера до закрытия менеджера временных таблиц (автоматически или принудительно методом Закрыть()) или до срока исполнения запроса, связанного с этим менеджером, уничтожающего временную таблицу с помощью конструкции УНИЧТОЖИТЬ.


Заключение – использование МВТ дает мощный функционал для выполнения запроса на выборку данных в 1С.

Спасибо за внимание уважаемые коллеги.


Специалист компании «Кодерлайн»

Дмитрий Гречушкин

Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

0
Guest
Добрый день, у вас небольшая ошибка:

"// Инициализируем МВТ запроса объектом МВТ
ЗапросИтог .МенеджерВременныхТаблиц = МенеджерВТ;
Запрос.Текст =
"

Надо вместо "Запрос" -> "ЗапросИтог"

С уважением, Евгений.
Имя Цитировать 0
Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Услуги программиста 1С
Получите специалиста
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.