Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебники 80235

.pdf
Скачиваний:
5
Добавлен:
01.05.2022
Размер:
1.32 Mб
Скачать

Обработка разделена на 3 части: параметры запроса, текст запроса и результат запроса. В первой части заполняются значения параметров запроса (в некоторых случаях может оставаться пустой). В графе «Текст запроса» указывается выполняемый запрос. После нажатия на кнопку «Выполнить» результат можно будет увидеть в третьей части обработки «Результат запроса».

С помощью этой обработки можно набрать текст запроса и посмотреть его результат.

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

Текст запроса состоит из операторов. Каждый оператор заканчивается точкой с запятой. В тексте запроса могут быть комментарии, которые начинаются с "//" и заканчиваются концом строки.

Язык запросов системы «1С:Предприятие» основан на стандартном языке SQL, но при этом содержит значительное количество расширений, ориентированных на финансовоэкономические задачи, и значительно облегчает разработку бизнес-приложений.

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

Текст запроса состоит из нескольких частей (секций):

описание запроса;

объединение запросов;

упорядочивание результатов;

автоупроядочивание;

описание итогов.

Обязательной частью запроса является только первая – описание запроса. Все остальные присутствуют в запросе по

19

необходимости. На рис. 9 приведен запрос, в котором присутствуют все указанные секции.

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

содержат ключевые слова (например, ВЫБРАТЬ, ИЗ, ГДЕ и

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

Внимание. Запрос не манипулирует величинами типа «Строка неограниченной длины».

1. Открыть обработку КонсольЗапросов в режиме "1С:Предприятие" и набрать текст

ВЫБРАТЬ Контрагенты.Ссылка ИЗ

Справочник.Контрагенты КАК Контрагенты

Результат содержит перечень всех контрагентов (рис.

10).

Секции запроса

 

ВЫБРАТЬ

 

Приход.Ссылка КАК Документ,

 

Приход.Товар КАК Товар,

 

Сумма(Приход. Количество) КАК КоличествоВсего,

 

Сумма(Приход. Сумма) КАК СуммаВсего

Описание

ИЗ

запроса

Документ ПриходнаяНакладная.Состав КАК Приход

 

СГРУППИРОВАТЬ ПО

 

Приход.Ссылка,

 

Приход.Товар

 

ОБЪЕДИНИТЬ ВСЕ

 

ВЫБРАТЬ

 

Расход.Ссылка,

 

Расход.Товар

 

Сумма(Расход. Количество),

Описание

Сумма(Расход. Сумма)

запроса

ИЗ

 

Документ РасходнаяНакладная.Состав КАК Расход

 

СГРУППИРОВАТЬ ПО

 

20

Расход.Ссылка, Расход.Товар

УПОРЯДОЧИТЬ ПО Документ, Товар

АВТОУПОРЯДОЧИВАНИЕ

ИТОГИ Сумма(КоличествоВсего), Сумма(СуммаВсего)

ПО

Документ

Рис. 9. Секции запросов

Упорядочивание

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

Описание итогов

Рис. 10. Пример выполнения запроса

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

21

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

ВЫБРАТЬ Контрагенты.Ссылка

ИЗ Справочник.Контрагенты КАК Контрагенты

УПОРЯДОЧИТЬ ПО Контрагенты.Код

Для упорядочивания группировок могут также выступать функции запроса.

Для группировок по элементам с иерархической структурой можно использовать следующую конструкцию:

ВЫБРАТЬ Контрагенты.Ссылка

ИЗ Справочник.Контрагенты КАК Контрагенты

УПОРЯДОЧИТЬ ПО Контрагенты.Код ИЕРАРХИЯ

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

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

Внимание. Группировок в запросе может быть несколько. Каждая последующая группировка детализирует предыдущую, поэтому порядок группировок принципиально

важен.

22

Условия. В запросе условия на отбираемые данные можно задать следующими операторами (после ключевого слова ГДЕ):

ВЫБРАТЬ Контрагенты.Ссылка

ИЗ

Справочник.Контрагенты КАК Контрагенты

ГДЕ

Контрагенты.ПометкаУдаления = ЛОЖЬ

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

ВЫБРАТЬ ПриходнаяНакладная.Ссылка

ИЗ Документ.ПриходнаяНакладная КАК ПриходнаяНакладная

ГДЕ ПриходнаяНакладная.Проведен = ИСТИНА

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

[Период] С <Дата> <ВнешняяПерем> [ПО <Дата>|<ВнешПеременная>];

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

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

23

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

ВЫБРАТЬ ПриходнаяНакладная.Контрагент

ИЗ

Документ.ПриходнаяНакладная КАК ПриходнаяНакладная

ГДЕ

ПриходнаяНакладная.Дата МЕЖДУ &ДатаНач И &КонДата

УПОРЯДОЧИТЬ ПО ПриходнаяНакладная.Контрагент.Код

Если попробовать выполнить этот запрос в обработке КонсольЗапросов, то будут выданы сообщения об ошибке, что не определены переменные НачДата, КонДата. Для этого в группе «Параметры» заполним список параметров и заполним их значения.

Функции. Запрос умеет выполнять несложные вычисления, например, отвечать на вопросы типа "На какую сумму заключены договоры выбранным в диалоге контрагентом?". Для этого в языке запросов предусмотрен оператор Функция, имеющий следующий формат:

Функция <ИмяФункции> = <ТипФункции> (<Параметр>) [Когда (< Условие>)];

Здесь <ТипФункции> одна из предопределенных функций,

например Сумма, Среднее, Минимум, Максимум, Счётчик.

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

функций, например, Сумма, Среднее, Минимум, Максимум может

быть арифметическое выражение в терминах встроенного языка 1С: Предприятия.

Сумма. Например, чтобы ответить на вопрос "На какую сумму поступили деньги от выбранного в диалоге контрагента?", можно предложить следующий текст запроса:

24

ВЫБРАТЬ ПриходныйКО.Контрагент,

СУММА(ПриходныйКО.Сумма) КАК Сумма

ИЗ

Документ.ПриходныйКО КАК ПриходныйКО

ГДЕ

ПриходныйКО.Контрагент = &Контрагент

СГРУППИРОВАТЬ ПО ПриходныйКО.Контрагент

Счётчик. Функция КОЛИЧЕСТВО подсчитывает количество записей, вошедших в запрос. Параметр РАЗЛИЧНЫЕ позволяет отобрать не повторяющиеся элементы.

Пример. Определить количество контрагентов фирмы.

ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контрагенты.Ссылка) КАК Ссылка

