Ми досить детально розглянули настройки звітів, реалізованих на базі СКД. Тепер розберемо більш тонкі і детальні настройки варіантів звіту. Вікно «просунутих» налаштувань варіанту звіту викликається по команді «Ще» - «Інше» - «Змінити варіант звіту».

Вікно зміни варіанту звіту розділене на дві частини:

1. Структура звіту.

2. Налаштування звіту.


Розділ структури варіанту звіту аналогічний вкладці «Структура» стандартних налаштувань звіту. Призначення і настройка угруповань докладно розглянута в ч. 1 статті.

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

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

Розділ налаштувань складається з наступних вкладок:

1. Параметри. Містить параметри СКД, доступні користувачеві.

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


Таблиця параметрів представлена \u200b\u200bв форматі «Параметр» - «Значення». При необхідності можна змінювати значення параметрів. Натискання на кнопку «Властивості елемента налаштувань» відкриває для користувача настройки елемента.


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

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

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


Користувач може додати два види полів:

  • Нове поле вибір ...
  • Нове поле вираз ...

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


Наприклад, обчислимо оцінку кількості продажів. Будемо вважати, що, якщо продано менше 10 одиниць товару, продали мало, а якщо більше 10 одиниць - багато. Для цього задамо 2 значення обчислюваного поля: перше буде з відбором «Кількість товарів Менше або дорівнює" 10 "», друге з відбором «Кількість товарів Більше" 10 "».

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

Наприклад, обчислимо середній відсоток знижки. Середній відсоток знижки розраховується за формулою: [Сума продажів без знижки] - [Сума продажів зі знижкою] / [Сума продажів без знижки]. Необхідно пам'ятати, що сума продажів без знижки може бути нульовою, тому використовуємо оператор ВИБІР для перевірки. Отримаємо наступні вирази:

· Для детальних записів:

вибір

Коли [Сума продажів без знижки] \u003d 0

тоді 0

Інакше [Сума продажів без знижки] - [Сума продажів зі знижкою] / [Сума продажів без знижки]

кінець

· Для підсумкових записів:

вибір

Коли Сума ([Сума продажів без знижки]) \u003d 0

тоді 0

Інакше Сума ([Сума продажів без знижки]) - Сума ([Сума продажів зі знижкою]) / Сума ([Сума продажів без знижки])

кінець

Як було сказано раніше, в вираженні підсумкових записів використовуємо агрегатную функцію «Сума».

3. группіруемих поля. Містить поля, за якими буде групуватися результат варіанту звіту. Групуються поля налаштовуються окремо для кожної з угруповань, але можна задати загальні групуються поля для варіанту звіту, якщо вибрати в дереві структури корінь «Звіт». Можна додати поле з результату звіту, призначене для користувача поле або вибрати авто поле, тоді система підбере поля автоматично. Також дана вкладка дозволяє змінювати порядок проходження группіруемих полів.


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

Поля можна групувати, щоб логічно виділити будь-яку частину звіту або задати особливу прихильність колонок. При додаванні групи стає активна колонка «Розташування» і дозволяє вибрати один з варіантів розташування:

  • Авто - система має поля автоматично;
  • Горизонтально - поля розташовуються горизонтально;
  • Вертикально - поля розташовуються вертикально;
  • В окремій колонці - поля розташовуються в різних колонках;
  • Разом - поля розташовуються в одній колонці.


5. Відбір. Містить відбори, використовувані в варіанті звіту. Налаштування відборів була докладно розглянута в частині 1 цієї статті. Відбори налаштовуються окремо для кожної з угруповань, але можна задати загальні відбори для варіанту звіту, якщо вибрати в дереві структури корінь «Звіт».


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


7. Умовне оформлення. Містить елементи умовного оформлення, використовувані в варіанті звіту. Налаштування умовного оформлення була докладно розглянута в частині 1 цієї статті. Умовне оформлення налаштовується окремо для кожної з угруповань, але можна задати загальні елементи умовного оформлення для варіанту звіту, якщо вибрати в дереві структури корінь «Звіт».


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


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


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

ВичіслітьВираженіе - досить складна функція СКД для розуміння, а приклади застосування в довідковій інформації досить мізерні. У даній статті розглянуті приклади, які напевно стануть в нагоді кожному розробнику:

  1. наростаючий підсумок в угрупованні;
  2. наростаючий підсумок в крос-таблиці;
  3. отримання попереднього значення;
  4. висновок ТЧ в одному рядку.

