Створення макету звіту СКД 1С 8.2. Макети СКД. Обмеження використання макетів


Ключові слова: Універсальний звіт, Загальний звіт, Звіт Залишки І Обороти, Звіт Список Крос Таблиця, Залишки та Обороти, Список крос / таблиця

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

Структура універсальних звітів

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

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

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

  • «Виводити Показники В рядку» – бульово, вказує на можливість виводити угруповання в один рядок
  • «ВиводитиДодатковіПоляВокремійКолонці» - булеве, якщо в налаштуваннях звіту вказані додаткові поля їх потрібно виводити в різних колонках

  • «ВиводитиПідсумкиПоВсемУровням» – бульово, для деяких угруповань можна спеціально заборонити виводити цифри за показниками, даний реквізит знімає цю заборону
  • «Показувати заголовок» – бульова, вказує виводити або не виводити заголовок на екран (регулюється кнопкою «заголовок» на формі звіту)

  • Таблична частина «Показники» - містить у собі список показників, що виводяться на екран.

  • У звіті «Список крос / таблиця (ЗвітСписокКросТаблиця)»:
  • «Використовувати інтервальні угруповання (Використовувати Інтервальні угруповання)» - Булев, вказує на можливість виводити дані по інтервалам періодів
  • Таблична частина «Інтервали» - містить у собі список інтервалів