ИЗ Справочник.Контрагенты КАК Контрагенты

Среднее, максимум, минимум. Функции Среднее,

Максимум и Минимум определяют, соответственно, среднее, максимальное и минимальное значение по группировке.

Пример. Показать минимальную цену по товарам.

ВЫБРАТЬ Товары.Ссылка,

МИНИМУМ(Товары.ЦенаОптовая) КАК ЦенаОптовая ИЗ

Справочник.Товары КАК Товары

СГРУППИРОВАТЬ ПО Товары.Ссылка

Обработка результатов запроса

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

"РезультатЗапроса".

25

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

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

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

Запрос = Новый Запрос; Запрос.Текст = "...";

РезультатЗапроса = Запрос.Выполнить();

ВыборкаГруппы = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаГруппы.Следующий() Цикл // Вставить обработку выборки ВыборкаГруппы

ВыборкаДетальныеЗаписи = ВыборкаВерсияДанных.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл // Вставить обработку выборки ВыборкаДетальныеЗаписи КонецЦикла;

КонецЦикла;

4. ЗАДАНИЯ

Написать тексты запросов для выборки информации:

1)о контрагентах, приход денег от которых имел место за указанный период;

2)о контрагентах, которым фирма уплатила деньги за поставленную продукцию за указанный период;

3)о должниках Вашей фирмы на текущую дату. В отчет должны входить данные о названии фирмы, сумме долга.

26

Сформируйте информацию о фирме(ах) с наибольшей задолженностью на текущую дату;

4)о должниках Вашей фирмы на текущую дату. В отчет должны входить данные о названии фирмы, сумме долга. Сформируйте информацию о фирме(ах) с наименьшей задолженностью на текущую дату;

5)о должниках Вашей фирмы на текущую дату. В отчет должны входить данные о названии фирмы, сумме долга. Сформируйте информацию о количестве должников Вашей фирмы;

6)о фирмах, которым Ваша фирма должна. В отчет должны входить данные о названии фирмы, сумме долга. Сформируйте информацию о фирмах, которым Ваша фирма должна наибольшую сумму на текущую дату;

7)о фирмах, которым Ваша фирма должна. В отчет должны входить данные о названии фирмы, сумме долга. Сформируйте информацию о фирмах, которым Ваша фирма должна наименьшую сумму на текущую дату;

8)о фирмах, которым Ваша фирма должна. В отчет должны входить данные о названии фирмы, сумме долга. Сформируйте информацию о количестве фирм, которым Ваша фирма должна;

9)Написать текст запроса, который

10)позволяет упорядочить контрагентов по сумме

долга;

11)позволяет упорядочить информацию по дате прихода денег от выбранного в диалоге контрагента;

12)позволяет упорядочить информацию по дате расхода денег Вашей фирмы по оплате поставленной продукции выбранному в диалоге контрагенту;

13)определяет наибольшую сумму, поступившую от контрагентов группы покупателей, группы поставщиков и от всех контрагентов;

14)подсчитывает количество выплат денег за выбранный период от выбранного в диалоге контрагента;

27

15)за указанный в диалоге период подсчитывает сумму денег, выплаченную выбранной в диалоге фирме;

16)за указанный в диалоге период подсчитывает среднюю сумму стоимости поступающей продукции фирме в день.

ЛАБОРАТОРНАЯ РАБОТА № 8 СОЗДАНИЕ ОТЧЕТОВ

1. ЦЕЛЬ РАБОТЫ

Получение бухгалтерских отчетов в различных разрезах с использованием системы компоновки данных (СКД)

2. КОММЕНТАРИИ ПО ВЫПОЛНЕНИЮ РАБОТЫ

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

3. СОДЕРЖАНИЕ И ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Отчет по остаткам товаров на складе. Данный отчет позволит получать данные о количестве и сумме оставшихся на складе товаров.

1. Для создания этого отчета воспользуемся системой компоновки данных, т.к. с его помощью отчет можно создать очень быстро и эффективно. Затем можно только отредактировать оформление готового отчета. Для этого добавим в конфигураторе новый отчет (рис. 11).

28

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]