1. Отримання показника наростаючим підсумком

Отримаємо кількість товару наростаючим підсумком на рівні угруповання. Для цього створюємо обчислюване поле (див. Малюнок 1).
На вкладці "Ресурси" задаємо функцію для обчислюваного поля:
ВичіслітьВираженіе ( "Сума (КолічествоОборот)", "Перша", "Поточна")
яка буде підсумовувати кількість товарів від першого запису до поточної (див. рисунок 2).

Якщо кількість товару наростаючим підсумком потрібно отримувати на рівні детальних записів, то функцію ВичіслітьВираженіе задаємо для обчислюваного поля на вкладці "Обчислювані поля" (див. Малюнок 3).
Залежно від рівня отримання наростаючого підсумку, створюємо угруповання (див. Малюнок 4): на рівні ресурсів - угруповання по товарах, на рівні ДЗ - угруповання детальних записів.
Малюнок 4. Угруповання звіту з наростаючим підсумком

2. Отримання значення показника з попереднього рядка

Отримаємо курс валюти на дату і попередню дату. Для цього створюємо обчислюване поле і в поле вираження пишемо такий вираз (див. Рисунок 5):
ВичіслітьВираженіе ( "Курс", "Попередня", "Попередня")
яке буде брати попереднє значення курсу валюти для поточного рядка, останній параметр функції обмежує отримання даних.
Так як працюємо на рівні детальних записів, відразу переходимо до вкладки "Налаштування" і створюємо угруповання - детальні записи.

3. Отримання показника наростаючим підсумком в крос-таблиці

Отримаємо кількість товару наростаючим підсумком в розрізі періоду. Для цього створюємо обчислюване поле (див. Малюнок 1). На вкладці "Ресурси" для обчислюваного поля вкажемо такий вираз (див. Рисунок 6):
ВичіслітьВираженіе ( "Сума (КолічествоОборот)", "Період", "Перша", "Поточна")
яке на рівні угруповання буде обчислювати кількість товару в проміжку від першого рядка до поточної в розрізі періоду по кожній номенклатурі.
На вкладці "Налаштування" створюємо таблицю з угрупованням по номенклатурі в рядку і угрупованням по періоду в колонці (див. Малюнок 7).

4. Висновок даних табличній частині в один рядок

Способи виведення даних табличній частині в один рядок, включаючи спосіб з використанням функції ВичіслітьВираженіе, розглянуто в статті

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

Створення звіту в 1С через СКД

Процес розробки звіту за допомогою СКД можна розділити на наступні етапи:

  1. Створення запиту. Запит можна написати вручну або обійтися без програмного коду, скориставшись зручним інтерфейсом;
  2. Налаштування звіту. Вибираються поля, підсумки, угруповання, параметри, оформлення звіту;
  3. Після цього нам залишиться лише підключити вийшов звіт в конфігурацію будь-яким доступним способом.

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

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


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

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

можливості СКД

Бувають ситуації, коли ми зробили звіт, а потім приходить користувач і просить зробити невелику доопрацювання. Наприклад, замість назв номенклатури виводити артикули. СКД дозволяє такі доробки робити користувачам самостійно за допомогою кнопки «Ще» - «Змінити варіант ...».


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


Вікно надає нам можливість вибору будь-якого значення, яке буде фігурувати в поле «Номенклатура». У деяких полів зліва фігурує знак плюса - в ці поля розробник помістив посилання, значить, ми можемо побачити їх реквізити. Розкриваємо «Номенклатура» і бачимо артикул, який нам і потрібен. Виділяємо його і вибираємо.


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


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

  1. Набори даних - тут перераховані всі запити, які беруть участь у формуванні звіту;
  2. Зв'язки наборів даних - використовується для побудови зв'язку між різними запитами з першої вкладки;
  3. Обчислювані поля - перелік доданих полів не з запиту. Найчастіше використовується в випадках, коли на підставі значень декількох полів із запиту потрібно отримати 1 значення;
  4. Ресурси. В 1С так називаються поля, за якими необхідно знати підсумки. Ресурси підтримують різні арифметичні операції - суму, кількість, максимум і інші;
  5. Параметри. Використовуються, якщо для формування звіту необхідно, щоб користувач ввів певні дані - дату, підрозділів або номенклатуру, наприклад;
  6. Макети. Призначені для тих випадків, коли користувачі хочуть побачити унікальне оформлений звіт. Створити окреме місце для підписів або нову верхню частину звіту - все це можна тут;
  7. Вкладені схеми. Вони необхідні, коли ваш звіт повинен містити дані інших звітів;
  8. Налаштування. У розділі оголошуються виводяться поля, угруповання, налаштовується зовнішній вигляд звіту.


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

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

