Контакти

1с звіт схема компонування даних. Створення простого звіту на скд. Перевіряємо звіт в режимі користувача

При створенні звітів за допомогою системи компоновки даних (СКД) зручно виводити параметри звіту (хоча б найбільш часто використовувані) на форму, щоб не змушувати користувача копатися в стандартному вікні налаштувань СКД.

Розглянемо як це можна зробити на звичайних формах 1С. Відразу обмовимося, що в цій статті буде розглядатися саме висновок параметрів на форму, тобто самі параметри в СКД вже повинні бути створені.

Існує два способи виведення параметрів СКД на звичайну форму:

  • висновок таблиці налаштувань параметрів цілком
  • висновок окремих параметрів у вигляді полів введення.

Таблиця настройки параметрів, що виводиться на форму, аналогічна таблиці настройки параметрів, що генерується засобами СКД. Для її виведення на форму потрібно створити елемент управління ТаблічноеПоле, У якого у властивості данівказати КомпоновщікНастроек.Настройкі.ПараметриДанних

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

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

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

    Процедура ПараметриПріІзмененіі (Елемент)

    ПараметрДатаНач \u003d КомпоновщікНастроек. Налаштування. ПараметриДанних. Елементи. Знайти ( "НачалоПеріода"); // Пошук проводиться по імені параметра СКД
    ПараметрДатаНач. Використання \u003d Істина; // Параметр буде використовуватися при відборі
    ПараметрДатаНач. Значення \u003d ДатаНачала; // Параметру присвоюється значення реквізиту звіту

    ПараметрДатаКон \u003d КомпоновщікНастроек. Налаштування. ПараметриДанних. Елементи. Знайти ( "КонецПеріода");
    ПараметрДатаКон. Використання \u003d Істина;
    ПараметрДатаКон. Значення \u003d КонецДня (ДатаОкончанія);

    ПараметрОрг \u003d КомпоновщікНастроек. Налаштування. ПараметриДанних. Елементи. Знайти ( "Організація");
    ПараметрОрг. Використання \u003d Істина;
    ПараметрОрг. Значення \u003d Організація;

    КонецПроцедури

СКД 1С розшифровується як Система Компонування Даних. СКД 1С - це новий спосіб написання звітів в 1С, який дозволяє користувачеві повністю налаштовувати звіт самостійно.

Мінус СКД 1С в тому, що його налаштування досить складні і не всі користувачі засвоюють їх швидко.

Написання звітів СКД вимагає вміння працювати з запитами в 1С, що ми обговорювали в.

Яка технологія створення звіту СКД 1С:

  • Написати запит 1С в СКД 1С, який забезпечує отримання даних
  • Вказати СКД 1С роль полів (обчислювані поля, ресурси)
  • Ввести настройки СКД 1С за замовчуванням.

Користувачеві залишається можливість змінити безліч налаштувань за своїм бажанням.

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

  • Написати запит в програмі 1С
  • Розробити форму налаштувань (унікальну для звіту), яка дозволить змінювати тільки обрані програмістом N налаштувань
  • Написати код (програму) виконання запиту і побудови друкованої форми звіту.

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

  • Програміст - позбавляє від написання програми для виконання звіту та налаштувань
  • Користувач - отримує значний доступ до налаштувань звіту.

У всіх нових конфігураціях 1С всі звіти будуть використані тільки на СКД 1С.

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

Створюємо звіт СКД 1С

У конфігураторі натисніть кнопку нового файлу (меню Файл / Новий).

Виберіть тип файлу Новий звіт.

Буде створено новий звіт. Введемо найменування - без пробілів для конфігурації, синонім для користувача.

створимо основну схему СКД 1С.

Створюємо запит для звіту СКД 1С

Джерел даних для СКД 1С може бути безліч. Щоб використовувати, наприклад, два окремих запиту - додайте спочатку «Набір даних - об'єднання», а потім кілька запитів.

У нашому прикладі ми будемо використовувати простий запит.

Накидаємо запит для отримання даних.

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

В результаті формування запиту, СКД 1С створить список доступних до використання полів і заповнить їм за замовчуванням найменування.

Якщо найменування незручне, тут його можна змінити.

Зверніть увагу, що ми використовували в запиті параметр & ДатаНачала. У СКД 1С є параметр (дата) за замовчуванням з назвою & Період і Ви можете використовувати його.

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

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

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

