Навчальні статті. Звіти СКД в BAS

Ця стаття була оновлена 31 Травня 2022, Вт
Зміст
  1. Звіти за допомогою Системи Компоновки Даних (СКД)
  2. Реалізації завдання: порівняння залишків продуктів у двох різних основах.
  3. Об'єкт
  4. Приклад завдання
  5. Налаштування СКД
  6. Обробник з'єднання
  7. Зв'язок параметрів СКД з елементами форми
  8. Зазначення періодів в віртуальних таблицях в системі компонування даних
  9. Конструктор запиту СКД

СКД - набор данных. Пример

Звіти за допомогою Системи Компоновки Даних (СКД)

Вітаємо читачів сайту. Сьогодні ми продовжимо вивчення звітів BAS і перейдемо до більш складним типам звітів створених на СКД (Система компоновки даних).

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

Давайте додамо в нашу конфігурацію звіт відображає дані за розрахунками логістики.

Назвемо його: фсОтчетОРасчетахПоЛогистике.

Отчеты на СКД

І відразу заходимо в Схему компонування даних. Додаємо новий набір даних. У вікні, натискаємо «Готово».

Далі створюємо новий набір даних «Запрос»

Отчеты на СКД

І заходимо в конструктор запиту.

Отчеты на СКД

У запиті звернемося до нашого раніше створеному регістром накопичення «фсРасчетыПоЛогистике». Додаємо поля в запит.

Отчеты на СКД

Після цього переходимо в закладку умови і додамо 2 параметра, що дозволяють встановлювати період, за який ми хочемо отримати дані в звіті це «ДатаНачала» і «ДатаОкончания».

Отчеты на СКД

Закриваємо конструктор запиту і переходимо до налаштування виводу звіту. Йдемо на вкладку «Параметри». Після додавання параметрів в конструкторі запиту, тут автоматично додаються ці параметри. Нам потрібно додати ще один параметр для того, щоб користувач міг вибрати період звіту на формі. І так додаємо параметр:

  • Період. Тип - Стандартний період.

Тепер трохи доопрацюємо наші раніше створені параметри. В поле вираз додати значення:

  • Для «ДатаНачала» додати вираз &Период.ДатаНачала;
  • Для «ДатаОкончания» додати відповідно &Период.ДатаОкончания.

В результаті у нас повинна вийти ось така картина:

Отчеты на СКД 

Обов'язково змініть галочки користувальницької доступності.

Для того щоб наш звіт автоматично міг вважати підсумки - перейдемо в ятати ресурси і призначимо поля, які будуть розраховуватися.

Отчеты на СКД 

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

Отчеты на СКД

На першій сторінці майстра вкажемо, які поля виводити.

Отчеты на СКД

На другій сторінці задамо групування (по ним, можливо, буде згортання)

Отчеты на СКД

А на третій сторінці можна задати упорядкування.

Отчеты на СКД 

Все, налаштування угруповання завершені. Тепер закінчимо настройку наших параметрів.

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

Отчеты на СКД

І на вкладці Вибрані поля, відповідно вибираємо поля, за якими ми хочемо бачити інформацію в звіті.

Отчеты на СКД

Решту вкладок поки не будемо чіпати. Тепер, для того, щоб ми могли вибирати період, створимо форму звіту, і на форму додамо настройки компонування даних.

Як додавати форми, ми вже знаємо, залишилося тільки додати на форму табличное поле, дамо йому ім'я НастройкиОтчета і в поле даних вкажемо - КомпоновщикНастроек.Настройки.ПараметрыДанных.

Отчеты на СКД

Ось і все, звіт готовий.

Давайте тепер додамо ще один відбір по водієві, так само, як ми робили раніше з менеджером. Через конструкцію Выбор Когда. Повернемося в конструктор запиту і додамо умову:

Отчеты на СКД

Тепер перейдемо на закладку «Параметри» і знімемо галочку «Обмеження користувальницької доступності» і встановимо галочку «Включати в користувальницькі поля»

Отчеты на СКД

Перейдемо на закладку «Налаштування» в закладку «Параметри». Зазначимо, що за замовчуванням параметр водій дорівнює порожньому посиланню.

Отчеты на СКД

Ось і все, відбір готовий.

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

Отчеты на СКД

Якщо цього не зробити, ваш параметр не буде доступний у відборах на формі.

Давайте пройдемося по вкладках основної закладки «Налаштування»

Отчеты на СКД

