Практикум 6. Створення звітів
Звіт <strong>Виручка майстрів</strong> міститиме інформацію про те, яку виручку було отримано фірмою завдяки роботі кожного з майстрів, з деталізацією за всіма днями у вибраному періоді та розгортанням за клієнтами, обслуженими в кожен із днів. На прикладі цього звіту ми проілюструємо, як будувати багаторівневі групування в запиті та як обходити всі дати у вибраному періоді.Звіт Виручка майстрів. Звіт Перелік послуг. Звіт Рейтинг Клієнтів
Звіт Виручка майстрів
Звіт Виручка майстрів міститиме інформацію про те, яку виручку було отримано фірмою завдяки роботі кожного з майстрів, з деталізацією за всіма днями у вибраному періоді та розгортанням за клієнтами, обслуженими в кожен із днів. На прикладі цього звіту ми проілюструємо, як будувати багаторівневі групування в запиті та як обходити всі дати у вибраному періоді.
1. Створимо новий об'єкт конфігурації Звіт. Назвемо його ВиручкаМайстрів і запустимо конструктор основної схеми компонування даних.
2. Створимо Набір даних → запит і запустимо конструктор запиту.
3. Виберемо віртуальну таблицю регістру накопичення Продажі.Обороти.
4. Задамо один із параметрів цієї віртуальної таблиці → Періодичність. Для цього перейдемо в поле Таблиці і натиснемо кнопку Параметри віртуальної таблиці.

5. У вікні параметрів, що відкрилося, задамо значення параметра Періодичність → День.

6. Натиснемо ОК. Після цього виберемо з таблиці такі поля:
- ПродажіОбороти.Майстер;
- ПродажіОбороти.Період;
- ПродажіОбороти.Клієнт;
- ПродажіОбороти.ВиручкаОборот.
![Т аблицы В-И ПродажиО бороты ! .....— Период [+]••• 1— Номенклатура В' I Клиент Й , Мастер КоличествоО борот .....I. ......................................... СтоимостьО борот ВыручкаОборот Поля I.....I— ПродажиО бороты. Мастер .....- ПродажиО бороты. Пери](/img/materialy_praktikum_6_sozdanie_otchetov/172.png)
7. Тепер перейдемо на вкладку Об'єднання/Псевдоніми і задамо псевдонім Виручка для поля ПродажіОбороти.ВиручкаОборот.
8. На вкладці Групування визначимо, що групування проводитиметься за полями Майстер, Період і Клієнт, а значення поля ВиручкаОборот будуть підсумовуватися:
9. На вкладці Порядок визначимо, що результат запиту буде відсортовано за зростанням значення поля Період.
10. Натиснемо ОК.
Розглянемо текст запиту, сформований конструктором.

У частині опису запиту зверніть увагу, що для джерела даних, крім задання початку й закінчення періоду розрахунку підсумків, задано періодичність вибраних даних → День.
Саме завдяки цьому ми маємо можливість описати серед вибраних полів поле Період.
11. Тепер перейдемо до редагування схеми компонування даних. На вкладці Ресурси натиснемо >> і переконаємося, що конструктор вибрав єдиний наявний у нас ресурс → Виручка.

12. На вкладці Параметри виконаємо ті самі дії, що й під час створення попереднього звіту.
Для параметра ПочатокПеріоду задамо заголовок Дата початку. У полі Доступні типи задамо склад дати → Дата.
Для параметра КінецьПеріоду задамо відповідний вираз і в полі Обмеження доступності установимо прапорець обмеження доступності.
На завершення додамо ще один параметр → ДатаЗакінчення, установимо його тип як Дата, склад дати → Дата.
У результаті перелічених дій параметри компонування даних матимуть такий вигляд:

13. Тепер створимо структуру звіту. На вкладці Налаштування послідовно створимо два вкладені групування: верхнього рівня → за полем Майстер,
![Отчет ВыручкаМастеров: ОсновнаяСхемаКомпоновкиДанных Отчет Наборы данных Связи наборов данных Вычисляемые поля Ресурсы Параметры Макеты Вложенные схемы Настройки Тр] Выбор поля Настройки: Отчет Отче, П араметры данных В ы Группировка Поле: . .. V Тип: Без](/img/materialy_praktikum_6_sozdanie_otchetov/179.png)
вкладене в нього → за полем Період.