На закладці Ресурси вкажемо ті поля, які будуть підсумовуватися для підсумків (тобто цифри). У полів можна вказати функцію підсумовування. За замовчуванням це Сума (тобто підсумувати цифри з усіх рядків і отримати разом), а можна використовувати Середнє, Кількість, Максимум і т.п.

На закладці Параметри заборонимо непотрібні нам, і включимо потрібні. Тут же можна задати людське назву параметра.

Основна настройка проводиться на закладці Налаштування:


Відкриємо його в режимі Підприємство. Зверніть увагу, що ми не займалися ніяким програмуванням, малюванням форм та іншого. Щоб задати параметр натисніть кнопку Налаштування.

Користувач бачить майже таку ж форму налаштувань, як і програміст.

Вуаля. Звіт працює.

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

Всі настройки звіту СКД 1С проводиться за допомогою натискання на кнопку Налаштування. Принаймні в шаблоні за замовчуванням. Існує можливість створити самому форму звіту СКД 1С і тоді настройки можуть бути винесені в інші форми, намальовані програмістом самостійно.

Перетягнемо Склад з Колонки в Рядки.

Перетягнемо Номенклатури на Склад.

Натисніть ОК і сформуйте звіт. Ура - ми тільки що змінили роботу звіту в режимі Програмування без програмування.

Натисніть правою кнопкою на Рядки (а можна на будь-який з полів) і виберіть Нова угруповання.

Розкриємо поле Склад і виберемо одне з його полів, наприклад Вид складу.

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

Якщо Ви додасте нову угруповання, але полі не виберете, це означає «Все поля» (відображається як «Детальні записи»). Це виглядає так.

Схопите лівою кнопкою миші нашу угруповання (Склад / Номенклатура) і перетягніть її на нову угруповання (Вид складу).

Результат наших налаштувань.

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

Зверніть увагу, що налаштування можуть бути задані для всього звіту (обраний Звіт) або для конкретної рядки полів (виберіть рядок, наприклад Номенклатура, і виберіть Установки: Нонменклатура).

У нашому прикладі звіт показує випуск продукції і послуг в розрізі підрозділів, номенклатурних груп і з розбивкою по місяцях.

ось головна сторінка звіту:

Викликається ця сторінка з конфігуратора в меню Файл - Новий - Зовнішній звіт.

Спочатку додаємо набір даних (НаборДанних1). У віконці «Запит» можна набрати самостійно, створити за допомогою Конструктора запиту або завантажити з файлу. Зручніше за все використовувати конструктор запиту. Як працює конструктор, читайте.

Все, що потрібно, заповнюється автоматично, але деякі речі варто підправити.

Наприклад, заголовки колонок (галочка «Кількість» на малюнку вище дозволяє набрати будь-який текст заголовка для даного поля), можна задати формат виведення даних (див. Формат в рядку Кількість). Формат редагується для будь-якого виду даних - рядків, дат, чисел.

На закладці Ресурси вибираємо самі ресурси і налаштовуємо висновок підсумків для них:

Закладка Параметри містить все, від чого змінюється вміст звіту (наприклад, період, за який будуть вибиратися дані). Заповнюється автоматично на підставі параметрів запиту (див. Першу сторінку). Галочками можна регулювати видимість, доступність цих параметрів, задавати початкове значення і т.д:

Отримайте 267 відеоуроків по 1С безкоштовно:

І, нарешті, Налаштування. тут малюється зовнішній вигляд звіту - колонки, рядки, їх положення відносно один одного, угруповання і т.д. Кнопочка «Відкрити конструктор налаштувань» допоможе вибудувати рядки і колонки в потрібному порядку. Кнопочка «Призначені для користувача настройки елементу» дозволить вивести параметри в шапку звіту:

Зверніть увагу на колонку Період.ЧастіДат.НазваніеМесяца. Як же вивести назву місяця в заголовок колонки? Ось тут і виводиться.

До речі, саме така установка дозволяє виводити дані відразу за кілька періодів в сусідніх колонках звіту:

