К статье
Практический материал

Разработка и Конфигурация · 11 мин

Как установить менеджер временных таблиц в 1С

Как установить и использовать менеджер временных таблиц в 1С: программное создание, консоль запросов, инструменты разработчика, проверка и типичные ошибки.

Под «установкой менеджера временных таблиц» в 1С обычно понимают две разные задачи. Первая — программная: создать объект МенеджерВременныхТаблиц и передать его в запрос, чтобы работать с временными таблицами. Вторая — прикладная: установить внешний инструмент (консоль запросов, «Инструменты разработчика»), который показывает содержимое временных таблиц и позволяет отлаживать запросы с пакетами. Обе задачи решаются без изменения конфигурации, если действовать аккуратно.

Важно понимать: штатного «менеджера временных таблиц» как отдельной устанавливаемой программы в платформе 1С нет. Объект МенеджерВременныхТаблиц встроен в язык и создаётся одной строкой кода, а визуальные инструменты — это внешние обработки, которые запускаются через «Файл → Открыть» и не требуют прав администратора базы в большинстве случаев.

Ниже разобраны оба сценария: программное создание менеджера в коде, установка консоли запросов для просмотра временных таблиц, проверка результата, ограничения по правам и типичные ошибки. Материал ориентирован на платформу 1С:Предприятие 8.3 в управляемом и обычном приложении.

Что такое менеджер временных таблиц и когда он нужен

Менеджер временных таблиц — это объект встроенного языка 1С, который хранит временные таблицы, созданные запросами в рамках одного сеанса работы. Пока менеджер существует, к его таблицам можно обращаться из других запросов, если им передать тот же объект. Как только переменная с менеджером уничтожается, все временные таблицы удаляются с сервера СУБД.

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

Отдельно стоит задача отладки: разработчику нужно видеть, что реально лежит во временных таблицах. Для этого используют внешние консоли запросов — их и называют в обиходе «менеджером временных таблиц», хотя корректнее говорить «инструмент просмотра временных таблиц».

Программная установка: создание объекта в коде

Создание менеджера занимает три строки. Сначала объявляется объект, затем он присваивается запросу, после чего запросы могут создавать и читать временные таблицы:

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

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

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

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

"ВЫБРАТЬ

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

|ПОМЕСТИТЬ ВТ_Товары

|ИЗ

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

|ГДЕ

| НЕ Товары.ПометкаУдаления";

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

После выполнения таблица ВТ_Товары доступна любому следующему запросу, которому назначен тот же менеджер:

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

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

Запрос2.Текст = "ВЫБРАТЬ * ИЗ ВТ_Товары";

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

Ключевое правило: менеджер должен жить столько, сколько нужны его таблицы. Если объявить его внутри функции и вернуть только результат первого запроса, временные таблицы будут уничтожены при выходе из функции. Для длительной работы менеджер передают между процедурами параметром или хранят в реквизите объекта (например, обработки).

Установка консоли запросов для просмотра временных таблиц

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

Порядок установки консоли запросов
  1. 1
    Скачайте файл обработки (расширение .epf) из доверенного источника: портал 1С, диск ИТС или официальный репозиторий инструмента.
  2. 2
    Проверьте, что версия обработки совместима с вашей версией платформы и режимом работы (обычное или управляемое приложение).
  3. 3
    Откройте 1С в режиме Предприятие и выполните Файл → Открыть, выберите скачанный .epf-файл.
  4. 4
    Если появилось предупреждение безопасности о внешней обработке, подтвердите открытие — при наличии соответствующих прав.
  5. 5
    Убедитесь, что консоль открылась и выполняет простой тестовый запрос.
  6. 6
    Для постоянного использования добавьте обработку в справочник «Дополнительные отчеты и обработки», если он есть в конфигурации.

Если в конфигурации внедрена Библиотека стандартных подсистем, удобнее зарегистрировать консоль как дополнительную обработку: тогда она появится в меню «Дополнительные отчеты и обработки» и будет доступна всем пользователям с нужными правами, без ручного открытия файла каждый раз.

Для регистрации откройте «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки», создайте новый элемент, загрузите файл .epf, укажите разделы, где он будет виден, и опубликуйте. Потребуются права на добавление дополнительных обработок — обычно это роль администратора или разработчика.

Ограничения по правам и безопасности

Открытие внешних обработок может быть запрещено настройками безопасности: профилем групп доступа, правом «Интерактивное открытие внешних отчетов и обработок» или защитой от опасных действий. Если при открытии файла появляется отказ, обратитесь к администратору базы — самостоятельно менять профили безопасности в рабочей базе не следует.

Проверка результата: как убедиться, что всё работает

Для программного сценария проверка проста: после выполнения запроса с «ПОМЕСТИТЬ» выполните второй запрос, читающий временную таблицу. Если менеджер передан корректно, запрос вернёт данные; если нет — платформа выдаст ошибку «Таблица не найдена» с именем временной таблицы.

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

Контрольные точки

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

Второй запрос читает временную таблицу
Норма

Запрос выполняется и возвращает строки

