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