Розберемо перші три вкладки Схеми компонування даних (1С СКД) - набір даних, зв'язку набору даних і обчислювані поля.

Набір даних в 1С СКД

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

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

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

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

Умови, тут ми вибираємо ті об'єкти, які можна буде використовувати в умовах в СКД.

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

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

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

Створимо кнопку на формі документа, опишемо механізм роботи в керованих формах:

& НаКліенте

Процедура Друк ()

НашОтчет \u003d ПечатьНаСервере (); // викликаємо функцію на сервері

НашОтчет.Показать (); // виводимо сформований звіт

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

&На сервері

Функція ПечатьНаСервере ()

Об'ектДокумента \u003d РеквізітФормиВЗначеніе ( "Об'єкт");

//поміщаємо табличну частину Товари в структуру з найменуванням ТовариСКД так само, як ми вказали в самій СКД ім'я об'єкта, що містить дані

НаборДанних \u003d Новий Структура;

НаборДанних.Вставіть ( "ТовариСКД", Об'ектДокумента.Товари);

//отримуємо наш макет і виставляємо настройки за замовчуванням, щоб всі налаштування виводу звіту бралися з нашого макета

НашМакет \u003d Об'ектДокумента.ПолучітьМакет ( "СКД");

Налаштування \u003d НашМакет.НастройкіПоУмолчанію;

//створюємо макет компонування даних з нашими налаштуваннями

КомпоновщікМакета \u003d Новий КомпоновщікМакетаКомпоновкіДанних;

МакетКомпоновкі \u003d КомпоновщікМакета.Виполніть (НашМакет, Налаштування);

//виконуємо компонування даних з нашим набором даних

ПроцессорКомпоновкіДанних \u003d Новий ПроцессорКомпоновкіДанних;

ПроцессорКомпоновкіДанних.Ініціалізіровать (МакетКомпоновкі, НаборДанних);

//формуємо табличний документ і виводимо в нього наш звіт

ДокументОтчета \u003d Новий ТаблічнийДокумент;

ПроцессорВивода \u003d Новий ПроцессорВиводаРезультатаКомпоновкіДаннихВТаблічнийДокумент;

ПроцессорВивода.УстановітьДокумент (ДокументОтчета);

ПроцессорВивода.Вивесті (ПроцессорКомпоновкіДанних);

Повернення ДокументОтчета;

КонецФункціі

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

Про б'едіненіе

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

Маємо таблиці:

При зв'язку ми отримаємо:

А при об'єднанні:

Розглянемо тепер заповнення колонок в наборах даних (деякі пропустимо, так як пов'язані з іншими вкладками, до них повернемося в майбутніх статтях):

- поле, Вказуємо загальна назва реквізиту;

­­- шлях, Вказуємо назву реквізиту, за яким будемо до нього звертатися в СКД, наприклад, в обчислюваних полях;

- заголовок, Вказуємо найменування реквізиту, яке буде виводиться в звіті;

- обмеження поля, Вказуємо доступність даного реквізиту;

- обмеження реквізитів, Вказуємо доступність дочірніх елементів, важливо, якщо вказана доступність реквізитів, то і саме поле буде доступно, можливо в майбутніх релізах змінять цю механіку;

- вираз, за \u200b\u200bяким обчислюється уявлення поле, Зручно використовувати, коли нам потрібно змінити трохи висновок реквізитів, наприклад, нам потрібно, щоб після імені номенклатури виводився склад, На якому знаходиться вона, тоді заповнимо наступне: Номенклатура + "знаходиться на складі" + Склад. Повторюся, що звернення реквізитами здійснюється через назву, зазначену в колонці шлях;

- вираз упорядкування, Зручний механізм настройки упорядкування звіту, де умова можна задати вручну, аналогічно попередньому пункту, але як показує практика, часто цей механізм працює не так, як хотілося б, і раджу користуватися стандартною сортуванням;

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

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

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

Зв'язки набору даних в 1С СКД

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