Потім додамо ще одне групування, вкладене в групування за полем Період, - детальні записи (без зазначення поля групування):
![ВЛЦ Отчет e-0111 Мастер B V]ej Период L 0 Детальные записи](/img/materialy_praktikum_6_sozdanie_otchetov/181.png)
14. Тепер, перебуваючи на рівні Глобального звіту, перейдемо на вкладку Вибрані поля і додамо до списку вибраних полів поля Клієнт і Виручка.

15. На завершення з рівня Глобального звіту перейдемо на вкладку Інші налаштування та змінимо такі параметри. Для параметра Розташування полів групувань установимо значення Окремо й лише в підсумках;

для параметра Розташування загальних підсумків по вертикалі задамо значення Початок і для параметра Заголовок задамо значення Виручка майстрів:

Запустимо 1С:Підприємство в режимі налагодження та подивимося на результат роботи звіту Виручка майстрів за період з 01.09.2008 до 07.09.2008.

На початку розділу ми говорили, що цей звіт має показувати дані з деталізацією за всіма днями у вибраному періоді. У нас же відображаються лише ті дні, для яких існують ненульові записи в таблиці регістру накопичення. Тому зараз ми змінимо налаштування звіту так, щоб до звіту потрапляла кожна дата з періоду, за який сформовано звіт.
Повернемося в режим конфігуратора та виконаємо тонше налаштування структури звіту. Досі всі налаштування структури, які ми виконували, стосувалися всього звіту загалом. Але система компонування даних дає змогу налаштовувати також і кожен елемент структури окремо.
1. У нашому випадку потрібно змінити налаштування групування Період. Щоб перейти до налаштувань саме цього групування, у полі структури встановимо курсор на це групування, а потім натиснемо кнопку Період на панелі команд.

2. У нижній частині форми відображатимуться налаштування, доступні лише для цього групування.
Перейдемо на вкладку Поля групування. Для поля Період установимо Тип доповнення → День.
![Отчет ВыручкаМастеров: ОсновнаяСхемаКомпоновкиДанных Наборы данных Связи наборо... Вычисляемые... Ресурсы Параметры Макеты Вложенные сх... Настройки • И Отчет ОЭЗ 7 Л Ё]..[у]сзз Мастер Ига=1В!ЕЗ Период і. у]Еш Детальные записи V И і Настройки: Отчет Период](/img/materialy_praktikum_6_sozdanie_otchetov/187.png)
Тим самим ми вкажемо, що для цього групування наявні записи з ненульовим значенням ресурсу доповнюватимуться записами для кожного з днів.
Після цього слід указати, у якому саме періоді виконуватиметься таке доповнення. У поля, розташовані рядком нижче, можна ввести дати початку й закінчення цього періоду. Але зазначення дат у явному вигляді навряд чи когось влаштує, оскільки користувач може побажати сформувати звіт за довільний період. І нам потрібно, щоб доповнення дат виконувалося не в деякому фіксованому періоді, а саме в тому періоді, який користувач вибрав для всього звіту.
3. Щоб забезпечити саме таку роботу звіту, увійдемо в режим редагування першого поля (наприклад, двічі клацнувши в ньому) і натиснемо кнопку очищення (Х). Після цього, натиснувши кнопку Т, ми зможемо вибрати тип даних, що відображаються в цьому полі. Виберемо Поле компонування даних. Натиснемо ОК.

4. Тепер натиснемо в полі введення кнопку вибору (…¦) і у вікні вибору поля, що відкрилося, позначимо параметр ПочатокПеріоду. ОК.

