Програмне наповнення налаштувань скд »або« як зробити звіт на скд з зрозумілим для користувача


У нас тут своя атмосфера.

Група: Засновник
Повідомлень: 12342
З: Київ
Подякували: 3659 раз
Рейтинг: 2797.9

Програмне наповнення налаштувань скд »або« як зробити звіт на скд з зрозумілим для користувача

Приклад програмного заповнення налаштувань побудую на основі звіту з обігового регістром накопичення Продажі з вимірами: Контрагент, Номенклатура і ресурсами: Кількість і Сума.

Створення звіту і настройка схеми компонування даних.

Отже. Створюємо новий звіт. Відкриваємо схему компоновки даних і додаємо новий набір даних запит. У вікні запиту пишемо наступний запит:

На закладці «Ресурси» вказуємо в якості ресурсів поля КолічествоОборот і СуммаОборот.

На закладці «Параметри» додамо новий параметр «Період» типу СтандартнийПеріод. Для параметра «НачалоПеріода» в якості вираження зазначимо таке значення: Період.ДатаНачала, для параметра «КонецПеріода» - Період.ДатаОкончанія. Таким чином, ми позбавимо себе від приведення дати закінчення до кінця дня і установки кожного параметра окремо. Налаштування структури звіту ми не робимо. Вона буде сформована програмно.

На цьому настройка схеми компонування закінчена. Переходимо до налаштування інтерфейсу.

Налаштування призначеного для користувача інтерфейсу.

Спочатку створимо реквізити звіту. Вони знадобляться нам при створенні інтерфейсу і подальшої програмної обробці зазначених користувачем налаштувань. Додаємо реквізит Період - тип СтандартнийПеріод, Кількість - тип Булево, Сума - тип Булево. Дані реквізити будуть відповідати за переданий параметр Період і за виведення ресурсів звіту КолічествоОборот і СуммаОборот відповідно. Також нам потрібно таблична частина Угруповання з реквізитами Поле - тип Рядок і ТіпГруппіровкі - тип Рядок. Таблична частина буде відповідати за вибрані угруповання при формуванні звіту.

Необхідні реквізити створені, тепер створюємо форму звіту.

На формі маємо наступні елементи:
  • Поля введення для вказівки періоду: ДатаНачала - дані Період.ДатаНачала, Датаокончанія - Період.ДатаОкончанія, Період - дані Період і кнопку КнопкаВибораПеріода (для кнопки потрібно призначити обробник, що відкриває діалог вказівки періоду.
  • Панель з трьома сторінками. Першу сторінку назвемо Відбір і розташуємо на ній табличное поле з даними КомпоновщікНастроек.Настройкі.Отбор. Другу сторінку назвемо УсловноеОформленіе і розташуємо на ній табличное поле з даними КомпоновщікНастроек.Настройкі.УсловноеОформленіе. Третю сторінку назвемо Сортування і розташуємо на ній табличное поле з даними КомпоновщікНастроек.Настройкі.Порядок.
  • Табличне поле Угруповання, пов'язане з табличній частиною звіту «Угруповання», і додаємо командну панель із зазначенням в якості джерела дій табличного поля «Угруповання». На командну панель додаємо кнопки «Додати», «Видалити», «Перемістити вгору», «Вниз».
  • 2 прапорця ВиводітьКолічество і ВиводітьСумму, пов'язані з реквізитами звіту Кількість і Сума відповідно.
  • Поле табличного документа Результат, автоматично створене при створенні форми, залишаємо без зміни.

На цьому створення призначеного для користувача інтерфейсу завершено. Переходимо до найцікавішого - програмної частини.

Програмна робота зі схемою компонування даних.

В першу чергу, необхідно описати які угруповання будуть доступні в нашому звіті. Для цього в модулі об'єкта створимо експортні змінні СпісокДоступнихПолейГруппіровкі і СпісокДоступнихТіповГруппіровкі. У тілі основної програми заповнимо їх списками значень:

При відкритті форми заповнимо угруповання значеннями за замовчуванням:

Встановимо доступні списки вибору для полів угруповань:

Також нам необхідно визначити в модулі об'єкта обробник ПріКомпоновкеРезультата, в якому будемо завантажувати наші настройки в схему компоновки даних.

Далі, встановлюємо значення параметрів і завантажуємо заповнені настройки

В алгоритмі додавання ресурсів в схему компоновки використовувалася функція НайтіПолеКомпоновкі. Ця функція визначає, чи є додається поле в обраних полях схеми чи ні. Якщо вже є, то додавати поле не потрібно.

Готово. Налаштування схеми компонування даних заповнені, і звіт може бути сформований.

Для того щоб при обробці розшифровки поля відбору та угруповань заповнилися відповідно до обраного полем потрібно самостійно описати обробник розшифровки. Для цього створимо булевский реквізит звіту ЕтоРасшіфровка. Реквізит буде показувати, формуємо ми простий звіт або розшифровуємо. Для табличного поля Результат створюємо обробник РезультатОбработкаРасшіфровкі. У створеному обработчике пишемо:

А в обробнику ПріКомпоновкеРезультата модуля об'єкта вказуємо, що заповнювати настройки угруповань потрібно тільки в тому випадку, якщо це не розшифровка. Таким чином, обробник ПріКомпоновкеРезультата набирає вигляду:

Створено звіт, який не потребує заходити в налаштування компонування даних, перемикати вкладки і розбиратися в настройках структури звіту. Всі необхідні настройки користувач бачить на формі звіту. При необхідності можна розширити функціонал. Наприклад, зробити збереження обраних користувачем налаштувань, приховувати настройки, якщо користувачеві потрібно завжди один варіант і тд.

Також при бажанні можна зробити звіт більш універсальним. Наприклад, заповнювати список полів угруповань і настройки за замовчуванням з СКД, створити табличну частину параметри і заповнювати її параметрами, перерахованими в макеті компонування даних. Таким чином, вийде якийсь шаблон звіту, на основі якого можна буде легко робити інші звіти, змінюючи тільки запит, вказівку ресурсів і список параметрів.

Повідомлення відредагував Vofka - 03.10.13, 13:16

Послуги 1С програміста

Схожі статті