Временные таблицы в 1С

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

Виды таблиц 1С:

  1. реальные:
    • объектные (ссылочные, каждая запись однозначно идентифицируется полем Ссылка);
    • необъектные (нессылочные);
  2. виртуальные (формируются системой 1С в момент выполнения запроса на основе реальных таблиц, например, регистров накопления);
  3. физические (в базе данных на физическом диске).

Отличие виртуальных таблиц 1С от временных таблиц:

  • виртуальные формируются системой 1С автоматически на основе реальных таблиц, например, Товары.ОстаткиИОбороты для регистра накопления Товары);
  • временные создаются по воле программиста с помощью менеджера временных таблиц или в запросе с помощью ключевого слова ПОМЕСТИТЬ.

Язык запросов 1С позволяет использовать в запросах временные таблицы, с помощью которых можно:

  • повысить производительность запросов;
  • в некоторых случаях снизить количество блокировок;
  • сделать текст запроса более легким для восприятия.

Время "жизни" временной таблицы 1С:

  • в течение времени исполнения запроса, либо
  • в течение времени жизни менеджера временных таблиц (исполнения процедуры в случае программной обработки менеджером).

В обоих случаях временная таблиц может быть уничтожена и ранее этого, с помощью (соответственно):

  • конструкции языка запросов, либо
  • метода МВТ.

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

Время "жизни" временной таблицы

Программная обработка временных таблиц в 1С

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

Пример

Отсюда

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

Временные таблицы 1С

 

Запрос, использующий временную таблицу, будет иметь вид:

[свернуть]

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

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

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

В окне "Временная таблица" можно определить её наименование и поля, а далее - работать с ней, как с обычной таблицей данных.

Особенности работы с временными таблицами 1С

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

    Имя временной таблицы 1С

    [свернуть]
  2. При работе с временными таблицами в рамках одного сеанса может быть создано произвольное количество экземпляров менеджера временных таблиц.

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.