5. Для другого поля введення аналогічно вкажемо, що дата закінчення періоду буде отримана з параметра ДатаЗакінчення.

6. Запустимо 1С:Підприємство в режимі налагодження та виконаємо звіт Виручка майстрів за період з 03.09.2008 до 07.09.2008.

На прикладі цього звіту ми продемонстрували, як будувати багаторівневі групування та як установити в системі компонування обхід за всіма датами у вибраному періоді.
Звіт Перелік послуг
Звіт Перелік послуг міститиме інформацію про те, які послуги й за якою ціною надає фірма. На його прикладі ми ознайомимося з можливістю отримання останніх значень із періодичного регістру відомостей і виведення ієрархічних довідників.
1. Створимо новий об'єкт конфігурації Звіт з ім'ям ПерелікПослуг і запустимо конструктор схеми компонування даних.
2. Створимо новий Набір даних → запит і викличемо конструктор запиту.
3. Виберемо об'єктну (посилальну) таблицю довідника Номенклатура і віртуальну таблицю регістру відомостей Ціни.ЗрізОстанніх.
4. Щоб виключити неоднозначність імен у запиті, перейменуємо таблицю Номенклатура на ДовНоменклатура.
5. Викличемо діалог введення параметрів віртуальної таблиці ЦіниЗрізОстанніх і вкажемо, що період буде передано в параметрі ДатаЗвіту.

6. Потім виберемо з таблиць такі поля:
- ДовНоменклатура.Батько;
- ДовНоменклатура.Посилання;
- ЦіниЗрізОстанніх.Ціна.

7. Перейдемо на вкладку Зв'язки, скинемо прапорець Усі у таблиці регістру та встановимо його в таблиці довідника.
8. На вкладці Умови задамо умову вибору елементів довідника Номенклатура → вибрані елементи мають відповідати виду номенклатури, переданому в параметрі запиту ВидНоменклатури.
![]()
9. На вкладці Об'єднання/Псевдоніми укажемо, що поле Батько матиме псевдонім ГрупаПослуг, а поле Посилання → Послуга.

10. На вкладці Групування укажемо, що групування проводитиметься за полем ДовНоменклатура.Батько. Значення підсумовуваних полів задавати не будемо.
![]()
11. На цьому створення запиту завершено, ОК. Тепер розглянемо текст запиту, сформований конструктором.

Практично всі конструкції, використані в цьому запиті, нам уже відомі.
12. Перейдемо до редагування схеми компонування даних. На вкладці Ресурси натисканням кнопки >> виберемо єдиний доступний ресурс Ціна.
13. На вкладці Параметри задамо значення параметра ВидНоменклатури як Перелік.ВидиНоменклатури.Послуга. Крім цього знімемо обмеження доступності для параметра ДатаЗакінчення і в полі Доступні типи задамо склад дати → Дата. Для параметра Період, навпаки, установимо обмеження доступності.
![Отчет ПереченьУсяуг: ОсновнаяСхемаКомпоновкиДанных Наборы данных Связи наборов данных Вычисляемые поля Ресурсы] Параметры Макеты Вложенные схемы Настройки Имя Заголовок Доступные типы д... Д... Значение Выражение В к... Ог... Период Период Дата п 0 рщ ВиаН](/img/materialy_praktikum_6_sozdanie_otchetov/198.png)
14. Розпочнемо створення структури звіту. Перейдемо на вкладку Налаштування і створимо групування за полем ГрупаПослуг, указавши тип групування Ієрархія. Усередині цього групування створимо ще одне групування без зазначення поля групування. Воно міститиме детальні записи звіту.
![В- ]..у ex ГруппаУслуг Иерархия ' 'у] шз Детальные записи](/img/materialy_praktikum_6_sozdanie_otchetov/199.png)
15. Перейдемо на вкладку Вибрані поля і вкажемо, що до звіту виводитимуться поля Послуга і Ціна.

