Похожие презентации:
Занятие_№9_Виртуальные_таблицы__вложенные_запросы
1.
Виртуальные таблицы,вложенные запросы
2.
План занятия1
2
3
4
Применение программирования К СКД
Получение данных из регистров
Виртуальные таблицы
Параметры виртуальных таблиц
3.
Применение программирования к СКД| Задача. Необходимо вывести отчет вида:
Транспортное средство
Начало рейса
Окончание рейса
Время в пути
Автобус 1
01.12.2020 06:30:00 01.12.2020 15:40:00
09ч.10м.
Автобус 2
01.12.2020 09:30:00 01.12.2020 18:20:00
08ч.50м.
Автобус 3
02.12.2020 18:30:00 02.12.2020 21:40:00
03ч.10м.
Автобус 4
02.12.2020 20:00:00 02.12.2020 23:40:00
03ч.40м.
Автобус 5
03.12.2020 06:00:00 03.12.2020 17:10:00
11ч.10м.
4.
Применение программирования к СКД| Дополним нашу систему необходимыми объектами учета:
| Справочник «Транспортные средства»
| Документ «Лист учета времени ТС»
5.
Применение программирования к СКД| Создадим отчет “Учет времени ТС”
6.
Применение программирования к СКД| Создадим отчет “Учет времени ТС”
7.
Применение программирования к СКД| Создадим отчет “Учет времени ТС”
8.
Применение программирования к СКД| Возьмем данные из табличной части нашего нового документа
Важно! Данный пример сделан исключительно для ознакомления с
конструктором отчет. Все отчеты, всегда, строятся на регистрах. Если в
ДЗ, при построении отчета, вы будете использовать документы вместо
регистров, это будет считаться ошибкой.
9.
Применение программирования к СКД| Настроим отчет
10.
Применение программирования к СКД| Запустим пользовательский режим и посмотрим промежуточный
результат
11.
Применение программирования к СКД| Запустим пользовательский режим и посмотрим промежуточный
результат
12.
Применение программирования к СКД| Чтобы добавить свое поле, необходимо перейти на закладку
«Вычисляемые поля»
13.
Применение программирования к СКД| Добавим свое поле
14.
Применение программирования к СКД| Далее необходимо заполнить поле Выражение.
| Заполнить его можно серверной функцией из общего модуля
15.
Применение программирования к СКД| Создадим такую функцию. Добавим общий модуль и функцию:
16.
Применение программирования к СКД| Обратимся к функции в выражении:
17.
Применение программирования к СКД| Выведем поле в отчет:
18.
Применение программирования к СКД| Протестируем:
19.
Задача| Вывести отчета вида:
Сотрудник
Задача
Время начала
Время окончания
Потраченное время
Иванов
Написание отчета
01.12.2020 12:00:00
01.12.2020 17:00:00
5ч. 00м.
Петров
Написание обработки
01.12.2020 10:00:00
01.12.2020 18:30:00
8ч. 30м.
20.
Получение информации из БД| Чтение остатков из регистров.
| Выведем отчет по данным регистра накопления Взаиморасчеты.
21.
Получение информации из БД| У РН вида остатки есть 3 виртуальные таблицы.
| Виртуальная таблица остатков не хранится в базе данных (как
физическая), а строится в момент обращения к ней.
| Виртуальная таблица может строиться по-разному, в зависимости от
переданных неё параметров. Например: отборы и уровень
детализации.
22.
Получение информации из БД| При работе с регистрами, в 98% случаев нужно использовать
виртуальные таблицы.
| Виртуальные таблицы являются в каком-то смысле интерфейсом
работы с регистром. Т.е. виртуальная таблица остатков будет
возвращать остатки, а оборотов - обороты.
| Получить остатки из физической таблицы возможно, но гораздо
сложнее, что очень часто приводит к ошибкам.
| Кроме того, виртуальные таблицы оптимизированы для получения
остатков и оборотов с помощью специальных табл гов и таблиц
агрегат. (о них - позже)
23.
Получение информации из БД| Но виртуальные таблицы оптимизированы не только для получения
данных остатков или оборотов, но и также для получения данных по
определенным параметрам.
| Отличие накладываемых условий на виртуальную таблицу в секции
ГДЕ и накладываемых условий через параметры заключается в том,
что в первом случае СУБД возьмёт все записи таблицы и только потом
наложит на них ограничения, в то время как во втором СУБД сразу же
будет получать только те записи таблицы, которые удовлетворяют
условиям параметров. Второй вариант куда более предпочтительнее
при работе с большим объёмом.
24.
Получение информации из БД| Также, при работе с запросом можно устанавливать условия отбора во
вкладке «Компоновка данных». Условия там задаются строками и являются
необязательными к выполнению.
25.
Получение информации из БД| В данной задаче нас интересуют остатки:
26.
Получение информации из БД| Поле Долг сделаем ресурсом (Долг это переименованное поле
СуммаОстаток):
27.
Получение информации из БД| Зададим настройки отчета
28.
Получение информации из БД| Зададим настройки отчета
29.
Получение информации из БД| Добавим отбор по контрагенту через настройки отчета:
30.
Получение информации из БД| Включим этот отбор в пользовательские настройки:
31.
Получение информации из БД| Посмотрим в пользовательском режиме:
32.
Получение информации из БД| Добавим параметр отчета Период.
У виртуальных таблиц РН есть параметры:
33.
Получение информации из БД| Система уже знает о параметре период, поэтому мы его видим в
настройках отчета, включим его в пользовательский режим:
34.
Получение информации из БД| Приведем наш параметр к концу дня:
35.
Получение информации из БД| Особенность системы 1С в регистрах накопления вида остатки
Система получает данные на конкретный момент времени t, но все
записи с этим моментом времени для нее находятся во времени
позже, поэтому нам необходимо прибавить секунду к нашему периоду
12.11.2020 23:59:59
Остаток находится тут (между секундами)
13.11.2020 0:00:00
36.
Получение информации из БД| Особенность системы 1С в регистрах накопления вида остатки
Добавление секунды:
37.
Задание| Создадим отчет по продажам, используя данные РН Продажи.
| РН Продажи оборотный, у него есть два параметра виртуальной
таблицы «Начало периода» и «Конец периода».
| У РН вида обороты нет особенности как у РН вида остатки,
прибавлять секунду для учета не нужно.
38.
Получение информации из БД| Выведем данные из регистра сведений ЦеныТоваров. Создадим
отчет Прайс
39.
Получение информации из БД| Выведем данные из регистра сведений ЦеныТоваров. Создадим
отчет Прайс
40.
Получение информации из БД| Для периодических регистров сведений доступны две виртуальные
таблицы: СрезПервых и СрезПоследних. СрезПоследних используется
намного чаще, чем СрезПервых
41.
Получение информации из БД| Срез последних позволяет получить последнюю запись регистра
сведений на указанную дату в разрезе измерений. Выберем данные
для отчета:
42.
Получение информации из БД| У виртуальной таблицы РС Срез последних/первых так же есть
параметры виртуальной таблицы, и среди них есть период:
43.
Получение информации из БД| Вот так выглядит наш запрос к базе:
44.
Получение информации из БД| Зададим настройки отчета:
45.
Получение информации из БД| Зададим настройки отчета:
46.
Получение информации из БД| Зададим настройки отчета:
47.
Получение информации из БД| Посмотрим пользовательский режим:
48.
Получение информации из БД| Оформить отчет можно в Настройках отчета на закладке Другие
настройки:
49.
Получение информации из БД| Оформить отчет можно в Настройках отчета на закладке Другие
настройки:
50.
Получение информации из БД| Вложенный запрос (подзапрос)
| Это запрос, который вложен в другой запрос.
| Синтаксически выглядит, как запрос, заключенный в круглые скобки.
Ему присваивается псевдоним.
| Как правило, используется для получения отборов, группировок и
агрегатных функций с последующим соединением в запросе
верхнего уровня, также в операторах «В», «ИЗ», «ГДЕ» и других.
51.
Получение информации из БД| Задача.
| Получить продажи только по тем контрагентам, которые есть в
выбранном пользователем документе
52.
Получение информации из БД| Создадим новый отчет:
53.
Получение информации из БД| Создадим новый отчет:
54.
Получение информации из БД| Переходим в параметры виртуальной таблиц ПродажиОбороты
55.
Получение информации из БД| Как мы видим, условие можно наложить только на Измерение:
56.
Получение информации из БД| Чтобы описать конструкцию выбора из какого-то списка, мы
используем «В»
57.
Получение информации из БД| Теперь перейдем к созданию вложенного запроса, для этого
выделим символ пробела, нажмем правой кнопкой мыши и перейдем
в конструктор запроса:
58.
Получение информации из БД| Создадим новый запрос:
59.
Получение информации из БД| Создадим новый запрос:
60.
Получение информации из БД| Создадим новый запрос:
61.
Получение информации из БД| Создадим новый запрос:
62.
Получение информации из БД| Настроим ресурсы:
63.
Получение информации из БД| Настроим отчет:
64.
Получение информации из БД| Настроим отчет:
65.
Получение информации из БД| Настроим отчет:
66.
Получение информации из БД| Проверим отчет:
67.
Получение информации из БД| ВАЖНО
| Все условия, которые мы хотим наложить на измерение – мы
указываем в параметрах виртуальной таблицы (!)
68.
Задача| БД «На уроке»
Вывести данные о взаиморасчетах с сотрудниками на дату
Вывести данные о начисленной за период зарплате сотрудника,
используя стандартный период
| БД «Ресторан»
Создать отчет меню с использованием данных из регистра сведений,
оформить меню