В рамках курса Разработка и оптимизация запросов в “1С:Предприятие 8.3” слушатели получают необходимый теоретический минимум об использовании временных таблиц в запросах, о назначении объекта встроенного языка МенеджерВременныхТаблиц и методах работы с ним. Но, согласитесь, гораздо важнее понимать и видеть практическую значимость использования того или иного объекта, чем просто знать теорию. Вот и наши слушатели всегда интересуются практической стороной вопроса.
Вопрос
В курсе объясняется, что временная таблица (ВТ) живет, пока живет менеджер временных таблиц (МВТ). МВТ можно закрыть с помощью метода Закрыть(), соответственно при этом уничтожаются все ВТ.
- Нужно ли закрывать МВТ явно или на это не стоит обращать внимания? В какой момент он закроется автоматически?
- В своей практике никогда не создавал МенеджерВременныхТаблиц, а сразу помещал данные во временную таблицу и далее работал уже с ней. Для чего МВТ используется на практике? Какие задачи могут возникнуть, для решения которых необходимо будет работать непосредственно с МВТ?
Ответ тренера
Добрый день!
- Менеджер временных таблиц будет уничтожен автоматически, когда перестанет существовать соответствующая переменная. Например, при выходе из процедуры.
В большинстве фрагментов программного кода из типовых конфигураций менеджер временных таблиц явно не закрывается. Придерживаюсь такого же подхода. - Если временная таблица создается для использования в одном конкретном пакете запроса и больше нигде, то явно менеджер временных таблиц создавать не требуется. Теперь представьте, что есть большой, сложный алгоритм (например, что-нибудь из расчёта зарплаты), который состоит из нескольких процедур или функций. В одной процедуре создается временная таблица, в другой производится обработка при помощи программного кода, данные передаются в запрос, временные таблицы соединяются, объединяются и т.д. Чтобы передавать данные из одной процедуры в другую, как раз подойдет менеджер временных таблиц. Его можно передавать в качестве параметра процедуры. Также менеджер временных таблиц можно использовать для отладки при помощи метода:
МенеджерВременныхТаблиц.Таблицы[0].ПолучитьДанные();
P.S.
Понимать, как работают запросы и уметь их строить - обязательный навык для всех, кто дорабатывает и внедряет 1С.
Специальный курс для этой задачи: Запросы в 1С 8.3, Базовый курс (с нуля до уровня Специалист по платформе).
После курса Вы сможете:
- Строить сложные запросы с несколькими источниками данных
- Уверенно задействовать вложенные запросы и временные таблицы
- Использовать встроенный язык для обработки результатов запроса
- Учитывать особенности соединений и объединений нескольких таблиц.
- Разрабатывать запросы на уровне задач Аттестации 1С:Специалист по платформе.
Программа, стоимость, условия и регистрация в группу:
«Запросы в 1С 8.3, Базовый курс (с нуля до уровня Специалист по платформе)»
Для всех, кто внедряет и дорабатывает 1С.