І на завершення налаштуємо зовнішній вигляд звіту на вкладці Інші налаштування. Оскільки наш звіт являтиме собою просто список надаваних послуг, у якому цікаві ціни на конкретні послуги, виводити значення ресурсу Ціна для кожного з групувань і для всього звіту загалом не має сенсу.
16. Щоб заборонити виведення загальних підсумків у всьому звіті, установимо параметр Розташування загальних підсумків по вертикалі у значення Ні.
Для параметра Розташування полів групувань укажемо значення Окремо й лише в підсумках (так наш звіт буде краще «читатися»).
17. Потім перейдемо до налаштувань конкретного групування → ГрупаПослуг. Для параметра Розташування підсумків цього групування вкажемо значення Ні.

18. Насамкінець задамо заголовок звіту → Перелік послуг.
19. Запустимо 1С:Підприємство в режимі налагодження та передусім відкриємо періодичний регістр Ціни. Додамо до нього ще одне значення для послуги Діагностика: нова ціна послуги на 15.09.2008 → 350. Це дасть нам змогу протестувати звіт.

21. Тепер виконаємо звіт Перелік послуг станом на 01.09.2008.

22. Наш звіт правильно відображає ціну послуги Діагностика на 31.08.2008 → 200 руб.
Ще раз виконаємо звіт, але тепер уже на іншу дату → 15.09.2008.

Як бачите, показано нову ціну послуги Діагностика → 350 руб.
Таким чином, на прикладі цього звіту ми показали, як система компонування даних отримує останні значення з періодичного регістру відомостей і як вивести групування за ієрархією довідника.
Звіт Рейтинг Клієнтів
Звіт Рейтинг Клієнтів показуватиме, яким є дохід від надання послуг кожному з клієнтів за весь час роботи фірми. На його прикладі ми продемонструємо можливість використання діаграми для відображення результату запиту.
1. Створимо в конфігураторі новий об'єкт конфігурації з ім'ям Рейтинг клієнтів і відкриємо його основну схему компонування даних.
2. Створимо Набір даних → запит, викличемо конструктор запиту та виберемо віртуальну таблицю регістру накопичення Продажі.Обороти і з неї одне поле → ПродажіОбороти.Клієнт.
3. Потім додамо нове поле та за допомогою побудовника виразів (редактор довільного виразу поля) визначимо його як різницю між виручкою та вартістю:

4. У результаті список вибраних полів матиме такий вигляд:

5. На вкладці Об'єднання/Псевдоніми укажемо, що обчислюване поле матиме псевдонім Дохід:

6.На вкладці Порядок укажемо, що рядки результату потрібно упорядковувати за спаданням значення поля Дохід.
7. Натиснемо ОК і подивимося, який текст сформував конструктор запиту. Порівняно з попередніми звітами текст запиту досить простий. Єдиним цікавим місцем, на яке слід звернути увагу, є поле Дохід, що є результатом обчислення виразу:

8. Тепер додамо поле Дохід до ресурсів схеми компонування:

9. Перейдемо на вкладку Налаштування для того, щоб створити структуру звіту.
На відміну від усіх попередніх звітів, структура яких містила групування, цього разу додамо до структури звіту Діаграму:

10. До точок діаграми додамо групування за полем Клієнт. Серії діаграми залишимо без змін.

11. Тепер перейдемо на вкладку Вибрані поля і виберемо поле Дохід для виведення до звіту. Структура звіту має набути такого вигляду:

12. На вкладці Інші налаштування задамо заголовок звіту Рейтинг клієнтів, а також виберемо тип діаграми → Кругова об'ємна.

13. Запустимо 1С:Підприємство в режимі налагодження та відкриємо звіт Рейтинг клієнтів. Зверніть увагу, що при наведенні курсора на сектор діаграми з'являється підказка.

14. Відкриємо налаштування звіту та змінимо тип діаграми на Вимірювальна. Заново сформуємо звіт.

Таким чином, ми продемонстрували, як можна використовувати різні види діаграм для візуалізації даних звіту.


