![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Создание запросов
Запрос создается функцией «СоздатьОбъект(«Запрос»)». Для выполнения запроса используется функция «Выполнить(< ТекстЗапроса>)», которая возвращает 1, если запрос выполнился. < ТекстЗапроса> – это строковое выражение на “языке запросов”. Пример: НашЗапрос = СоздатьОбъект(" Запрос"); ТекстЗапроса = " //{{ЗАПРОС(Сформировать) |СКЛАД = Документ.РасходнаяНакладная.Склад; |ТОВАР = Документ.РасходнаяНакладная.Товар; |КОЛИЧЕСТВО = Документ.РасходнаяНакладная.Количество; |Группировка ТОВАР Упорядочить По ТОВАР.Код; |Группировка СКЛАД Упорядочить По СКЛАД.Код; |Функция КОЛ = Сумма(КОЛИЧЕСТВО); |" //}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если НашЗапрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Структура временного набора данных, созданная запросом " НашЗапрос" после его выполнения, представлена на следующем рисунке:
После выполнения запроса в программе можно использовать полученный временный набор данных. Изначально объект " НашЗапрос" спозиционирован на первой записи временного набора данных, где содержится общий итог по запросу. Поэтому общие итоги по запросу можно использовать сразу же после выполнения запроса. Далее, допустим, в цикле мы проходим только по самой внешней группировке запроса: " Товар". В теле этого цикла объект " НашЗапрос" позиционируется во временном наборе данных на записи, содержащие итоги по каждому конкретному товару, поэтому в теле этого цикла мы можем использовать итоги по товарам. После завершения цикла по самой внешней группировке, объект " НашЗапрос" снова позиционируется на первой записи временного набора данных, где содержится общий итог по запросу. Поэтому, общие итоги по запросу можно использовать в двух местах: до и после цикла по самой внешней группировке запроса. //Итог общий Пока НашЗапрос.Группировка(" Товар") = 1 Цикл //Итог по товару КонецЦикла; //Итог общий
|