Добавлен: 31.03.2023
Просмотров: 920
Скачиваний: 13
- База данных
- Таблицы
- Поля
Рис. 130. Окно конструктора запроса
В разделе «База данных» представлены имеющиеся таблицы, в которых хранятся данные. На основании информации, содержащейся в этих таблицах, и строятся разнообразные отчеты.
В раскрытой ветке РегистрыНакопления, кроме созданных нами регистров КоличествоТоваров и ПродажиПоФилиалам, мы видим еще несколько виртуальных таблиц (сформированные системой), связанных с данными регистрами.
Нас в данный момент интересуют остатки товаров по результатам поступления, продажи и перемещений с выставки (на выставку), поэтому перенесем в раздел Таблицы элемент КоличествоТоваров Остатки. После этого для запроса необходимо выбрать используемые в нем поля и перенести их в раздел «Поля» (рис. 131).
Рис. 131. Отбор полей для запроса по остаткам товаро
Окно конструктора запроса имеет ряд вкладок, позволяющих формировать необходимые указания в запросе. В данном случае зададим на вкладке «Порядок» упорядочивание по количеству товаров в убывающем порядке (рис. 132), после чего щелкнем на кнопке «OK». В результате происходит формирование запроса, текст которого приведен в листинге 3.1.
Рис. 132. Упорядочивание в запросе
Листинг 3.1. Запрос для извлечения информации по остаткам товаров
ВЫБРАТЬ
КоличествоТоваровОстатки.Товар,
КоличествоТоваровОстатки.Филиал,
КоличествоТоваровОстатки.КоличествоОстаток КАК КоличествоОстаток
ИЗ РегистрНакопления.КоличествоТоваров.Остатки КАК КоличествоТоваровОстатки
УПОРЯДОЧИТЬ ПО КоличествоОстаток УБЫВ
В результате проделанных действий на вкладке «Наборы данных» схемы компоновки данных происходят изменения, и на рис. 133 показаны поля, которые в данном случае заполняются автоматически.
Рис. 133. Заполнение полей в схеме компоновки данных
Первый столбец с информацией называется «Поле»; в нем отражается имя поля набора данных, для которого формируется описание. Учитывая, что для получения набора данных мы воспользовались запросом, содержание поля определяется именем поля в тексте запроса. Информация в столбце «Поле» не допускает редактирования.
Поле «Путь» содержит имя поля набора данных, под которым можно обращаться к полю в других разделах конструктора схемы компоновки данных. Значение этого поля можно устанавливать самостоятельно.
Поле «Роль» показывает, каким образом поле будет использовано в дальнейшем в системе компоновки данных. Информация о том, что поле используется для измерения, требуется при расчете итогов.
Получим информацию о количестве товаров в филиалах (сколько и каких товаров находится в каждом из филиалов). Для этого в окне схемы компоновки данных перейдем на вкладку «Настройки» (рис. 134), где необходимо задать параметры отчета, применяемые по умолчанию. Здесь следует щелкнуть правой кнопкой на элементе «Отчет» и в появившемся контекстном меню выбрать вариант «Новая группировка».
Рис. 134. Вкладка «Настройки» окна конструктора схемы компоновки
Благодаря группировке в отчете можно собрать не только сгруппированную определенным образом информацию, но и детальные записи, сформированные системой в результате обработки текста запроса. И если мы хотим обеспечить вывод в отчете детальных записей, то в окне «Группировка» следует оставить пустой строку «Поле» (рис. 135).
Рис. 135. Окно для определения группировки
Теперь на дополнительной вкладке «Выбранные поля», где в число выбранных полей следует добавить три поля: Товар, Филиал, КоличествоТоваров. Добавить поле в раздел «Поле» проще всего двойным щелчком на элементе в разделе «Доступные поля». Также элемент можно перетащить из раздела «Доступные поля» мышью. Еще один вариант — щелкнуть на кнопке Добавить (она находится в пиктографическом меню, расположенном в правой части окна). И не забудем отметить флажком «Детальный отчёт».
Осталось отнести созданный отчет к одной из подсистем (для отчетов данной главы создадим подсистему с именем ОтчетыПоГлаве3). После выполнения этих визуальных действий можно посмотреть, как выглядит разработанный отчет в режиме 1С:Предприятие (рис. 136)
Рис. 136. Отчет по остаткам товаров.
Использование системы компоновки данных позволяет расширить возможности формирования отчетов без внесения изменений в конфигурацию. Рассмотрим, как это выглядит на практике. Будем считать, что в нашем отчете необходимо просмотреть сводную информацию, а именно вывести данные о суммарном количестве каждого товара на всех филиалах. Для этого щелкнем на кнопке «Еще» (см. рис. 136), после чего раскроется новое меню, где следует выбрать пункт «Изменить вариант». Далее в очередном открывшемся окне необходимо обратиться к вкладке «Поля» и в списке выбранных полей сбросить флажок для поля «Филиал» (рис. 137).
Рис. 137. Настройка отчета для получения сводной информации по товарам
Далее следует щелкнуть на кнопке «Завершить редактирование» и сформировать обычным способом уже новую версию отчета (рис. 138).
Рис. 138. Сводная информация по остаткам товаров
Сформируем в одном отчете вместе с детализированной информацией еще и итоговых сведений по каждому товару. При этом будем считать, что выводимую информацию необходимо отсортировать по товарам, а детализированные данные еще дополнительно упорядочить по филиалам.
Вернемся в окно конструктора запросов и немного изменим вариант запроса (рис. 139).
Рис. 139. Окно конструктора запросов
На вкладке «Объединения/Псевдонимы» конструктора запроса установим псевдонимы для двух полей (рис. 140).
Рис. 140. Вкладка «Объединения/Псевдонимы» в окне «конструктора запросов»
Далее на вкладке «Порядок» следует задать параметры для последовательной сортировки сначала по товарам (возр.), а затем по филиалам (возр.). После этого щелчком на кнопке OK завершим работу с конструктором запроса. В результате в окне схемы компоновки перед нами появится текст запроса (листинг 3.2).
Листинг 3.2. Запрос для извлечения информации по товарам с сортировкой
ВЫБРАТЬ
КоличествоТоваровОстатки.Товар.Наименование КАК Товар,
КоличествоТоваровОстатки.Филиал.Наименование КАК Филиал,
КоличествоТоваровОстатки.КоличествоОстаток
ИЗ РегистрНакопления.КоличествоТоваров.Остатки КАК КоличествоТоваровОстатки
УПОРЯДОЧИТЬ ПО Товар, Филиал
В окне конструктора схемы компоновки данных необходимо перейти на вкладку «Ресурсы» и добавить ресурс «КоличествоОстаток». Это можно сделать двойным щелчком на поле в разделе Доступные поля или перетащить его из раздела Доступные поля мышью, или щелкнуть на предназначенной для этого кнопке.
В столбце «Поле» указывается внутреннее имя поля набора данных, а в столбце «Выражение» — выражение, по которому будет определяться значение ресурса. В качестве выражения можно выбрать одну из агрегатных функций, встречавшихся нам во второй главе книги. Значение в столбце «Рассчитывать по…» показывает, что данное поле ресурса применимо только для конкретной группировки.
Перейдем теперь на вкладку «Настройки», где следует выбрать необходимые поля для отчета и добавить две группировки:
- Детальные записи
- Товар
Часто требуется просмотреть информацию по товарам на более раннюю дату. Для этого следует использовать параметр «Период», который автоматически включается в данный отчет системой на основании таблицы «КоличествоТоваров Остатки». Нам надо только дать пользователю возможность выбрать этот параметр в форме отчета.
Модифицируем уже существующий отчёт («Отчёт3_2»). Для включения параметра «Период» перейдем на дополнительную вкладку «Параметры» вкладки «Настройки», где воспользуемся соответствующей кнопкой (последняя в вертикальном пиктографическом меню) для задания требуемых параметров. В открывшемся в результате новом окне установим флажок Включать в пользовательские настройки (рис. 141).
Рис. 141. Окно для выполнения пользовательских настроек
И можно перейти в режим 1С:Предприятие для открытия формы отчета. Теперь перед заполнением отчета следует предварительно задать значение параметра «Период» (рис. 142).
Рис. 142. Включение параметра Период в отчет по остаткам товаров
Отчет по документам ПоступлениеТоваров
Разработаем отчет, который будет включать информацию по поступлениям товаров. Для этого требуется сформировать перечень документов ПоступлениеТоваров, имеющихся в базе данных. Начнём с уже привычных манипуляций – создание «Отчёт3_3» и перейдём к окну «Конструктор запросов». Нам потребуется таблица «ПоступлениеТоваров», из которой для запроса необходимо отобрать следующие поля:
- Ссылка
- Фирма
- Филиал
Сформируем псевдоним «ДокументПоступление» для поля «Ссылка», а на вкладке «Порядок» зададим упорядочивание документов по убыванию. Задавать для запроса другие параметры не требуется, и щелчок на кнопке «OK» приводит к формированию текста запроса (листинг 3.3).
Листинг 3.3. Текст запроса для извлечения информации о поступлениях товаров
ВЫБРАТЬ
ПоступлениеТоваров.Фирма,
ПоступлениеТоваров.Филиал,
ПоступлениеТоваров.Ссылка КАК ДокументПоступление
ИЗ Документ.ПоступлениеТоваров КАК ПоступлениеТоваров
УПОРЯДОЧИТЬ ПО ДокументПоступление УБЫВ
В запросе используется объектная таблица Документ.ПоступлениеТоваров. После такого автоматического получения текста запроса перейдем на вкладку «Настройки». Укажем, что в группировке будут выводиться детальные записи из информационной базы, и перенесем «ДокументПоступление», «Фирма» и «Филиал» в «Выбранные поля».
Далее осталось перейти в режим 1С:Предприятие и сформировать отчет по имеющимся документам ПоступленияТоваров в информационной базе (рис. 143).
Рис. 143. Доступ к документу из отчета по сведениям о поступлении товаров
Важно заметить, что при работе с формой данного отчета мы можем открыть необходимый документ, а также выполнить ряд других действий, которые нам предоставляет система компоновки данных.
Отчет по работе филиалов
Рассмотрим создание отчета, который позволит получить информацию об уровне продаж товаров в наших филиалах. Начнем разработку нового объекта конфигурации — отчета под именем «Отчет3_4» и используем конструктор запроса, в окне которого выберем две таблицы:
- объектную таблицу справочника «Филиалы»
- виртуальную таблицу ПродажиПоФилиалам.Обороты
Из данных таблиц в раздел Поля перенесем два поля:
- Филиалы.Ссылка
- ПродажиПоФилиаламОбороты.СуммаОборот
В запросе мы использовали две таблицы, которые необходимо связать. Для начала на вкладке «Связи» следует убедиться в установке необходимой связи между двумя таблицами (рис. 144).
Рис. 144. Установка связей между таблицами в запросе
Значение измерения «Филиал» виртуальной таблицы должно быть равно ссылке на элемент справочника «Филиалы». При этом обязательно требуется проверить, что у таблицы справочника установлен флажок «Все». Этим элементам ставится в соответствие значение оборота по данному филиалу из виртуальной таблицы регистра. Таким образом, в результате выполнения запроса из базы данных извлекаются все филиалы, а для ряда их (в которых были продажи) указывается значение суммы оборота продаж.
Перейдем на вкладку «Объединения/Псевдонимы», где установим псевдоним «НашФилиал» вместо сочетания «Филиалы.Ссылка». Новое словосочетание намного информативнее для пользователя. На вкладке «Порядо»к укажем, что результат должен быть отсортирован по значению поля «СуммаОборот» в порядке убывания. После этого щелкнем на кнопке «OK» и получим текст запроса (листинг 3.4).
Листинг 3.4. Текст запроса для формирования отчета по работе филиалов
ВЫБРАТЬ
Филиалы.Ссылка КАК НашФилиал,
ПродажиПоФилиаламОбороты.СуммаОборот КАК СуммаОборот
ИЗ Справочник.Филиалы КАК Филиалы
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиПоФилиалам.Обороты КАК