Ще одна важлива закладка - Вибрані поля. Якщо вона буде порожньою, звіт не сформується. Звичайно заповнюється автоматом по кнопці «Відкрити конструктор налаштувань»:

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

  • 1С-Бітрікс
  • Одна з найважливіших областей бізнес-софта - це звітність. Від того, наскільки легко налаштувати під мінливі потреби бізнесу (і законодавства) існуючий звіт або зробити новий, може залежати (причому не в переносному сенсі!) Доля бізнесу, будь то звіт для податкової інспекції або діаграма залежності попиту на товари від сезону та інших факторів. Потужна і гнучка система звітності, що дозволяє легко витягти з системи потрібні дані, представити їх в доступному для розуміння вигляді, що дозволяє кінцевому користувачеві перенастроювати стандартний звіт так, щоб побачити дані в новому світлі - це ідеал, до якого має прагнути кожна бізнес-система.

    У платформі «1С: Підприємство» за побудову звітів відповідає механізм під назвою «Система компоновки даних» (скорочено СКД). У цій статті ми постараємося дати короткий опис ідеї та архітектури механізму СКД і його можливостей.


    СКД - це механізм, заснований на декларативному описі звітів. СКД призначений для побудови звітів і для виведення інформації, що має складну структуру. До речі, крім розробки звітів механізм СКД також використовується в «1С: Підприємство» в динамічному списку, засобі показу облікової інформації з багатою функціональністю (показ плоских і ієрархічних списків, умовне оформлення рядків, угруповання і т.п.).

    Трохи історії

    У найпершій версії платформи «1С: Підприємство 8», версії 8.0, звіти робилися так:
    1. Писався один або кілька запитів на мові запитів 1С (SQL-подібна мова, докладніше про нього нижче).
    2. Писався код, який переносив результати виконаних запитів в табличний документ або в діаграму. Код також міг робити роботу, яку в запиті зробити неможливо - наприклад, обчислював значення, використовуючи вбудовану мову 1С.
    Підхід прямолінійний, але не найзручніший - візуальних налаштувань мінімум, все доводиться програмувати «врукопашну». А один з козирів на той момент зовсім нової платформи «1С: Підприємство 8» - це мінімізація в прикладному рішенні обсягу коду, який потрібно писати вручну, зокрема, за рахунок візуального проектування. Логічно було б піти цим же шляхом і в механізмі побудови звітів. Що і було зроблено шляхом розробки нового механізму - Системи Компонування Даних.

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

    Постановка задачі

    Завдання перед командою розробки стояла така - зробити систему створення звітів, засновану не так на алгоритмічній (тобто через написання коду), а на декларативному підході до створення звітів. І ми вважаємо, що завдання успішно вирішили. З нашого досвіду, близько 80% необхідної звітності може бути реалізована за допомогою СКД без єдиної строчки коду (за винятком написання формул обчислюваних полів), здебільшого - через візуальні налаштування.
    Розробка першої версії СКД зайняла близько 5 людино-років.

    дві мови

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

    Мова запитів

    Мова запитів заснований на SQL і легко освоюється знаючими SQL. Приклад запиту:

    Легко бачити аналоги стандартних для SQL-запиту секцій - SELECT, FROM, GROUP BY, ORDER BY.

    При цьому мова запитів містить значну кількість розширень, орієнтованих на відображення специфіки фінансово-економічних задач і на максимальне скорочення зусиль по розробці прикладних рішень:

    • Звернення до полів через точку. Якщо поля будь-якої таблиці мають контрольний тип (зберігають посилання на об'єкти іншої таблиці), розробник може в тексті запиту посилатися на них через ".", При цьому кількість рівнів вкладеності таких посилань система не обмежує (наприклад, ЗаказКліента.Соглашеніе.Організація. Телефон).
    • Багатовимірне і багаторівневе формування підсумків. Підсумки і Проміжні підсумки формуються з урахуванням угруповання і ієрархії, обхід рівнів може виконуватися в довільному порядку з підбиттям Проміжні підсумки, забезпечується коректне побудова підсумків по тимчасовим вимірам.
    • Підтримка віртуальних таблиць. Віртуальні таблиці, що надаються системою, дозволяють отримати практично готові дані для більшості прикладних задач без необхідності складання складних запитів. Так, віртуальна таблиця може надати дані по залишкам товарів в розрізі періодів на якийсь момент часу. При цьому віртуальні таблиці максимально використовують збережену інформацію, наприклад, раніше розраховані підсумки і т.д.
    • Тимчасові таблиці. Мова запитів дозволяє використовувати в запитах тимчасові таблиці. З їх допомогою можна підвищити продуктивність запитів, в деяких випадках знизити кількість блокувань і зробити текст запиту більш легким для сприйняття.
    • Пакетні запити. для більш зручної роботи з тимчасовими таблицями в мові запитів підтримується робота з пакетними запитами - таким чином, створення тимчасової таблиці і її використання містяться в один запит. Пакетний запит являє собою послідовність запитів, між якими ставиться крапка з комою ( ";"). Запити в пакеті виконуються один за іншим. результатом виконання пакетного запиту, В залежності від використовуваного методу, буде або результат, що повертається останнім запитом пакету, або масив результатів всіх запитів пакета в тій послідовності, в якій слідують запити в пакеті.
    • Отримання уявлень посилальних полів. Кожна об'єктна таблиця (в якій зберігається довідник або документ) має віртуальне поле - «Представлення». Це поле містить текстове представлення об'єкта і полегшує роботу творця звітів. Так, для документа це поле містить всю ключову інформацію - назва типу документа, його номер і дату (наприклад, «Продаж 000000003 від 06.07.2017 17:49:14»), позбавляючи розробника від написання обчислюваного поля.
    • та ін.
    Механізм запитів автоматично модифікує запит з урахуванням ролей, до яких належить користувач, від імені якого виконується запит (тобто користувач побачить тільки ті дані, які має право бачити) і функціональних опцій (тобто відповідно до налаштованої в прикладному рішенні функціональністю).

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

    наприклад:

    • ВИБРАТИ. У цій пропозиції описуються поля, які користувач зможе вибирати для виведення. після цього ключового слова через кому перераховуються псевдоніми полів з основного списку вибірки запиту, які будуть доступними для настройки. Приклад: (ВИБРАТИ Номенклатура, Склад)
    • ДЕ. Описуються поля, на які користувач зможе накладати відбір. В даному реченні використовуються поля таблиць. Використання псевдонімів полів списку вибірки неприпустимо. Кожна частина об'єднання може містити власний елемент ДЕ. Приклади: (ДЕ Номенклатура. *, Склад), (ДЕ Документ.Дата\u003e \u003d & ДатаНачала, Документ.Дата<= &ДатаКонца}
    • та ін.
    Приклад використання розширень:

    Мова виразів компонування даних

    Мова виразів компонування даних призначений для запису виразів, використовуваних, зокрема, для опису виразів користувальницьких полів. СКД дозволяє визначати в звіті призначені для користувача поля, використовуючи або власні вислови, або набори варіантів з умовами їх вибору (аналог CASE в SQL). Призначені для користувача поля є аналогом обчислюваних полів. Вони можуть задаватися як в конфігураторі, так і в режимі «1С: Підприємство», але в виразах користувальницьких полів можна використовувати функції загальних модулів. Тому призначені для користувача поля призначені скоріше для користувача, ніж для розробника.

    приклад:

    Процес створення звіту на СКД

    При створенні звіту нам потрібно створити макет, який визначає, як дані будуть відображатися в звіті. Можна створити макет, який базується на схемі компоновки даних. Схема компонування даних описує суть даних, які надаються звіту (звідки отримувати дані і як можна управляти їх компонуванням). Схема компонування даних являє собою базу, на основі якої можуть бути сформовані різноманітні звіти. Схема компонування даних може містити:
    • текст запиту з інструкціями системи компоновки даних;
    • опис декількох наборів даних;
    • докладний опис доступних полів;
    • опис зв'язків між декількома наборами даних;
    • опис параметрів отримання даних;
    • опис макетів полів і угруповань;
    • та ін.

    Наприклад, можна в якості набору даних додати в схему компоновки даних запит, і викликати конструктор запиту, що дозволяє в графічному вигляді скласти запит довільної складності:

    Підсумком запуску конструктора запитів буде текст запиту (на мові запитів «1С: Підприємства»). Цей текст можна при необхідності скорегувати вручну:

    Наборів даних в схемі компоновки даних може бути кілька, набори даних можуть бути пов'язані в макеті довільним чином, можуть бути додані обчислювані поля, задані параметри звіту і т.п. Варто згадати цікаву особливість роботи механізму запитів в 1С: Підприємстві. Запити в кінцевому підсумку транслюються в діалект SQL, специфічний для СУБД, з якої безпосередньо працює додаток. Ми взагалі намагаємося задіяти можливості серверів СУБД по максимуму (нас обмежує те, що ми використовуємо тільки ті можливості, які є одночасно у всіх підтримуваних платформою «1С: Підприємство» СУБД - MS SQL, Oracle, IBM DB2, PostgreSQL). Таким чином, на рівні запиту в обчислюваних полях ми можемо використовувати тільки ті функції, які транслюються в SQL.

    А ось на рівні схеми компонування даних ми вже можемо додавати власні поля і використовувати в них функції на вбудованій мові розробки 1С (в тому числі і написані нами), що сильно розширює можливості звітів. Технічно це виглядає так - все, що можна транслювати в SQL, транслюється в SQL, запит виконується на рівні СУБД, результати запиту поміщаються в пам'ять сервера додатків 1С і СКД обчислює для кожного запису значення обчислюваних полів, чиї формули написані на мові 1С.


    Додавання користувальницьких полів

    У звіт можна додати будь-яку кількість таблиць і діаграм:


    дизайнер звітів


    Звіт під час виконання

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

    Коротко описати процес побудови і формування звіту можна так:

    • Розробник в design time за допомогою дизайнера (або в runtime за допомогою коду) визначає схему компоновки даних:
      • Текст запиту / запитів
      • Опис обчислюваних полів
      • Зв'язки між запитами (якщо їх декілька)
      • параметри звіту
      • Налаштування за замовчуванням
      • І т.д.
    • Вищеописані настройки зберігаються в макеті
    • Користувач відкриває звіт
      • Можливо, робить додаткові налаштування (наприклад, змінює значення параметрів)
      • Натискає кнопку «Сформувати»
    • Налаштування користувача застосовуються до схеми компонування даних, визначеної розробником.
    • Формується проміжний макет компонування даних, що містить в собі інструкції, звідки отримувати дані. Зокрема, коригуються запити, задані в макеті. Так, із запиту видаляються поля, які не використовуються в звіті (це робиться з метою мінімізувати обсяг одержуваних даних). У запит додаються всі поля, які беруть участь в формулах обчислюваних полів.
    • У справу включається процесор компонування даних. Процесор компонування виконує запити, здійснює зв'язок наборів даних, розраховує значення обчислюваних полів і ресурсів, виконує угруповання. Словом, робить всі розрахунки, які не були виконані на рівні СУБД.
    • Процесор виведення даних запускає запит на виконання і виводить отримані дані в табличний документ, діаграму і т.п.


    Процес формування звіту механізмом СКД

    Ми намагаємося мінімізувати обсяг даних звітів, переданих з сервера в клієнтську програму. Під час показу даних в табличному документі при відкритті табличного документа ми передаємо з сервера тільки ті рядки, які користувач бачить на початку документа. У міру просування користувача по рядках документа на клієнта підкачуються з сервера відсутні дані.

    призначені для користувача настройки

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


    Режим відображення настройки в design time


    Відображення настройки в режимі «Швидкий доступ» під час виконання (під кнопкою «Сформувати»)

    плани розвитку

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

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

    Набір даних - запит.

    1. На відміну від звичайного запиту в запиті для компонування даних відсутня пропозиція ПІДСУМКИ. Замість цього підсумки формуються на закладці «Ресурси». На цій закладці вибираються поля, за якими необхідно отримати підсумкові вираження. А на закладці «Налаштування» вказується в якому розрізі будуть виходити підсумки, тобто тут створюються відповідні угруповання і по них розраховуються ресурси. Більш докладно про це можна прочитати в статті.
    2. Наступний момент стосується налаштування відборів. Існує дві можливості виконання.
      1. Через настройки варіанту звіту. Це можна зробити на вкладці «Налаштування» - «Відбір». Якщо використовуємо цей варіант, то він є найбільш гнучким, так як можна вказувати різні види порівнянь, які може вибирати навіть користувач. Крім того, при використанні цього варіанту, умови фільтрації накладаються в самому запиті. Якщо звіт базується на пакетному запиті з використанням тимчасових таблиць, тоді відбір буде впливати на всі таблиці пакетного запиту, де зустрічається поле відбору.
      2. На рівні запиту. Якщо використовуємо запит, то крім операції рівність не зможемо використовувати нічого.
        Винятком є \u200b\u200bвипадок, коли нам потрібно виконати «жорстку» фільтрацію даних по деякому значенню. Припустимо, за значенням перерахування. У вкладці «Параметри» можемо поставити умову. Якщо включимо прапор «Обмеження доступності», то користувач не зможе скасувати цю умову.
    3. Сортування, теж правильніше накладати на рівні налаштувань варіанту звіту.
      1. Якщо в запиті вказати деякий поле сортування, то користувач в налаштуванні свого варіанту звіту вкаже інше поле, тоді наша настройка, виконана на рівні запиту матиме нижчий пріоритет. Спочатку буде виконуватися сортування, встановлена \u200b\u200bкористувачем в налаштуванні варіанту звіту. Тому, якщо потрібно виставити сортування «за замовчуванням», то використовуємо налаштування варіанта звіту в Конфігураторі.
      2. А якщо необхідно налаштувати «жорстку» сортування в звіті, щоб користувач не зміг її поміняти? Тоді встановлюємо сортування на рівні запиту, а на закладці «Набори даних» налаштуємо обмеження поля. Виділимо потрібний набір даних і в колонці «Обмеження поля» - «Упорядкування» поставимо галочку.

    Параметри віртуальних таблиць.

    • Побудова віртуальних таблиць регістрів бухгалтерії, регістрів накопичення, регістрів відомостей залежить від заданої дати. Це може бути як одна дата, так і інтервал, як наприклад, для таблиці залишків і оборотів. СКД створена так, що якщо в основі звіту лежить віртуальна таблиця, тоді необхідно дати користувачеві вибрати, за який інтервал або на яку дату формувати звіт. СКД автоматично додає необхідні параметри періоду в схему компоновки.
    • Якщо в запиті обрана віртуальна таблиця залишків або віртуальна таблиця регістрів відомостей, тоді автоматично додається параметр з назвою «Період».
    • Якщо в запиті обрана віртуальна таблиця залишків і оборотів або віртуальна таблиця оборотів, тоді автоматично додаються параметри «НачалоПеріода» і «КонецПеріода».
    • Що зробити, якщо потрібно отримати залишки на кінець періоду? Існує два способи:
      1. Заходимо на вкладку «Параметри» і в параметрі «Період» в колонці «Висловлювання» пишемо наступне:
        & КонецПеріода. Також включимо прапор «Обмеження доступності».
      2. Повністю позбавляємося від параметра «Період» і замінюємо його на параметр «КонецПеріода». Налаштуємо необов'язковий параметр віртуальної таблиці:
        • Заходимо на вкладку «Набори даних» натискаємо на кнопку «Конструктор запиту ...».
        • На вкладці «Компонування даних» в лівому верхньому кутку натискаємо кнопку для виклику діалогу «Параметри віртуальної таблиці» (це сіра квадратна кнопка із зображенням шестерінки на тлі маленької таблиці).
        • В поле «Період» в діалоговому вікні пишемо: & КонецПеріода.
        • Тепер в тексті запиту набору даних в параметрах віртуальної таблиці цей параметр з'явитися в оточенні фігурних дужок:
    РегістрНакопленія. ОстаткіТоваров. Залишки (((& КонецПеріода)),) ЯК залишки

    Фігурні дужки вказують на розширення мови запитів компонування даних. Також це вказує на те, що цей параметр є необов'язковим. Це означає, що якщо він не буде визначений в схемі компоновки даних, то залишки будуть отримані на поточну дату.

    Розширення мови запитів.

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

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

    Як працює автозаповнення доступних полів схеми компонування даних?

      1. Стають доступними поля зі списку вибірки запиту і їх дочірні поля.
      2. Якщо вибираємо з регістра накопичення, то навіть не включені в запит поля регістру стають доступними в полях компонування даних. Але ці поля доступні тільки для відбору (в умовних виразах)
        і їх не можна буде використовувати в якості вихідних полів.
      3. Параметри віртуальних таблиць «Період», «НачалоПеріода» і «КонецПеріода» стають
        доступними для відбору.
      4. Якщо в тексті запиту зазначено «жорстке» умова, тоді цей параметр теж буде додано на закладці «Параметри».

    Якщо прапорець «Заповнити форму» знятий, то поля схеми компонування даних очищаються, але залишаються параметри, ув'язнені в фігурні дужки в тексті запиту.

    Як самостійно заповнити поля схеми компонування даних?

    Знімаємо прапорець «Заповнити форму» на закладці «Набори даних».

    Натискаємо на кнопку «Конструктор запиту ...». Сформуємо наступний запит:

    ВИБРАТИ Залишки. Номенклатура ЯК Номенклатура, Залишки. Кількість ЯК Кількість РегістрНакопленія. ОстаткіТоваров. Залишки (((& КонецПеріода)),) ЯК залишки

    На вкладці «Таблиці» можемо задати параметри віртуальних таблиць для всіх таблиць.

    Тепер на вкладці «Компонування даних» вибираємо закладку «Поля». Тут задаємо поля вибірки, які
    будуть представлені в схемі компоновки.

    Поле «І ..» означає, що будуть включені до вибірки дочірні записи
    полів складного типу, таких як довідники і документи і т.п. Якщо поле, такого як число, то поставити прапор в поле «І ..» буде неможливо.

    Виберемо два поля «Номенклатура» і «Кількість». Для поля «Номенклатура» встановимо прапор «І ..»,
    щоб вибиралися дочірні записи. Вийти наступний запит:

    ВИБРАТИ Залишки. Номенклатура ЯК Номенклатура, Залишки. Кількість ЯК кількість (ВИБРАТИ Номенклатура. *, Кількість) РегістрНакопленія. ОстаткіТоваров. Залишки (((& КонецПеріода)),) ЯК залишки

    У новому запиті, в фігурних дужках, з'явилася ще одна секція ВИБРАТИ - це текст розширення, який вказує на поля, які будуть доступні в компонуванні. Поле «Номенклатура. *» Вказує, що буде доступно поле «Номенклатура» і її дочірні реквізити, такі як «Код», «Найменування» і т.п. Отже, ми заповнили поля компонування самостійно.

    Але зараз ми не можемо використовувати поля в умовах компонування. Якщо зайти на закладку «Налаштування» і вибрати вкладку «Відбір», то не можна встановити умови ні на одне поле, яке ми вибрали в попередньому пункті. Чому?

    Накладення умов на параметри віртуальної таблиці також потрібно вказувати на вкладці «Компонування даних» Конструктора запиту. У лівому верхньому кутку натискаємо кнопку для виклику діалогу «Параметри віртуальної таблиці»
    (Це сіра квадратна кнопка із зображенням шестерінки на тлі маленької таблиці). В поле «Умова» в діалоговому вікні пишемо: Номенклатура. Тепер в тексті запиту набору даних в параметрах віртуальної таблиці цей параметр «Номенклатура» з'явитися в оточенні фігурних дужок:

    РегістрНакопленія. ОстаткіТоваров. Залишки (((& КонецПеріода)), ((Номенклатура))) ЯК залишки

    У звичайній мові запитів вказівку параметра виглядає так: Номенклатура \u003d & Номенклатура. Але в розширенні мови запитів це записується по-іншому. Вказується лише назва поля. Тут ми не вказуємо операцію рівності, нерівності або в ієрархії, так як користувач сам буде вибирати потрібну операцію в своїх настройках.

    На вкладці «Компонування даних» Конструктора запиту ми бачимо yoще одну закладку, «Умови». Вона потрібна, щоб вказати в розширенні мови запитів умови на пропозицію ДЕ. Виберемо поле «Кількість». Тепер це поле є в умовах на закладці «Налаштування» - «Відбір». А в тексті запиту з'явилися нові рядки, укладені у фігурні дужки.

    (ДЕ Залишки. Кількість)

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

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

    А в цій серії уроків ми розглянемо функції мови виразів СКД, поговоримо про особливості роботи системи компоновки, а також розберемо основні настройки полів компонування. Успіхів, в розумінні цього нелегкого матеріалу!

    В кінці статті хочу порадити вам безкоштовний від Сотникова Анатолія. Це курс від досвідченого програміста. Він на окремій базі покаже вам, як будувати звіти в СКД. Вам тільки потрібно уважно слухати і запам'ятовувати! Ви отримаєте відповіді на такі питання:
    • Як створити простий звіт у вигляді списку?
    • Для чого потрібні колонки Поле, Шлях і Тема на закладці «Поля»?
    • Які існують обмеження для полів компонування?
    • Як правильно налаштовувати ролі?
    • Які існують ролі для полів компонування?
    • Де знайти закладку компоновка даних в запиті?
    • Як налаштовувати параметри в СКД?
    • Далі ще цікавіше ...
    Напевно, не варто самому намагатися борознити інтернет в пошуках потрібної інформації? Тим більше все готово для застосування. Тільки почніть! Всі подробиці про те, що є в безкоштовних відеоуроку


    Сподобалася стаття? поділіться їй