Файл: Знакомство с платформой 1С: Предприятие 8.3.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 31.03.2023

Просмотров: 879

Скачиваний: 13

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Объединение запросов начинается с обязательного ключевого слова ОБЪЕДИНИТЬ, после которого следует описание присоединяемого запроса. По умолчанию при объединении запросов полностью одинаковые строки в результате запроса (когда они формируются разными запросами) заменяются одной. Если требуется иное, необходимо указать ключевое слово ВСЕ.

Необходимо составить список товаров в привязке к фирме, которая выступала в роли либо поставщика, либо продавца. В листинге 2.19 приведена реализация данного запроса.

Листинг 2.19. Запрос для формирования списка товаров с указанием фирмы

ВЫБРАТЬ

Перечень.Ссылка.Фирма.Наименование КАК Фирма,

Перечень.Товар

ИЗ Документ.ПоступлениеТоваров.ПереченьТоваров КАК Перечень

ОБЪЕДИНИТЬ

ВЫБРАТЬ

Перечень.Ссылка.Фирма.Наименование,

Перечень.Товар

ИЗ Документ.ПродажаТоваров.ПереченьТоваров КАК Перечень

УПОРЯДОЧИТЬ ПО Фирма

В результате в режиме 1С:Предприятие получается набор уникальных комбинаций товара в сочетании с фирмой (рис. 122).

Рис. 122. Отбор названий товаров в сочетании с фирмой

Соединение таблиц при организации запроса

Важной особенностью языка запросов системы 1С:Предприятие является возможность обращения сразу к нескольким таблицам и соединения их определенным образом.

Внутреннее соединение

В конструкции подобного запроса используется ключевое слово СОЕДИНЕНИЕ, позволяющее отобрать из документов ПоступлениеТоваров и ПродажаТоваров только совпадающие товары (листинг 2.20). На рис. 123 приведен результат выполнения запроса к имеющимся в базе данным.

Листинг 2.20. Запрос для отбора совпадающих товаров

ВЫБРАТЬ РАЗЛИЧНЫЕ ПереченьПоступлений.Товар КАК ПоступившийТовар,

ПереченьПродаж.Товар КАК ПроданныйТовар

ИЗ Документ.ПоступлениеТоваров.ПереченьТоваров КАК ПереченьПоступлений

СОЕДИНЕНИЕ

Документ.ПродажаТоваров.ПереченьТоваров КАК ПереченьПродаж

ПО ПереченьПоступлений.Товар = ПереченьПродаж.Товар


Рис. 123. Пример использования внутреннего соединения таблиц в запросе

Рассмотрим еще один пример на данную тему. Необходимо отобрать филиалы, в которые поступали товары от фирм-партнеров и одновременно были перемещения с выставок (листинг 2.21), а результат в режиме 1С:Предприятие представлен на рис. 124.

Листинг 2.21. Извлечение филиалов по условию поступления и перемещения товаров

ВЫБРАТЬ РАЗЛИЧНЫЕ Поступление.Филиал КАК НашФилиал

ИЗ Документ.ПоступлениеТоваров КАК Поступление

СОЕДИНЕНИЕ Документ.ПеремещениеСВыставки КАК Перемещение

ПО Поступление.Филиал=Перемещение.Филиал

Рис. 124. Отбор филиалов, в которых были как поступления, так и перемещения с выставки

Левое внешнее соединение

Конструкция ЛЕВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ означает, что в результат запроса надо включить комбинации записей из обеих исходных таблиц, которые соответствуют указанному условию. Однако в отличие от внутреннего соединения в результат запроса включаются еще и записи из первого источника (указанного слева от слова СОЕДИНЕНИЕ), для которых не найдено соответствующих условию записей из второго источника.

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

Пусть необходимо выбрать фамилии всех менеджеров с указанием общей суммы выполненных ими продаж, однако при этом в результирующую таблицу должны также попасть фамилии менеджеров, которые еще не оформляли документов по продаже товаров. Данный запрос реализуется с помощью конструкции ЛЕВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ (листинг 2.22). Результат отбора показывает, что в этом случае в полученном списке данных представлены также менеджеры, у которых еще не зарегистрировано продаж (рис. 125).

Листинг 2.22. Запрос для извлечения информации о менеджерах

ВЫБРАТЬ НашиМенеджеры.Наименование КАК НашМенеджер,

Продажи.СуммаОборот КАК Сумма

ИЗ Справочник.Менеджеры КАК НашиМенеджеры

ЛЕВОЕ СОЕДИНЕНИЕ

РегистрНакопления.ПродажиПоФилиалам.Обороты КАК Продажи

ПО НашиМенеджеры.Наименование=Продажи.Менеджер.Наименование


Рис. 125. Левое внешнее соединение таблиц в запросе при отборе менеджеров

Правое внешнее соединение

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

Листинг 2.23. Запрос с правым соединением

ВЫБРАТЬ НашиМенеджеры.Наименование КАК НашМенеджер,