Форми універсального звіту:
"ФормаОсновна" - основна форма виведення даних.
Реквізити «ФормаОсновна»:
  • «ЗвітОб'єкт» - основний об'єкт звіту, посилання на «ЗвітЗалишкиІОбороти» або «ЗвітСписокКросТаблиця»

  • У модулі форми містяться такі змінні:
  • «ВисотаЗаголовка» - число, кількість рядків у заголовку, ця змінна використовується для, коли потрібно приховати/відобразити заголовок звіту в табличному документі
  • «ІдентифікаторВікнаРозшифровки»

  • «ФормаНалаштування» - посилання на форму налаштування
  • «НеЗаполнятьНастройкиПриОткрытии» - бульова, змінна використовується, коли не потрібно заповнювати початкові налаштування звіту. При першому відкритті змінна дорівнює БРЕХНЯ, при розшифровці звіту змінна буде встановлена ​​в ІСТИНА

  • «СтруктураЗвязкиЕлементівЗДаними» - структура, що містить дані вказівку яким елементам форми відповідають реквізити звіту

  • Елементи форми «ФормаОсновна»:
  • «Командна ПанельФорми» – містить кнопки форми, що управляють:
    o Меню «Підменю» (Дії) – містить список можливих дій форми
    o Кнопка «Сформувати» – при натисканні формує звіт
    o Кнопка «Відбір» – відкриває/закриває панель відбору
    o Кнопка «Заголовок» – відкриває/закриває в табличній частині рядка із заголовком звіту
    o Кнопка «Налаштування» - відкриває форму налаштувань звіту
    o Кнопки «ВідновитиНалаштування», «ЗберегтиНалаштування» - зберігають та відновлюють налаштування звіту
    o Кнопка «Довідка (Дія1)» – викликає довідку по звіту
  • "Період з: (ДатаНач)", "по: (ДатаКон)" - поле введення, введення дати початку/закінчення вибору даних для звіту

  • «Розділ обліку (Ім'яРегістра)» - поле вибору, найменування регістру за яким формується звіт
  • «ПанельОтбор» - панель, на якій розміщуються елементи для реалізації механізму швидкого доступу до відборів звіту

  • "ДокументРезультат" - табличний документ, куди виводяться дані звіту
Модуль форми «ФормаОсновна»:
Перерахуємо процедури:
  • «Передвідкриття» - обробник події перед відкриттям форми. Містить код, який виконується для ініціалізації початкових налаштувань звіту. Відновлює збережені дані, реквізит "Ім'яРегістра"

  • «ПріВідкриття» - обробник події під час відкриття форми
  • «ОновитиЗвіт» - процедура формує звіт та оновлює табличний документ «ДокументРезультат»

  • "Відобразити Відбір" - відобразити/приховати панель форми відбору
  • «Заповнити Об'єкт за діалогом» - заповнює реквізити звіту з реквізитів форми

  • «ЗаповнитиДіалогПоОб'єкту» - заповнення реквізитів форми за реквізитами звіту
  • «Висновок» - висновок заголовка звіту

  • "СформуватиЗаголовокФорми" - формує текст заголовка
  • "Після ВідновленняЗначень" - після відновлення значень на формі. У цю процедуру - обробник події форми можна вставити код, який буде виконувати встановлення значень реквізитів звіту та форми після відкриття форми звіту. Значення, що зберігаються, зазвичай поміщаються в реквізит Збережені Налаштування і після відновлення форми всі налаштування поміщаються в реквізит Збережені Налаштування

  • «ПередЗбереженнямЗначень» - обробник – події форми, виконується при закритті форми та збереженні значень з реквізиту
  • «Обробка Оповіщення» - обробник оповіщення

  • «КнопкаНалаштуванняПеріодуНатискання», «ПолеНалаштування1ПриЗміні», «ПолеНалаштування1ПриЗміні», «ПолеНалаштування1ПриЗміні», «ПолеВиглядуПорівняння1ПриЗміні» - обробники подій елементів форми
  • «ДокументРезультатОбробкаРозшифрування» - обробник події "Обробка розшифрування" поля табличного документа «ДокументРезультат»

«ФормаНалаштування» - форма призначена для налаштування звіту, що викликається при натисканні кнопки «Налаштування» в основній формі звіту.
Реквізити «ФормаНалаштування»:
  • «ЗвітОб'єкт» - звіт, посилання на «ЗвітЗалишкиІОбороти» або «ЗвітСписокКросТаблиця»


  • «Викликаючий Звіт» - тип довільний
  • «Інтервальне Угруповання» - тип рядок

  • "ІнтервальнеПоле" - тип довільний
  • "Відібрані інтервали" - тип таблиця значень. Пов'язаний із елементом форми «Відібрані Інтервали» на закладці «Інтервали угруповань»

Елементи «ФормаНалаштування»:
"Панель звіту (ПанельЗвіту)" містить наступні закладки:
Закладка «Загальні» містить елементи:
  • "Період з: (ДатаНач)", "по: (ДатаКон)" - поле введення, дата початку та закінчення вибірки даних зі звіту. Дані пов'язані з реквізитами звіту «ДатаНач» та «ДатаКон»

  • "Розділ обліку (Ім'яРегістра)" - поле вибору, дані елемента пов'язані з реквізитом звіту "Ім'яРегістра", містить ім'я регістру за яким формується звіт. Якщо «ФормаНалаштування» викликається із зовнішнього звіту, тоді це поле недоступне для перегляду та зміни
  • «Використовувати властивості та категорії (Використовувати Властивості І Категорії)» - прапорець, встановлює прапор використання властивостей та категорій об'єктів, дані цього прапорця пов'язані з даними реквізиту звіту «Використовувати Властивості І Категорії»

  • "Розфарбовувати Вимірювання" - прапорець, дані пов'язані з реквізитами звіту "Розфарбовувати Вимірювання", якщо прапорець встановлений тоді рівні угруповань виведені в табличний документ будуть виділені кольорами
  • «Виводити підсумки за всіма рівнями (ВиводитиПідсумкиПоВсьомуРівням)» - прапорець, якщо встановлений, тоді в табличний документ виводяться підсумки за всіма рівнями угруповань, пов'язаний з реквізитом звіту «ВиводитиПідсумкиПоВсімРівням»

  • «Виводити в різних колонках (Виводити в різних колонках)» - прапорець, за замовчуванням значення показників виводяться в одному осередку, при встановленні даного прапорця значення показників будуть виводитися в двох осередках
  • «Список Показників (Показники)» - таблична частина, що містить список показників

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

  • У звіті «Список/крос таблиця (ЗвітСписокКросТаблиця)»:
  • «ВимірюванняКолонки (ПобудовачЗвіту. ВимірюванняКолонки)» - тип ВимірюванняПобудовачаЗвіту, вимірювання, що відкладаються по колонках звіту

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

  • «Відібрані інтервали» - таблиця значень. При зміні "Найменування (Інтервальне Поле)" заповнюється список вибраних інтервалів
Закладка «Відбір»:
  • «Відбір (ПобудівникЗвіту.Відбір» - тип Відбір. Відбір будівельника звітів

Закладка «Поля»:
  • «ВибраніПоля» - тип ПоляПобудователяЗвітів. Поля для виведення у звіт

  • «Виводити додаткові поля в окремій колонці (ВиводитиДодатковіПоляВокремійКолонці)» - прапорець, при установці виводить поля в окремих колонках
Закладка «Сортування»:
  • «Порядок (ПобудівникЗвіту.Порядок)» - тип Порядок. Сортування угруповань у звіті

Модуль «ФормиНалаштування» містить наступні процедури та обробники подій:
  • «ЗаповнитиДіалогПоОб'єкту» - заповнює діалог за значеннями реквізитів звіту

  • "ПередВідкриттям" - обробник події "Перед відкриттям" форми звіту
  • «Ім'яРегістраПриЗміні», «КнопкаНалаштуванняПеріодуНатискання», «ОсновніДіїФормиОК», «ВикористовуватиВластивостіІКатегоріїПриЗміні», «КоманднаПанельСписокПоказниківВстановитиВсі», «КоманднаПанельНапис , «ВідбірПередВидаленням», «ДатаНачПіЗміні», «ДатаКонПріЗміні» - обробники подій відповідного елемента форми

  • У модулі форми також ініціалізується змінна СписокРегістрів (функція ОтриматиСписокРегістрівЗалишків) та вказується як список для вибору елемента форми «Розділ обліку (Ім'яРегістра)»

  • У звіті «Список/крос таблиця (ЗвітСписокКросТаблиця)»:
  • «ВідібратиІнтервали» - процедура формуємо список відібраних інтервалів у реквізиті «ВідібраніІнтервали», що викликається при зміні поля вибору «Найменування (ІнтервальнеПоле)»
  • «ВставитиІнтервалиПоІмені» - процедура викликається перед формуванням звіту, що заповнює табличну частину «Інтервали»

  • «КнопкаНалаштуванняПеріодуНатискання» - обробник натискання кнопки налаштування періоду
  • «ПлюсПеріодНатискання», «МінусПеріодНатискання» - обробник натискання кнопки «+», «-» періоду

  • «ІнтервальнеПолеПриЗміні», «ВідібраніІнтервалиПісляВидалення», «ВідібраніІнтервалиПриЗакінченніРедагування», «ВідібраніІнтервалиВКордонПриЗміні» - обробники подій елементів закладки «Інтервали угруповань»

  • У модулі форми ініціалізується поле вибору «Інтервальне поле».
Модуль об'єкта звіту:
Змінні модулі, що впливають на формування звіту:
  • «мТаблицяПоказники» - таблиця значень, містить усі можливі показники, за замовчуванням заповнюється показниками з табличної частини «Показники»

  • «НП» - налаштування періоду, що використовується при виклику «КнопкаНалаштуванняПеріоду»
  • «мВідповідністьПризначень» - відповідність, що містить призначення властивостей та категорій імен

  • «МСтруктураЗв'язку ПоказниківВимірювань» - відповідність, містить зв'язок показників та вимірювань. Використовується коли потрібно виводити значення певних показників лише у рядках із певними угрупованнями
  • «мМассивШиринКолонок» - масив ширин колонок табличного документа задля збереження між формуваннями звіту. Використовується при оновленні звіту, щоб зберігати ширину колонок, у тому числі і ту, яку встановив користувач

  • "ПочатковийМакетЗвіту" - макет, що використовується для звіту, за замовчуванням "Макет", але може бути перевизначений. Змінна потрібна якщо передбачається використовувати макет, відмінний від вихідного макету універсального звіту «Макет»
  • «мНазваЗвіту» - рядок, назва звіту

  • «мВибирати Ім'яРегістра» - булеве, ознака вибору (зміни) імені регістру (виду звіту), впливає на видимість елемента форми налаштування «Розділ обліку (Ім'яРегістра)»
  • «мВибиратиВикористанняВластивостей» - бульова, ознака вибору (зміни) прапорця використання властивостей та категорій

  • «СтруктураФорматаПолей» - структура, що зберігає формат полів примітивних типів, використовується для форматування полів типу дата у рядковому поданні
  • «МСтруктураДляОтборуПоКатегоріям» - структура, призначена для зв'язку відборів Побудовача з категоріями з таблиць, що з'єднуються

  • У звіті «Список/крос таблиця (ЗвітСписокКросТаблиця)»:
  • «МСтруктура Невиводимих ​​Угруповань» - структура, що зберігає список тих угруповань, які не треба виводити. Застосовується в тих випадках, коли потрібно пропускати підсумки, наприклад, Номенклатура - Характеристика - Серія: підсумки по номенклатурі не потрібні, потрібно тільки для всіх трьох
  • «Відповідність Типів Інтервальних Полів» - відповідність

Процедури та функції модуля звіту:
  • "Заповнити Початкові Налаштування" - процедура заповнює початкові налаштування звіту. Викликається у модулі форми звіту перед відкриттям форми (обробник події «Перед Відкриттям»)

  • «Обробка Розшифрування Стандартного Звіту» - процедура, що викликається обробником події "Обробка розшифрування" поля табличного документа «ДокументРезультат»
  • «Заповнити Поля Основного Реквізиту» - процедура, що викликається при ініціалізації основної форми звіт (модуль форми)

  • «Налаштувати» - процедура, яка налаштовує звіт за переданою структурою параметрів, викликається при розшифровці звіту
  • «ОтриматиПобудівникЗвіту» - функція, що повертає будівельник звіту

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

  • «Сформувати Звіт» - виконує запит та формує табличний документ-результат звіту

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

  • «ВивестиКолонкуШапки» - процедура, виводить шапку таблиці
  • «ВивестиПоказники» - процедура, що виводить показники в рядок звіту

  • «Отримати Показники» - процедура, що отримує значення показників для виведення в таблицю
  • «ВивестиСтроку» - виводить рядок звіту

У звіті «Залишки та обороти (Звіти ЗалишкиІОбороти)» містяться такі макети:
"Макет" - є макетом для виведення інформації в табличний документ "ДокументРезультат", що складається з наступних секцій:
  • «Заголовок» - горизонтальна секція, що містить осередки в які виводиться інформацію щодо найменування звіту, періоду формування, списку виведених показників та угруповань

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

  • «Рядок Ієрархії» - горизонтальна секція виводиться лише у випадку якщо спосіб виведення угруповання довідників «за ієрархією», виводить групу елементів довідника
  • «Рядок» - горизонтальна секція, виводити рядок угруповання

  • «РядокДеталі» - горизонтальна секція, якщо в налаштуваннях вказано виводити додаткові поля, в цей рядок виводяться додаткові поля
  • «ЗагальніПідсумки» - горизонтальна секція, у цей рядок виводяться загальні підсумки

  • «Оформлення Вимірювань» - горизонтальна секція містить оформлення вимірювань, якщо в налаштуваннях встановлений прапорець «Розфарбовувати Вимірювання» для виведення угруповань і полів на різних рівнях використовуються налаштування оформлення осередків з секції «Оформлення Вимірювань»
  • «Оформлення деталей» - горизонтальна секція містить оформлення деталей

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

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

Побудова власних вихідних форм на підставі універсальних (загальних) звітів

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

Основна форма

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

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

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

  • «ОновленняВідображення» - процедура, обробник оновлення даних форми
  • Перед відкриттям форми викликається процедура модуля звіту користувача «Заповнити ПочатковіНалаштування», виконується відновлення значень параметрів форми та зв'язок між елементами форми та відборами будівельника звітів: «Встановити Зв'язокПолівШвидкогоВідборуНаФормі»

  • «ПріВідкриття» - процедура-обробник події при відкритті форми

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

  • У всіх звітах, заснованих на ОіО або СКТ, збереження параметрів налаштувань реалізовано наступним чином. У властивостях форми вказується «Зберігати значення» та у списку «Збережені значення» вибирається реквізит «Збережені Налаштування». У обробник події "Перед збереженням значень", "Після відновлення значень" вставляють код, який викликає процедури модуля загального звіту: "Сформувати Структуру Для Збереження Налаштувань" для збереження налаштувань і "Відновити Настройки Із Структури" для відновлення налаштувань звіту. Структура налаштувань вже описувалася у розділі про універсальні звіти
    Приклад використання:
    Після формування звіту користувачі можуть настроювати ширину колонок табличного документа (натискаючи Ctrl + позиціонуючи ширину курсором миші). У загальних звітах масив ширин колонок зберігається у зміною мМассивШиринКолонок, при оновленні звіту ширина колонок налаштовується з даних що зберігаються у цьому масиві. Завдання полягає в тому, щоб при закритті звіту зберігати масив ширин колонок, а після відкриття звіту відновлювати ширини колонок, оскільки це було задано користувачем перед закриттям. Для цього в обробник події перед збереженням значень форми «ПередЗбереженнямЗначень» у структурі «Збережені Налаштування» додаємо масив, який сформований таким чином:
// Запам'ятовувати слід, якщо документ неЯкщо Елементи Форми. КінецьЦикл; КінецьЯкщо; ЗбереженіНалаштування.Вставити("МасивШирінКолонок
", МасивШирінКолонок);
У процедурі-обробнику «Після ВідновленняЗначень» вносимо наступний код: КінецьЦикл; КінецьЯкщо; ЗбереженіНалаштування.Вставити("ЦейЗвіт.ВідновитиНалаштуванняЗСтруктури(ЗбереженіНалаштування, ПоказуватиЗаголовок); ЗбереженіНастройки.Властивість(" ", Загальний Звіт.мМасивШирінКолонок);
  • // Відновлюємо масив ширин колонок
  • «Обробка Оповіщення» – процедура-обробник повідомлень. Використовується для оновлення елементів відбору на формі, якщо змінилися налаштування відборів у будівнику звіту під час виклику форми налаштування

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

    • «УправлінняПараметрамиВідображенняЕлементівФорми» - керує позначками кнопок на панелі інструментів

    • «ОновитиЗвіт» - оновлює таблицю звіту, що викликається при натисканні кнопки «Сформувати», а також коли потрібно прибрати/задати заголовок звіту (кнопка «Заголовок»), в останньому випадку виводиться лише заголовок звіту У процедурі міститься виклик процедури модуля звіту «СформуватиЗвіт»
    • «ВиводЗаголовка» - процедура – ​​керує виведенням заголовка, викликає з модуля звіту процедуру «Сформувати Звіт»

    • «СформуватиЗаголовокФорми» - процедура, що налаштовує заголовок форми, викликає функцію загального модуля «СформуватиЗаголовокОсновноїФорми». Заголовок, що повертаються даною функцією складається з назви звіту, дати початку та дати закінчення формування звіту. Як правило, «Сформувати ЗаглувокФорми» викликає обробник події оновлення відображення форми

    Модуль звіту

    Розглянемо модуль звіту користувача. Найважливіша процедура модуля звіту «Заповнити Початкові Налаштування», ця процедура викликається перед відкриттям форми та містить команди, які налаштовують список показників, угруповань, відбори та порядок, які будуть присутні у звіті:
    • Ініціалізація змінних:
      «СтруктураПодання Полів» - структура, до якої заносяться уявлення полів, де ключ – ім'я показника/угруповання/поля з джерела даних, а значення текстове уявлення показника/угруповання/поля.
      Приклад використання:
      СтруктураПоданняПолів.Вставити(" Характеристика Номенклатури", "Характеристика номенклатури"); СтруктураПоданняПолів.Вставити(" ДокументПідстава", "Документ-основа");
      «МасивВідбору» - масив відбору, масив якого включаємо відбори, які присутні в налаштуваннях звіту за замовчуванням.
      Приклад використання:
      Додаємо два відбори за номенклатурою та складом, ці відбори можна пов'язати з елементами в панелі відборів основної форми. При внесенні елементів швидкого доступу до відборів на формі звіту, в налаштуваннях звіту бажано додавати імена цих відборів до «МасивВідбору»
      МасивОтбору.Додати("Номенклатура"); МасивОтбору.Додати("Склад");
    • Параметри звіту:
      «Загальний Звіт. Ім'я Реєстру» – якщо звіт формуємо на підставі певного регістру, тоді вказуємо ім'я цього регістру.
      «ЗагальнийЗвіт.мНазваЗвіту» - назва звіту, яка виводиться в заголовок табличного документа.
      Приклад використання:
      Загальний Звіт.Ім'яРегістра = " ТовариНа Складах"; ЗагальнийЗвіт.мНазваЗвіту = " Аналіз доступності товарів на складах";
    • Запит для будівельника звіту:
      У звітах передбачено формування тексту запиту для побудовника на підставі трьох джерел: метаданих регістру, макета та безпосередньо надавати текст запиту до побудовника звітів.
      - Запиту на підставі метаданих регістру
      Якщо ми вказали найменування регістру в «Загальний Звіт.Ім'яРегістра», то викликавши процедуру «ЗаповнитиПочатковіНалаштуванняЗаМетаданимРегістра» ми можемо заповнити налаштування побудовника запиту та реквізити загального звіту
      Приклад використання:
      Формує текст запиту до регістру «Товари на складах» та заповнює налаштуваннями реквізити загального звіту:
      Загальний Звіт.Ім'яРегістра = " ТовариНа Складах"; ЗаповнитиПочатковіНалаштуванняЗаМетаданимРегістра(СтруктураПоданняПолів, МасивВідбору, ЗагальнийЗвіт," СписокКросТаблиця");
      - Запиту на підставі макета
      Як уже описано в розділі «Структура універсальних звітів», параметри налаштування звіту можна вказувати у спеціально розробленому макеті. Зручність макета в тому, що можна регулювати виведення показників, угруповань і полів, не вдаючись до побудови запиту через конструктор.
      Приклад використання:
      Побудовач Звіту = Загальний Звіт. ЗаповнитиПочатковіНастройкиПоМакету(ОтриматиМакет(" ПараметриЗвітівТовариОрганізацій"), СтруктураПодання Полів, МасивВідбору, Загальний Звіт, " СписокКросТаблиця");
      - Вказівка ​​запиту як джерело даних побудовника звітів
      Використовуючи універсальні звіти для формування вихідних форм користувача, можна скласти свій запит і вказати його текст як джерело для будівельника звітів. Даний метод дуже зручний тим, що можна будувати запити, будь-якої складності та структури.
      Приклад використання:
      ПобудовачЗвіту.Текст = " ВИБРАТИ | ПродажіОбороти.Номенклатура ЯК Номенклатура, | Продажі Обороти. Вартість Оборот ЯК Вартість Оборот | (ВИБРАТИ | Номенклатура. *, | Продажі Обороти. Характеристика Номенклатури. * | РеєстрНакопичення.Продажі.Обороти(&ДатаНач, &ДатаКон,) ЯК ПродажіОбороти |//СПОЛУЧЕННЯ |ЗГРУПЮВАТИ ПО | ПродажОбороти.Номеклатура | //ЗГРУПУВАТИПО|(ДЕ | ПродажіОбороти.Номенклатура.*, | ПродажіОбороти.ХарактеристикаНоменклатури.* |//ВЛАСТИВОСТІ |//КАТЕГОРІЇ |) |(УПОРЯДОЧИТИ ПО | Номенклатура.*, | ПродажіОбороти.ХарактеристикаНоменклатури.* | СУМА (Вартість Оборот) | ПО | ЗАГАЛЬНІ, | Номенклатура |(ПІДСУМКИ ПО | ПродажіОбороти.Номенклатура.*, | ПродажіОбороти.ХарактеристикаНоменклатури.* |//ВЛАСТИВОСТІ |)"
      При формуванні запитів, слід дотримуватися кількох правил:
      o У запиті можна вказати два наперед визначені параметри: «ДатаНач» і «ДатаКон», до яких передається значення відповідних реквізитів звіту. Дані параметри використовуються для обмеження вибірок даних по періоду.
      o У звіті завжди повинні бути загальні підсумки: «ПІДСУМКИ … ЗА ЗАГАЛЬНІ»
      o Для того, щоб можна було керувати налаштуваннями звіту з форми налаштування, потрібно обов'язково вказувати відповідні налаштування для побудовника звітів, у фігурних лапках «(» та «)» або на закладці «Побудовач» конструктора запитів.
      o У запиті можна вказати спеціальні директиви: «//ВЛАСТИВОСТІ», «//КАТЕГОРІЇ», «//З'ЄДНАННЯ», «//ЗГРУПУВАТИПО». Далі за допомогою процедури «ДодатиВТекстВластивостіІКатегорії» в запит додаються вибірки полів властивостей, категорій об'єктів.
      Приклад використання:
      У запиті, наведеному вище директивою «//ВЛАСТИВОСТІ» ми вказуємо на те, що в текст запиту потрібно додати вибірку, угруповання та умови за властивостями об'єктів, «//КАТЕГОРІЇ» - додаємо умову за категоріями, а за допомогою «//З'ЄДНАННЯ» ми забезпечуємо з'єднання з регістром відомостей «Значення ВластивостейОб'єктів», «//ЗГРУПУВАТИПО» - групуємо за вибраними властивостями об'єктів
    • Процедури заповнення полів будівельника звіту:
      Після того, як було сформовано запит, потрібно заповнити відповідні реквізити будівельника звітів та загального звіту.
      У масиві «МасивВідбору» вносимо масив відборів, для заповнення відборів у будівнику звітів використовуємо процедуру «Заповнити Відбір».
      Якщо ми плануємо використовувати властивості та категорії, ми повинні додати виконати процедуру «ДодатиВТекстВластивостіІКатегорії».
      Приклад використання:
      ДодатиВТекстВластивостіІКатегорії(ТаблицяПолів, Текст, СтруктураУявленняПолів, мВідповідністьПризначень, СтруктураПараметри, ТекстДовідки="", ТекстПоляКатегорій="", ТекстПоляВластивостей="", ТекстПоляСгрупувати //ВЛАСТИВОСТІ", ЗамінюватиКатегорії = "//КАТЕГОРІЇ",Замінювати З'єднання = " //З'ЄДНАННЯ", ЗамінюватиЗгрупуватиПо = "//ЗГРУПУВАТИПО",ІдентифікаториПараметрівДляВідборівЗаКатегоріями = "") Експорт
      Для заповнення уявлень полів «Заповнити Подання Полів» також можна скористатися процедурою «Заповнити Подання».
      Приклад використання:
      ЗаповнитиПодання("Номенклатура", "Номенклатура", ІСТИНА, ІСТИНА); ЗаповнитиПодання(" Характеристика Номенклатури", "Характеристика номенклатури", Брехня, Брехня);
    • Додаткові процедури з налаштування звіту:
      «ОчиститиДодатковіПоляПобудовача» - обов'язкова процедура, що видаляє показники, угруповання з реквізиту «ПобудовачЗвіту.ВибраніПоля»
      «Загальний Звіт. Виводити Показники В рядку = Істина» - виводить показники в рядок
      «МСтруктураЗв'язку ПоказниківВимірювань» - заповнити структуру зв'язку показників та вимірювань
      Приклад використання:
      Потрібно виводити показник «Кількість залишків» тільки для вимірювання «Номенклатура» та «Характериста Номенклатури»:
      Загальний Звіт. м Структура Зв'язку Показників І Вимірювань. Вставити (" КількістьЗалишок"Новий Структура(«Номенклатура,ХарактеристикаНоменклатури»));
      Якщо потрібно виводити всі підсумки незалежно від налаштування структури «Структура Зв'язку Показників Вимірювань» встановлюємо наступний реквізит:
      Загальний Звіт.
      Якщо потрібно пропустити деякі угруповання, тоді слід заповнити структуру «Структура Невиводимих ​​Угруповань».
      Приклад використання:
      Потрібно виводити виміри «Характеристика номенклатури» разом з виміром «номенклатура», для цього додаємо наступний виклик функції
      ЗагальнийЗвіт.мСтруктураНевиводимихГрупувань.Вставити("Номенклатура ",Новий Структура(" Характеристика Номенклатури"));
      У результаті звіт буде виведено вимірювання розділені комою: «Номенклатура, Характеристика номенклатури»

    • Інші процедури модуля звіту аналогічні процедурам універсальних звітів b описані в розділі «Універсальні звіти». На що варто звернути увагу, так це на параметри в запиті, перед формуванням звіту (процедура «Сформувати Звіт») слід вказати ці параметри для будівельника звіту:
      Приклад використання:
      ПобудовачЗвіту.Параметри.Вставити(Ім'яПараметра,ЗначенняПараметра);

    Висновок

    Використовувати ОіО і СКТ для формування вихідних форм користувача досить просто, якщо правильно скласти в конструкторі запит і передати його будівельнику, ми отримаємо готовий звіт. Також, великий плюс використання загальних звітів, це уніфікація виведення даних на форму звіту, гнучкі налаштування угруповань, відборів та сортування, подання вимірювань та показників.
    Практика показує, що 90% функціоналу для формування будь-якої форми користувача реалізовано в універсальних звітах, також можна брати за основу вже готові типові звіти і "допрацьовувати" їх під вимоги замовників.

    Список посилань

    Нижче наведемо список деяких посилань на статті "Книги знань" (

    Пісочниця

    Леонід Якубович 23 серпня 2011 о 10:22

    Макети в 1С 8.2 – це не складно (Частина 1 – Створення макета)

    Допустимо, Вам необхідно вивести подібний звіт:

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


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

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

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

    Для кожної області необхідно присвоїти відповідне ім'я, для цього необхідно виділити потрібну область (у даному випадку всі області є групою рядків) і натиснути на кнопку з піктограмою, або комбінацію клавіш Ctrl+Shift+N. У вікні потрібно вписати ім'я даної області. Назвемо області так, як вони вказані на малюнку.
    Тепер ті осередки таблиці, в яких повинні виводитися дані з інформаційної бази, необхідно позначити як шаблон, що містить. Для цього виділяється це поле, і в контекстному меню (права кнопка миші) вибирається «Властивості». У списку, що випадає, властивості осередку «Заповнення» необхідно вибрати «Шаблон» (приклад на малюнку нижче).

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

    Мене звуть [Моє Ім'я],

    То для виведення тексту «Мене звуть Іван» достатньо параметра "Моє ім'я"присвоїти значення "Іван".
    У нашому випадку шаблоном буде дата виведення звіту, а також усі стовпці з рядка, що містить дані співробітника. У результаті після всіх маніпуляцій макет звіту виглядатиме так:

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

    Теги: 1С 8, макет, звіти, макети

    Розглянемо створення зовнішнього звіту 1с 8 без використання системи компонування даних. Для створення зовнішнього звіту будемо використовувати конфігурацію Бухгалтерія 2.0. Контрагентіві Договорів контрагентів.

    1. Створення звіту

    Насамперед створимо файл зовнішнього звіту, для цього зайдемо в 1с 8 в режимі Конфігуратор, перейдемо в меню Файл -> Новий, або натиснемо на піктограму новий документ.

    У списку оберемо пункт Зовнішній звіт. Після створення зовнішнього звіту задамо йому Ім'я (наприклад НайпростішийЗвіт) і збережемо його на диск. Також додамо два реквізити: Початок періодуі КінецьПеріодутипу Дата, вони знадобляться нам для обмеження часового інтервалу вибірки даних для формування звіту.

    2. Створення макету зовнішнього звіту

    p align="justify"> Для формування звіту в 1с 8 потрібен макет, це шаблон для виведення даних в якому задаються всі потрібні параметри, малюються таблиці і т.д. Додамо новий макет, для цього в дереві метаданих звіту виберемо пункт Макетита натиснемо кнопку Додати, при створенні оберемо для макета тип Табличний документ.

    У нашому макеті буде 4 області:

    • Шапка - в цю область ми виводитимемо найменування звіту, період за який він сформований і шапку таблиці;
    • Дані Контрагент - в цю область ми виводимо в таблицю дані по контрагенту;
    • ДаніДоговірКонтрагенту - в цю область ми виводимо в таблицю дані за договором контрагента;
    • Підвал — в цю область ми виводитимемо підсумкові значення по всьому звіту для полів Прихід та Витрата.

    Приступимо до створення областей макета. Для того щоб створити область в макеті виділіть потрібну кількість рядків і натисніть Меню Таблиця -> Імена -> Призначити ім'я(Або Ctrl+Shift+N). В область Шапканапишемо найменування звіту: Оберти 62 рахунки, намалюємо за допомогою інструмента Межішапку звіту, а також задаємо параметри Початок періодуі КінецьПеріоду. За допомогою параметрів у звіт можна виводити потрібні дані, ми будемо займатися цими на наступному етапі розробки, а саме при написанні програмного коду звіту. Щоб створити параметр у макеті виберіть потрібну комірку, напишіть у ній найменування параметра (без пробілів), клацніть по ній правою кнопкою миші, у меню виберіть пункт Властивості. У властивостях комірки на закладці Макетвиберіть заповнення Параметр.

    Після цього, в комірці ім'я параметра буде поміщено у кутові дужки(”<>“). У результаті область Шапкамає виглядати так:

    В області ДаніКонтрагентстворимо параметри для виведення найменування контрагента, а також для приходу та витрати за рахунком 62, за допомогою інструмента Межіоформимо область у вигляді рядка таблиці.

    В області ДаніДоговірКонтрагентустворимо параметри для виведення найменування договору, а також для приходу та витрати за рахунком 62, за допомогою інструменту Кордони оформимо область у вигляді рядка таблиці. Зробимо невеликий відступ перед параметром ДоговірКонтрагенту(це можна зробити за допомогою розбиття та об'єднання осередків. Правою кнопкою миші по комірці -> Об'єднатиабо Розбити комірку), він необхідний щоб у звіті було видно, що рядок за договором знаходиться нижче за ієрархією ніж рядок за контрагентом.

    В області Підвалстворимо параметри для підсумків по приходу та витраті.

    У результаті ми маємо отримати такий макет:

    3. Створення форми звіту

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

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

    У результаті в нас вийде така форма:

    Але в такому вигляді вона нас не влаштовує, внесемо до неї деякі зміни:

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

    У результаті наша форма матиме такий вигляд:

    4. Програмування

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

    Перемикатися між формою та її модулем можна за допомогою закладок внизу форми

    Для виклику форми вибору періоду скористаємося типовою процедурою Бухгалтерії 2.0із загального модуля РоботаСДіалогами — ОбробникНалаштуванняПеріодуНатискання, до неї як параметри потрібно передати реквізити звіту Початок періодуі КінецьПеріоду.

    Процедура Кнопка1Натискання(Елемент)Робота з Діалогами. КінецьПроцедури

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

    ТабДок = ЕлементиФорми.ТабДок;

    Отримаємо макет зовнішнього звіту, скориставшись функцією ОтриматиМакет(<ИмяМакета>) , параметр йому передамо ім'я макета, і якщо такий макет існує, то функція його знайде.

    Макет = ОтриматиМакет("Макет");

    Після того, як макет отримано, створимо змінні для кожної з його областей, скористаємося для цього методом макета ОтриматиОбласть(<ИмяОбласти>) .

    ОбластьШапка = Макет.ОтриматиОбласть("Шапка"); ОбластьДаніКонтрагент = Макет.Отримати Область( "ДаніКонтрагент"); ОбластьДаніДоговір = Макет.ОтриматиОбласть("ДаніДоговір"); ОбластьПодвал = Макет.ОтриматиОбласть("Подвал");

    Очистимо поле табличного документа. Це необхідно для того, щоб при кожному новому формуванні звіту старі дані видалялися.

    ТабДок.Очистити();

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

    ОбластьШапка.Параметри.ПочатокПеріоду = ПочатокПеріоду; ОбластьШапка.Параметри.КінецьПеріоду = КінецьПеріоду;

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

    ТабДок.Вивести(ОбластьШапка);

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

    Запит = новий Запит;

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

    Запит.ВстановитиПараметр("Рахунок62" ,ПланиРахунків.Госпрозрахунковий.ЗнайтиПоКоду("62" ));

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

    Запит.ВстановитиПараметр("ПочатокПеріоду", ПочатокПеріоду); Запит.ВстановитиПараметр("КінецьПеріоду",КінецьПеріоду);

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

    Запрос.Текст = "";

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

    Тепер необхідно вибрати потрібну нам таблицю бази даних 1С 8. Нам потрібна віртуальна таблиця Оборотирегістра бухгалтерії Госпрозрахунковий. Знайдемо її у лівій частині вікна конструктора

    Перемістимо її в область Таблиціі займемося заповненням параметрів. Для всіх віртуальних таблиць запиту є спеціальний набір параметрів, що дозволяють вибирати потрібні дані з основної таблиці (у нашому випадку основна таблиця Регістр бухгалтерії Госпрозрахунковий). Відкриємо вікно параметрів віртуальної таблиці.

    Заповнимо параметри, періоду яких ми передали на запит. Щоб у тексті запиту використовувати параметр, слід перед його ім'ям писати символ. амперсанда(&)

    Залишилося заповнити умову за рахунком бух. обліку. Для цього знайдемо у параметрах віртуальної таблиці рядок Умова Рахункуі напишемо там

    Рахунок В ІЄРАРХІЇ (&Рахунок62)

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

    Більше ніяких умов на віртуальну таблицю не потрібно накладати, тому натиснемо кнопку ОКу вікні параметрів віртуальної таблиці. Далі необхідно вибрати потрібні нам поля з таблиці Госпрозрахунковий.(а саме: Контрагент, Договір контрагента, Прихід та Витрата). Щоб переглянути список полів доступних у вибраній нами таблиці натисне символ ”+“ біля її назви. Після цього перетягнемо потрібні поля в праву область конструктора запитів, яка так і називається: Поля. Якщо відкрити план рахунків бухгалтерського обліку, ми побачимо, що з рахунку 62 аналітика з Контрагенту - це Субконто1, а за ДоговоруКонтрагенту — Субконто2.

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

    Заповнимо псевдоніми обраних нами полів, для цього перейдемо на закладку Об'єднання/Псевдонімиі поставимо потрібні імена полів.

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

    На цьому роботу в конструкторі запиту завершено, натискаємо кнопку ОКі бачимо, що текст нашого запиту з'явився у програмному коді.

    Запит.Текст = "ВИБРАТИ | ГоспрозрахунковийОбороти.Субконто1 ЯК Контрагент, | ГоспрозрахунковийОбороти.Субконто2 ЯК ДоговірКонтрагенту, | ГоспрозрахунковийОбороти.СумаОборотДт ЯК Прихід, | ГоспрозрахунковийОбороти.СумаОборотКт ЯК Витрата| РеєстрБухгалтерії.Госпрозрахунковий.Обороти(&ПочатокПеріоду, &КінецьПеріоду, Рахунок В ІЄРАРХІЇ (&Рахунок62),) ЯК ГоспрозрахунковийОберти|ПІДСУМКИ | СУМА(Прихід), | СУМА (Витрата) | ПО | Контрагент, | ДоговірКонтрагенту";

    Після того як ми закінчили написання запиту, приступимо до заповнення областей ДаніКонтрагент, ДаніДоговірКонтрагенті Підвал. Всі ці області ми заповнимо даними отриманими під час виконання запиту. Оскільки наш запит містить угруповання( Контрагенті ДоговірКонтрагенту) Виберемо з нього дані наступним чином:

    Вибірка Контрагент = Запит.

    Таким чином ми отримаємо записи з підсумками щодо всіх контрагентів.

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

    РазомПрихід = 0; Підсумок Витрата = 0;

    Для того, щоб дані звіту виводилися з ієрархією (і розворотами по ”+“) задамо початок автоугруповання рядків табличного документа:

    ТабДок.ПочатиАвтоугрупуванняСторок();

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

    Поки ВибіркаКонтрагент.Наступний() Цикл КінецьЦикл ;

    На початку циклу обнулили параметри Парафіяі Витратаобласті ДаніКонтрагент. Для чого це потрібно? Уявімо ситуацію, що за контрагентом Дядя Вася, прихід 10, а витрата 5, а за ним наступного контрагента Дядя Петянемає ні приходу ні витрати, якщо ми не обнулимо параметри Парафіяі Витрата, то у рядку за контрагентом Дядя Петяпотрапить прихід 5 та витрата 10.

    ОбластьДаніКонтрагент.Параметри.Приход = 0; ОбластьДаніКонтрагент.Параметри.Витрата = 0;

    Після цього заповнюємо область ДаніКонтрагентданими елемента вибірки

    ЗаповнитиЗначенняВластивостей(ОбластьДаніКонтрагент.Параметри,ВибіркаКонтрагент);

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

    ТабДок.Вивести(ОбластьДаніКонтрагент,1);

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

    ВибіркаДоговірКонтрагенту = ВибіркаКонтрагент.Вибрати(ОбхідРезультатуЗапиту.Угрупуванням);

    Обхід будемо здійснювати за допомогою циклу Бувай.

    Поки ВибіркаДоговірКонтрагенту.Наступний() Цикл КінецьЦикл ;

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

    ОбластьДаніДоговір.Параметри.Прихід = 0; ОбластьДаніДоговір.Параметри.Витрата = 0; ЗаповнитиЗначенняВластивостей(ОбластьДаніДоговір.Параметри,ВибіркаДоговірКонтрагенту); ТабДок.Вивести(ОбластьДаніДоговір,2);

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

    ПідсумокПрихід = ПідсумокПрихід + Вибір ДоговірКонтрагенту.Прихід; Підсумок Витрата = Підсумок Витрата + Вибір ДоговірКонтрагенту. Витрата;

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

    ТабДок.ЗакінчитиАвтоугрупованняСторок();

    Цілком цикли відповідають за виведення даних в області ДаніКонтрагенті ДаніДоговірКонтрагентвиглядають так:

    ТабДок.ПочатиАвтоугрупуванняСторок(); Поки ВибіркаКонтрагент.Наступний() Цикл ОбластьДаніКонтрагент.Параметри.Прихід = 0 ;

    ОбластьДаніКонтрагент.Параметри.Витрата = 0; ПідвалЗаповнитиЗначенняВластивостей(ОбластьДаніКонтрагент.Параметри,ВибіркаКонтрагент); Табличний документ.

    ТабДок.Вивести(ОбластьДаніКонтрагент,1);

    ВибіркаДоговірКонтрагенту = ВибіркаКонтрагент.Вибрати(ОбхідРезультатуЗапиту.Угрупуванням); Поки ВибіркаДоговірКонтрагенту.Наступний() Цикл ОбластьДаніДоговір.Параметри.Прихід = 0 ;ОбластьДаніДоговір.Параметри.Витрата = 0;

    ЗаповнитиЗначенняВластивостей(ОбластьДаніДоговір.Параметри,ВибіркаДоговірКонтрагенту);

    Пісочниця

    ТабДок.Вивести(ОбластьДаніДоговір,2); 23 серпня 2011 о 10:22

    Макети в 1С 8.2 – це не складно (Частина 1 – Створення макета)

    • ПідсумокПрихід = ПідсумокПрихід + Вибір ДоговірКонтрагенту.Прихід;

    Допустимо, Вам необхідно вивести подібний звіт:

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


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

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

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

    Для кожної області необхідно присвоїти відповідне ім'я, для цього необхідно виділити потрібну область (у даному випадку всі області є групою рядків) і натиснути на кнопку з піктограмою, або комбінацію клавіш Ctrl+Shift+N. У вікні потрібно вписати ім'я даної області. Назвемо області так, як вони вказані на малюнку.
    Тепер ті осередки таблиці, в яких повинні виводитися дані з інформаційної бази, необхідно позначити як шаблон, що містить. Для цього виділяється це поле, і в контекстному меню (права кнопка миші) вибирається «Властивості». У списку, що випадає, властивості осередку «Заповнення» необхідно вибрати «Шаблон» (приклад на малюнку нижче).

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

    Мене звуть [Моє Ім'я],

    То для виведення тексту «Мене звуть Іван» достатньо параметра "Моє ім'я"присвоїти значення "Іван".
    У нашому випадку шаблоном буде дата виведення звіту, а також усі стовпці з рядка, що містить дані співробітника. У результаті після всіх маніпуляцій макет звіту виглядатиме так:

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

    ПідсумокВитрата =РезультатВитрата ВибіркаДоговірКонтрагенту.Витрата;

    Кінець циклу; Кінець циклу; ТабДок.ЗакінчитиАвтоугрупованняСторок();

    Залишилося вивести підсумкові дані до області

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

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

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

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

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

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

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

    Побудова звіту користувачем

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

    Динамічне формування макета

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

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

    Оформлений крос-звіт може мати такий вигляд:

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

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

    Механізм оформлення

    Механізм оформлення дозволяє описувати та запам'ятовувати оформлення звітів (кольори, шрифти, рамки) та використовувати запам'ятовані оформлення для будь-яких звітів, що формуються будівельником звітів та зведеною таблицею.

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

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

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

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

    Умовне оформлення

    Механізм умовного оформлення дозволяє оформлювати звіт динамічно, залежно від значень, що виводяться у звіт. Для налаштування є колір тексту, колір фону, шрифт, формат значення, виділення негативних чисел та інші оформлювальні властивості.

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

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

    додаткова інформація

    Ви можете познайомитись з використанням побудовника звіту в реальному режимі часу. Для цього можна скачати демонстраційний ролик "Приклад розробки торгової міні-системи", в якому показано процес розробки торгової міні-системи з використанням цього об'єкта у звітах "Залишки та обороти", "Аналіз продажу" та "Аналіз продажів за періодами".