Выбранные поля – тут ми вказуємо, які поля потраплять в звіт. Це аналог першої сторінки майстра налаштувань.

Отбор - тут можна задати специфічний відбір, який буде доступний користувачеві. У розрізі нашого звіту це може бути сума більше 60, що означає, що таку суму можуть отримувати тільки старші водії, так ось, щоб користувач міг їх швидко вибрати, можемо додати такий відбір.

Отчеты на СКД

Сортировка. Як зрозуміло з назви, ця вкладка потрібна нам для упорядкування даних в звіті. Поле для сортування можна вказувати будь-який з обраних полів в звіті.

Условное оформление. Тут ми можемо поставити оформлення полів звіту. Список налаштувань для оформлення досить великий. Тут можна задати і фон колонки, формат і колір тексту, який виводиться в колонці, шрифт, відступ і багато іншого.

Пользовательские поля. Тут можна створювати свої поля і колонки. Наприклад, ми хочемо зробити колонку, в якій буде інформація про категорії водія, заснована на сумі нарахувань, якщо нарахування менше 60 означає категорія «Молодший», якщо більше значить «Старший».

Додаємо поле з такими відборами:

Отчеты на СКД

І додаємо наше нове поле в обрані поля:

Отчеты на СКД

Інші настройки. Тут можна задати загальні настройки для макета звіту.

  • Макет оформления – вибираємо кольорову гамму звіту.
  • Расположение итогов, полей группировок, и реквизитов, для настройки вида отчета. Для кожного параметра просто вибираємо доступне значення, яке нам потрібно.
  • Выводить Заголовки и Заголовки – дозволяє окремо виводити на форму звіту заголовки всіх полів в звіті
  • Выводить отбор и параметры – відповідно, виводить на форму звіту параметри і відбір які ми додали в звіт.
  • Фиксация слева и сверху. Дозволяє налаштувати розташування звіту на формі.

Реалізації завдання: порівняння залишків продуктів у двох різних основах.

Об'єкт

- це теж набір даних але «зовнішній». Це може бути таблиця, яку можна заповнити даними результату запиту або з іншої таблиці значень або навіть набору записів. Головна складність, полягає в тому, що потрібно цей об'єкт заповнити самостійно, а значить і висновок самого звіту та його розшифровки теж.

Приклад завдання

Уявімо завдання: потрібно отримати і порівняти залишки товару в 2-х базах BAS в загально кількісному вираженні. З поточної бази отримаємо дані за допомогою набору даних запит, а із зовнішньої бази - за допомогою COM з'єднання.

Налаштування СКД

Створюємо новий звіт, відкриваємо схему компоновки даних, додаємо два типи набору даних: Набір-Запит і Набір-Об'єкт. Власне Набір-Запит - це отримання залишків в поточній базі, а Набір-Об'єкт - це таблиця в яку будуть поміщені дані із зовнішньої бази, як ми і сказали вище.

Набір-запит: ось такий простенький текст запиту, суть зараз в показанні взаємодії цих об'єктів.

СКД - набор данных. Пример

Набір-об'єкт: В низу вікна є поле з ім'ям «Ім'я:» введемо туди назву «ВнешниеДанные» додамо поля: «КодСкладаВнешний» (по цьому полю буде виконуватися зв'язок набору-запиту і набору-об'єкта) і «ОстатокВнешняяБаза».

СКД - набор данных. Пример

Тепер на закладці «Зв'язки наборів даних», задамо зв'язок наших наборів даних. Зв'язки наборів даних, аналогічні зв'язкам таблиць в конструкторі запитів. Винятком є те що в СКД з'єднання може бути тільки ЛЕВЫМ.

Заповнюємо поля наступним чином:

  1. Джерело зв'язку: Набір-Запит;
  2. Приймач зв'язку: Набір-Об'єкт;
  3. Вираз джерело: Склад.Код;
  4. Вираз приймач: КодСкладаВнешний.

СКД - набор данных. Пример

На вкладці «Налаштування», додамо висновок детальних записів. Для цього клацніть правою кнопкою на «Звіт», виберіть «Нова угруповання» і, не вибираючи жодного поля, натисніть «ОК».

Тут же додамо в «Вибрані поля»: Склад, КоличествоОстаток и ОстатокВнешняяБаза.

СКД - набор данных. Пример

На цьому конструювання звіту завершено, пора переходити до програмування!

Обробник з'єднання

