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

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

Войдите как ученик, чтобы получить доступ к материалам школы

Язык запросов 1С 8.3 для начинающих программистов: пакетные запросы и временные таблицы

Автор уроков и преподаватель школы: Владимир Милькин

Пакетные запросы

Пусть у нас есть запрос, выбирающий наименования цветов:

И запрос, выбирающий наименования вкусов:

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

Вот бы иметь возможность выполнить оба этих запроса последовательно, но в один присест. Так сказать в одном пакете. У платформы есть такая возможность и она называется пакетный запрос.

Чтобы получить пакетный запрос нужно перечислить входящие в него запросы и отделить их друг от друга точкой с запятой.

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

В результате пакетный запрос вернёт нам сразу две таблицы:

Разумеется в пакетный запрос может входить и 3 и 4 и сколько угодно запросов. Главное отделять их друг от друга точкой с запятой.

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

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

К примеру, давайте поставим себе цель написать пакетный запрос, который первым запросом выбирает все цвета и помещает их во временную таблицу с именем ТАБЛИЦА_ЦВЕТОВ, вторым запросом выбирает все вкусы и помещает их во временную таблицу с именем ТАБЛИЦА_ВКУСОВ, а третьим запросом делает объединение полученных ранее результатов в одну таблицу:

Читайте также:  За язык вас тянет

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

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

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

Источник

Механизм запросов

Механизм запросов — это один из способов доступа к данным, которые поддерживает платформа. Используя этот механизм, разработчик может читать и обрабатывать данные, хранящиеся в информационной базе; изменение данных с помощью запросов невозможно. Это объясняется тем, что запросы специально предназначены для быстрого получения и обработки некоторой выборки из больших массивов данных, которые могут храниться в базе данных.

Табличный способ доступа к данным

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

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

Язык запросов

Для того чтобы разработчик имел возможность использовать запросы для реализации собственных алгоритмов, в платформе реализован язык запросов. Этот язык основан на SQL, но при этом содержит значительное количество расширений, ориентированных на отражение специфики финансово-экономических задач и на максимальное сокращение усилий по разработке прикладных решений. Можно перечислить наиболее существенные возможности, реализуемые языком запросов:

Обращение к полям через точку (».»)

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

Читайте также:  Аванесов современный русский язык

Обращение к вложенным таблицам (табличным частям документов и элементов справочников)

Система поддерживает обращения к вложенным табличным частям и как к отдельным таблицам, и как к целым полям одной таблицы. Например, при обращении к документу Реализация товаров (содержащему табличную часть Товары с составом отгружаемых товаров), мы можем считать табличную часть как отдельную таблицу:

Но также мы можем считать заголовочную запись документа, в которой значением поля Товары будут все записи вложенной таблицы, подчиненные этому объекту (документу):

Автоматическое упорядочивание

Для выбора наиболее правильного («естественного») порядка вывода информации на экран или в отчет разработчику в большинстве случаев достаточно задать режим автоматического упорядочивания.

Многомерное и многоуровневое формирование итогов

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

Поддержка виртуальных таблиц

Виртуальные таблицы, предоставляемые системой, позволяют получить практически готовые данные для большинства прикладных решений без необходимости составления сложных запросов. Например, такая виртуальная таблица может предоставить данные по остаткам товаров в разрезе периодов на какой-то момент времени. При этом виртуальные таблицы максимально используют хранимую информацию, например, ранее рассчитанные итоги и т. д.

Стандартные SQL операции

В языке запросов поддерживаются стандартные для SQL операции, такие, как объединение (Union), соединение (Join) и т. д.


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

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

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

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

Пакетные запросы

Для более удобной работы с временными таблицами в языке запросов поддерживается работа с пакетными запросами — таким образом, создание временной таблицы и ее использование помещаются в один запрос. Пакетный запрос представляет собой последовательность запросов, разделенных символом «;». Запросы исполняются один за другим. Результатом выполнения пакетного запроса в зависимости от используемого метода будет являться либо результат, возвращаемый последним запросом пакета, либо массив результатов всех запросов пакета в той последовательности, в которой следуют запросы в пакете.

Читайте также:  Аудио чтение английского языка

Конструкторы запроса

Консоль запросов

Инструмент «Консоль запросов» позволяет разработчикам конфигураций и специалистам по внедрению отлаживать запросы и просматривать результаты их выполнения в режиме «1С:Предприятие 8». Подробнее…

Источник

Профессия — 1С

рубрики: Конструктор запросов | Дата: 4 августа, 2017

Рассмотрим создание временных таблиц при помощи конструктора запросов. Рассмотрим несколько ситуаций.

Как поместить результат запроса во временную таблицу

Создадим с помощью конструктора вот такой простейший запрос:

Соответственно текст запроса будет выглядеть следующим образом:

Но мы хотим поместить результат запроса во временную таблицу, которую назовем ВТ_Товары, то есть привести наш запрос вот к такому виду

Для этого нам необходимо перейти на закладку Дополнительно, установить тип запроса в положение Создание временной таблицы и заполнить поле с именем таблицы

Как прочитать временную таблицу из другого запроса

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

Чтобы выбрать данные из временной таблицы, необходимо на закладке Таблицы и поля нажать на кнопку Создать описание временной таблицы и в открывшейся форме заполнить наименование таблицы и ее поля:

Как создать временную таблицу из параметра запроса

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

В этом случае нам надо сначала создать описание временной таблицы. А затем прописать ее имя на закладке Дополнительно.

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

Источник

Поделиться с друзьями
admin
Расскажем обо всем понемногу
Adblock
detector