Тревожный признак

Ошибка «Таблица не найдена» — менеджер не передан или уже уничтожен

Консоль запросов открылась
Норма

Форма консоли отображается, тестовый запрос выполняется

Тревожный признак

Отказ в доступе или ошибка совместимости — проверьте права и версию платформы

Список временных таблиц в консоли
Норма

После выполнения пакета видны созданные таблицы и их строки

Тревожный признак

Список пуст — запрос не содержит ПОМЕСТИТЬ или выполнен с ошибкой

Типичные ошибки при работе с менеджером временных таблиц

Большинство проблем связано не с установкой, а с жизненным циклом объекта и синтаксисом запросов. Разбирать их стоит до того, как менять код в рабочей базе.

Типичные ошибки
01
Менеджер объявлен локально внутри функции и уничтожается при выходе — последующие запросы не видят временных таблиц. Выносите менеджер на уровень выше или передавайте его параметром.
02
Запросу забыли присвоить МенеджерВременныхТаблиц — ПОМЕСТИТЬ создаёт таблицу в анонимном менеджере, и она недоступна дальше.
03
Повторное создание таблицы с тем же именем без УНИЧТОЖИТЬ — запрос падает с ошибкой, если таблица уже существует в менеджере.
04
Попытка прочитать временную таблицу в другом сеансе или после завершения фонового задания — менеджер живёт только в рамках своего сеанса.
05
Открытие .epf-файла, сохранённого для другого режима (обычное приложение вместо управляемого) — обработка не запускается или работает некорректно.

Отдельная группа ошибок — производительность. Разработчики помещают во временные таблицы миллионы строк без индексов, а потом соединяют их без условий. Если временная таблица участвует в соединениях, добавляйте индексы через конструкцию ИНДЕКСИРОВАТЬ ПО — это заметно ускоряет пакетные запросы на больших объёмах.

Альтернативы и границы самостоятельной работы

Не всегда нужен полноценный визуальный инструмент. Для разовой отладки достаточно вывести содержимое временной таблицы в табличный документ или в отладчике конфигуратора посмотреть результат запроса. Для постоянной работы команды разработки удобнее зарегистрированная дополнительная обработка, доступная всем из интерфейса.

Сравнение вариантов

Программный МенеджерВременныхТаблиц

Подходит для прикладного кода, отчётов и обработок. Не требует установки, но не даёт визуального просмотра таблиц.

Внешняя консоль запросов (.epf)

Подходит для разовой отладки и анализа временных таблиц. Требует права интерактивного открытия внешних обработок.

Консоль в составе «Инструментов разработчика»

Подходит для постоянной работы: расширенный просмотр временных таблиц, анализ плана запроса. Требует установки подсистемы или открытия обработки.

Отладчик конфигуратора

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

Самостоятельно безопасно: создавать менеджер в коде, открывать проверенные консоли запросов в тестовой базе, регистрировать дополнительные обработки при наличии прав. К администратору или внедренцу стоит обращаться, если нужно менять профили безопасности, внедрять подсистемы в конфигурацию на поддержке или разбираться с нагрузкой временных таблиц на сервер СУБД.

Итог

Что важно запомнить

Менеджер временных таблиц не устанавливается как программа: он создаётся в коде через Новый МенеджерВременныхТаблиц и передаётся запросам. Для визуальной работы используйте внешнюю консоль запросов из доверенного источника, открывая её через Файл → Открыть или регистрируя в дополнительных обработках. Следите за временем жизни менеджера, правами доступа и нагрузкой на сервер СУБД.

Частые вопросы

Нужно ли что-то доустанавливать в платформу 1С для работы временных таблиц?

Нет. Объект МенеджерВременныхТаблиц входит в состав платформы и доступен во всех конфигурациях без дополнительной установки. Доустанавливать нужно только внешние инструменты просмотра — консоли запросов.

Почему запрос с ПОМЕСТИТЬ выполняется, а следующий запрос не видит таблицу?

Чаще всего второму запросу не присвоен тот же менеджер временных таблиц, либо переменная с менеджером уже вышла из области видимости и была уничтожена. Проверьте, что оба запроса используют один объект и что он живёт на протяжении всей цепочки вызовов.

Можно ли открыть консоль запросов без прав администратора?

Да, если у пользователя есть право интерактивного открытия внешних отчётов и обработок и не включены ограничения профиля безопасности. Если при открытии файла возникает отказ, права должен настроить администратор базы.

Как удалить временную таблицу, если она больше не нужна?

Выполните запрос с текстом «УНИЧТОЖИТЬ ИмяТаблицы» через тот же менеджер. Это освобождает ресурсы сервера СУБД до завершения работы кода и позволяет повторно создать таблицу с тем же именем без ошибки.

Работают ли временные таблицы в фоновых заданиях?

Да, но менеджер живёт только внутри сеанса фонового задания. Передать временные таблицы из фонового задания в основной сеанс нельзя — результат нужно возвращать через таблицу значений или помещать во временное хранилище.

Чем опасны большие временные таблицы в клиент-серверной базе?

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