новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

СКД использование временных таблиц в запросах

  • Добавить свою публикацию
  • для этого требуется регистрация

Создаём в конфигураторе новый отчет. Назовём его НовыйОтчет.

Открываем схему компоновки данных.

Изображение

 

Выбираем добавить набор данных - запрос.

Изображение

 

Открывается окно запросов в котором выбираем кнопку конструктора запросов.

Изображение

 

В конструкторе запросов выбираем нужный нам регистр сведений и поля из таблицы.

После выбора переходим на закладку дополнительно

Изображение

На закладке дополнительно выбираем Тип запроса - Создание временной таблицы. Назовем её КлассАВС.

Можно при необходимости ставить выборки без повторяющихся либо разрешённые ( для ограничения видимости по ролям ) либо первые ....

После того, как определили  Не нажимаем на ОК , а переходим на закладку Пакет запросов

Изображение

Там нажимаем добавить и попадаем в окно выбора запроса. Изображение

Определяем новый запрос к другому объекту конфигурации и выбираем поля, которые нам необходимы

Изображение

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

Изображение

Пекреходим на закладку Пакет запросов и добавляем ещё один запрос. В этом случе запрос выбираем из временных таблиц, которые назодятся внизу списка конфигурации. Отбираем так же нужные поля и переходим на закладку Связи

Изображение

 

На закладке связи определяем поля связи для внутреннего соединения таблиц

Изображение

Для выбора Левого соединения ставим галочки


Изображение


После этого переходим на закладку Пакет запросов и добавляем запрос, только сразу переходим на закладку Дополнительно, где выбираем Тип Запроса - Уничтожение временных таблиц и вводим имя таблицы а нашем случае КлассАВС

Изображение

Если сейчас перейти на закладку Пакет запросов, то обнаружим , что еть запрос  -КлассАВС, который означаем уничтожение этой временной таблицы

Изображение

Нажимаем ок и смотрив на получившийся текст запроса

ВЫБРАТЬ
	ABCXYZКлассификацияНоменклатурыСрезПоследних.Номенклатура,
	ABCXYZКлассификацияНоменклатурыСрезПоследних.РазделКлассификации,
	ABCXYZКлассификацияНоменклатурыСрезПоследних.ТипПараметраКлассификации,
	ABCXYZКлассификацияНоменклатурыСрезПоследних.ТипКлассификации,
	ABCXYZКлассификацияНоменклатурыСрезПоследних.Класс
ПОМЕСТИТЬ КлассАВС
ИЗ
	РегистрСведений.ABCXYZКлассификацияНоменклатуры.СрезПоследних КАК ABCXYZКлассификацияНоменклатурыСрезПоследних
;////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ЗначенияСвойствНоменклатуры.Номенклатура,
	ЗначенияСвойствНоменклатуры.ВидСвойства,
	ЗначенияСвойствНоменклатуры.ЗначениеСвойства
ПОМЕСТИТЬ ТаблицаХарактеристик
ИЗ
	РегистрСведений.ЗначенияСвойствНоменклатуры КАК ЗначенияСвойствНоменклатуры
;////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	КлассАВС.Номенклатура,
	КлассАВС.РазделКлассификации,
	КлассАВС.ТипПараметраКлассификации,
	КлассАВС.ТипКлассификации,
	КлассАВС.Класс,
	ТаблицаХарактеристик.ВидСвойства,
	ТаблицаХарактеристик.ЗначениеСвойства
ПОМЕСТИТЬ Результат
ИЗ
	ТаблицаХарактеристик КАК ТаблицаХарактеристик
		ЛЕВОЕ СОЕДИНЕНИЕ КлассАВС КАК КлассАВС
		ПО (КлассАВС.Номенклатура = ТаблицаХарактеристик.Номенклатура)
;////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ КлассАВС



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

 

 



 
0
≡ к списку статей