Додамо нову основну форму звіту, на формі додамо кнопку «Сформувати». В обробник кнопки додамо текст процедури COM з'єднання, а після - висновок звіту, якщо дані отримані:

СКД - набор данных. Пример

На програмному виведення звіту не будемо сильно зупинятися, він досить описаний в літературі і інших місцях. Але варто зазначити що потрібно обов'язково передавати в метод «Виконати» - ДанныеРасшифровки, інакше розшифровка (це те, що відбувається по подвійному кліку на осередку табличного документа) доступна не буде. Так само передаємо ДанныеРасшифровки процесору компонування при ініціалізації.

СКД - набор данных. Пример

 

Все працює, але при спробі відфільтрувати, упорядкувати, оформити і т.д. виникає помилка виконання: «Не знайдений зовнішній набір даних ВнешниеДанные». Момент в тому, що фільтрація, упорядкування та ін. По суті, є установкою налаштувань звіту і переформовуванням результату. А так як використовується зовнішній набір даних, необхідно передавати його при ініціалізації процесора компонування. З огляду на це, визначимо для поля табличного документа «Результат», процедуру «ОбработкаРасшифровки»:

СКД - набор данных. Пример

Зв'язок параметрів СКД з елементами форми

Отже, розглянемо найпростіший приклад реалізації такого завдання.

Як параметр виступає період формування довільного звіту.

Зверніть увагу на вираз для параметра КонецПериода, якщо використовувати функцію КонецПериода () і не перевіряти заповненість отримаємо звіт за період 01.01.0001 00:00:00 - 01.01.0001 23:59:59, що є некоректно.

Додамо в об'єкт два реквізити, відповідно НачалоПериода і КонецПериода і виведемо їх на форму.

Оброблювач кнопки настройки періоду, там же відбувається зв'язування змінених значень реквізитів Форми з параметрами СКД:

Параметры СКД и форма элемента

Як неважко здогадатися в разі простого параметра код буде мати вигляд:

Параметры СКД и форма элемента

Зазначення періодів в віртуальних таблицях в системі компонування даних

Залежно від типу віртуальної таблиці СКД автоматично додасть параметр (параметри).

Параметр «Період» для:

  • періодичних регістрів відомостей - «СрезПервых», «СрезПоследних»,
  • регістрів накопичення і регістрів бухгалтерії «Остатки»,

Як приклад розглянемо віртуальну таблицю залишків РН ТовариНаСкладах.

СКД параметры виртуальных таблиц

У запиті параметри віртуальної таблиці не вказані, але як видно на малюнку нижче СКД додав параметр «Період», при цьому прапор «Обмеження доступності» за замовчуванням знято, отже цей параметр доступний користувачеві для редагування при налаштуванні звіту.

СКД параметры виртуальных таблиц

Аналогічно для регістрів накопичення і регістрів  - «Обороти», «Залишки і обороти» СКД автоматично додасть параметри «НачалоПериода» і «КонецПериода».

Часто виникає ситуація коли немає необхідності користувачеві вказувати параметри (необов'язкові параметри віртуальної таблиці), тобто для параметрів:

  • «Период» це рівносильно поточну дату,
  • «НачалоПериода» і «КонецПериода» - без обмеження по періоду.

В такому випадку необхідно скористатися розширенням мови запитів компонування даних:

Конструктор запиту СКД

-> закладка «Компонування даних» -> закладка «Таблиці» -> кнопка «Параметры виртуальной таблицы».

СКД параметры виртуальных таблиц

В такому випадку, текст запиту СКД набуде вигляду:

Листинг кода 1

Де {} і є розширенням мови запитів компонування даних, що вказують на необов'язковість параметрів віртуальної таблиці.

З іншими корисними темами ви можете ознайомитися в нашій базі знань

Крім цього, ми надаємо послуги Супроводу BAS

Також Ви можете ознайомитися з нашими розробками для програми BAS

Також, наша компанія проводить навчання за курсами:

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

Якщо у вас залишилися питання, Ви завжди можете звернутися до наших аналітиків за телефонами:
(093) 090-70-20
(095) 090-70-20
(068) 090-70-20

( 16 )
Коментарі
Поки немає відгуків
Написати коментар

Зв'яжіться з нами

Якщо ви хочете отримати більше інформації, заповніть цю форму. Ми зв'яжемося з вами найближчим часом.

(095) 090-70-20 (068) 090-70-20 (093) 090-70-20 info@finsoft.ua