[ Вопрос дня ] Когда стоит использовать менеджер временных таблиц и нужно ли закрывать его явно?

Доброго дня, коллеги!

В рамках курса Разработка и оптимизация запросов в “1С:Предприятие 8.2 и 8.3” слушатели получают необходимый теоретический минимум об использовании временных таблиц в запросах, о назначении объекта встроенного языка МенеджерВременныхТаблиц и методах работы с ним. Но, согласитесь, гораздо важнее понимать и видеть практическую значимость использования того или иного объекта, чем просто знать теорию. Вот и наши слушатели всегда интересуются практической стороной вопроса.

Вопрос

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

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

Ответ тренера

Добрый день!

  1. Менеджер временных таблиц будет уничтожен автоматически, когда перестанет существовать соответствующая переменная. Например, при выходе из процедуры.
    В большинстве фрагментов программного кода из типовых конфигураций менеджер временных таблиц явно не закрывается. Придерживаюсь такого же подхода.
  2. Если временная таблица создается для использования в одном конкретном пакете запроса и больше нигде, то явно менеджер временных таблиц создавать не требуется. Теперь представьте, что есть большой, сложный алгоритм (например, что-нибудь из расчёта зарплаты), который состоит из нескольких процедур или функций. В одной процедуре создается временная таблица, в другой производится обработка при помощи программного кода, данные передаются в запрос, временные таблицы соединяются, объединяются и т.д. Чтобы передавать данные из одной процедуры в другую, как раз подойдет менеджер временных таблиц. Его можно передавать в качестве параметра процедуры. Также менеджер временных таблиц можно использовать для отладки при помощи метода:
МенеджерВременныхТаблиц.Таблицы[0].ПолучитьДанные();

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

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

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

Я подтверждаю, что ознакомлен(а) с Пользовательским соглашением, принимаю его условия и даю свое согласие на обработку моих персональных данных.

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.