Продажи.Филиал КАК НашФилиал,

Продажи.СуммаОборот КАК Сумма

ИЗ РегистрНакопления.ПродажиПоФилиалам.Обороты КАК Продажи

ПРАВОЕ СОЕДИНЕНИЕ

Справочник.Менеджеры КАК НашиМенеджеры

ПО НашиМенеджеры.Наименование = Продажи.Менеджер.Наименование

Рис. 126. Пример использования правого внешнего соединения таблиц в запросе

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

Однако по замыслу задачи в указанный список необходимо включить также товары, по которым еще не было поступлений. Фактически о подобных товарах в регистре КоличествоТоваров записей нет. Поэтому для извлечения информации мы воспользуемся еще одной таблицей — справочником Товары. В листинге 2.24 показан текст запроса, в котором используется правое соединение таблиц, а результат его выполнения в режиме 1С:Предприятие продемонстрирован на рис. 127.

Листинг 2.24. Запрос для извлечения информации о наличии товаров

ВЫБРАТЬ Товары.Ссылка КАК НазваниеТовара,

КоличествоТоваров.КоличествоОстаток КАК Количество

ИЗ РегистрНакопления.КоличествоТоваров.Остатки КАК КоличествоТоваров

ПРАВОЕ СОЕДИНЕНИЕ

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

ПО Товары.Ссылка=КоличествоТоваров.Товар.Ссылка

УПОРЯДОЧИТЬ ПО Количество УБЫВ

Рис. 127. Формирование списка товаров с использованием правого внешнего соединения

Полное внешнее соединение

Конструкция ПОЛНОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ означает, что в результат запроса надо включить комбинации записей из обеих исходных таблиц, которые соответствуют указанному условию. Кроме того, в результат запроса включаются те записи из обоих источников, для которых не найдено соответствий.


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

Листинг 2.25. Запрос с использованием полного внешнего соединения таблиц

ВЫБРАТЬ РАЗЛИЧНЫЕ Продажа.Фирма.Наименование КАК ФирмаПокупатель,

Поступление.Фирма.Наименование КАК ФирмаПродавец

ИЗ Документ.ПродажаТоваров КАК Продажа

ПОЛНОЕ СОЕДИНЕНИЕ

Документ.ПоступлениеТоваров КАК Поступление

ПО Продажа.Фирма.Наименование=Поступление.Фирма.Наименование

Рис. 128. Пример отчета, полученного с использованием полного внешнего соединения таблиц в запросе

Функция ПРЕДСТАВЛЕНИЕ

Функция ПРЕДСТАВЛЕНИЕ предназначена для получения строкового представления значения произвольного типа. В качестве параметра функции может выступать выражение любого типа.

Рассмотрим пример с выводом дат из документов ПоступлениеТоваров и ПеремещениеСВыставки. Текст запроса для извлечения данной информации приведен в листинге 2.26.

Листинг 2.26. Запрос с функцией ПРЕДСТАВЛЕНИЕ

ВЫБРАТЬ ПРЕДСТАВЛЕНИЕ(Поступление.Дата) КАК ДатыПоступленияПеремещения

ИЗ Документ.ПоступлениеТоваров КАК Поступление

ОБЪЕДИНИТЬ

ВЫБРАТЬ ПРЕДСТАВЛЕНИЕ(Перемещение.Дата)

ИЗ Документ.ПеремещениеСВыставки КАК Перемещение

В рассматриваемой процедуре производится объединение двух запросов, которые выполняют извлечение дат документов ПоступлениеТоваров и извлечение дат документов ПеремещениеСВыставки.

Результат выполнения рассматриваемого запроса для отбора дат документов показан на рис. 129.

Рис. 129. Информация о датах из документов ПоступлениеТоваров и ПеремещениеСВыставки

Итоги

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


Глава 3 Разработка отчетов с использованием системы компоновки данных

При решении любых задач, связанных с количественным учетом, ключевым и одновременно итоговым результатом являются отчеты. Легче всего их стало составлять начиная с программного продукта 1С: Предприятие 8.1 благодаря системе компоновки данных.

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

Данная система предлагает новые возможности, недоступные построителю отчетов:

  • создание отчета без программирования
  • использование автоматически генерируемых форм просмотра и настройки отчета
  • настройка структуры отчета
  • совмещение в отчете нескольких таблиц

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

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

Отчеты по остаткам товаров

Теперь нам интересны остатки товаров в филиалах. Создадим как и раньше новый отчёт («Отчёт3_1») и совершим уже знакомые нам действия (в окне конструктора макета никаких изменений делать не требуется) до появления окна, в правой части которого присутствует кнопка «Конструктор запроса».

В соответствие с поставленной задачей рассмотрим составление перечня имеющихся на текущий момент товаров в наших филиалах. Для этого после щелчка на кнопке «Конструктор запроса» перейдем к разработке запроса с помощью визуальных средств. На рис. 130 представлено окно конструктора запроса, в котором присутствуют три раздела: