Контакти

Макети скд. Макети скд Створення звіту в 1с 8.2 з нуля


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


  • «ВизивающійОтчет» - тип довільний
  • «ІнтервальнаяГруппіровка» - тип рядок

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

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

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

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

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

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

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

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

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

Закладка «Поля»:
  • «ВибранниеПоля (ПостроітельОтчета.ВибранниеПоля)» - тип ПоляПостроітеляОтчетов. Поля для виведення в звіт

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • «СтрокаДеталі» - горизонтальна секція, в разі якщо в настройках вказано виводити додаткові поля, в цього рядка виводяться додаткові поля
  • «ОбщіеІтогі» - горизонтальна секція, до цього рядка виводяться загальні підсумки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    модуль звіту

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

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

    висновок

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

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

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

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

    Даний опис є навчальним для розуміння основних принципів створення звітів 1С

    Як створити звіт в 1С 8.3

    Щоб створити звіт, необхідно відкрити 1С в режимі конфігуратора, для цього у віконці запуску 1С вибираєте потрібну базу в списку і натискаєте кнопку Конфігуратор:

    У самому конфигураторе заходите в меню Файл і вибираєте пункт Новий:


    У меню вибираєте пункт Зовнішній звіт і натискаєте кнопку ОК:


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


    Як зробити звіт за допомогою макета

    Для цього способу найбільше потрібні навички програмування в 1С, але тут ми не будемо розбирати механізми отримання та обробки даних, зробимо простий звіт, щоб зрозуміти механізм запуску звіту і виведення форми звіту на екран:

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


    У відкритому конструкторі макета можете задати ім'я макета, як тип макета повинен бути обраний табличний документ, після чого натискаєте в конструкторі кнопку Готово:


    Після чого відкриється вікно макета, що нагадує лист Excel:


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

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

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


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


    Програма запропонує вказати Ім'я області, ім'я також не повинно містити пропусків і спецсимволов, після цього натискаємо ОК, повинно вийти так:


    Тепер у створеній області потрібно ввести текст, який буде виводиться в звіті і відформатувати його. Для цього в першу комірку вводимо текст, наприклад «Перелік номенклатури». Робота з осередками схожа на Excel.

    Щоб відформатувати текст в осередку, натискаємо на осередок правою кнопкою і натискаємо на Властивості. Справа відкриється вікно властивостей комірки. Прокручуючи вміст вікна вниз, знайдіть поле Шрифт і натисніть на кнопку «...»:


    У вікні, в розділі Начертание встановлюємо галочку Жирний і натискаємо кнопку ОК:


    У макеті повинно вийти ось так:


    Таким же чином створюємо область рядки номенклатури, тільки не виділяємо жирним:


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


    Повертаємося в головне вікно звіту і в нижньому списку натискаємо правою кнопкою на пункт Форми і натискаємо Додати:


    У відкритому конструкторі форми звіту натискаємо кнопку Готово, відкриється форма звіту, натискаємо два рази на кнопку Сформувати:


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


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


    Спочатку вставимо замість виділеного тексту наступний текст програмного коду:

    // створюємо табличний документ, який буде наповнюватися частинами звіту і виводитися на екран
    ТабДокумент \u003d Новий ТаблічнийДокумент;
    // далі, отримуємо макет, який створювали при створенні звіту
    Макет \u003d ПолучітьМакет ( "Макет");
    // тепер потрібно вивести шапку звіту, дял цього отримуємо область шапки з макета і виводимо її в табличний документ
    ОбластьШапка \u003d Макет.ПолучітьОбласть ( "Шапка");
    ТабДокумент.Вивесті (ОбластьШапка);
    // за допомогою запиту отримуємо вибірку найменувань номенклатури, які треба вивести в звіті
    Запит \u003d Новий запит;
    Запрос.Текст \u003d "
    | ВИБРАТИ
    | Найменування
    | З
    | Справочнік.Номенклатура
    |";
    // отримати з макета область рядки номенклатури - будемо звертатися до неї в циклі для виведення кожного найменування
    ОбластьСтрока \u003d Макет.ПолучітьОбласть ( "Рядок");
    // обробляємо в циклі кожне найменування з отриманої вибірки
    Вибірка \u003d Запрос.Виполніть (). Вибрати ();
    Поки Виборка.Следующій () Цикл
    // для виведення чергового рядка потрібно вказати чергове найменування в параметрі області (сам параметр ми налаштовували при створенні макета)
    ОбластьСтрока.Параметри.Наіменованіе \u003d Виборка.Наіменованіе;
    // параметр заповнили, тепер можна вивести рядок
    ТабДокумент.Вивесті (ОбластьСтрока);
    КонецЦікла;
    // табличний документ сформований, тепер виводимо його на екран
    ТабДокумент.Показать ( "Перелік номенклатури«);

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


    Резюмуємо, які рядки програмного коду необхідні для формування звіту:

    1. Необхідно створити табличний документ, який буде наповнюватися частинами звіту і виводиться на екран, робиться це рядком «ТабДокумент \u003d Новий ТаблічнийДокумент;»
    2. Потрібно отримати макет звіту, з нього будемо отримувати структуру звіту по частинах (області), робиться це рядком "Макет \u003d ПолучітьМакет (" Макет ")"
    3. Для виведення кожної з областей потрібно отримати її з макета і вивести в табличний документ, робиться це рядками "ОбластьШапка \u003d Макет.ПолучітьОбласть (" Шапка ")" і "ТабДокумент.Вивесті (ОбластьШапка)»
    4. Якщо потрібно заповнити параметри, який стають відомі тільки при виконанні програми, то перед виведенням області потрібно заповнити такі параметри, робиться це рядком «ОбластьСтрока.Параметри.Наіменованіе \u003d Виборка.Наіменованіе»
    5. І лише, коли табличний документ заповнений всіма потрібними частинами звіту, він виводиться на екран, робиться це рядком "ТабДокумент.Показать (" Перелік номенклатури ")"

    І зараз можна перевірити роботу звіту - відкриваємо 1С в режимі підприємства (кнопка 1С: Підприємство в стартовому вікні 1С). У головному меню заходимо в меню файл, натискаємо Відкрити:


    Знаходимо і відкриваємо збережений файл звіту. У формі натискаємо кнопку Сформувати:


    і отримуємо перелік номенклатури:


    Це лише один із способів створення звітів в 1С. У наступних статтях розберемо інші.

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

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

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

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

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

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

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

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

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

    Після цього, в осередку ім'я параметра буде укладено в кутові дужки ( "<>"). В результаті область шапкаповинна виглядати так:

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

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

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

    У підсумку ми повинні отримати такий макет:

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

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

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

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

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

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

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

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

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

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

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

    процедура Кнопка1Нажатіе (Елемент) РаботаСДіалогамі.ОбработчікНастройкаПеріодаНажатіе (НачалоПеріода, КонецПеріода); КонецПроцедури

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

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

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

    Макет \u003d ПолучітьМакет ( "Макет");

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

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

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

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

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

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

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

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

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

    Запит \u003d новий запит;

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

    Запрос.УстановітьПараметр ( "Счет62", ПланиСчетов.Хозрасчетний.НайтіПоКоду ( "62"));

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

    Запрос.УстановітьПараметр ( "НачалоПеріода", НачалоПеріода); Запрос.УстановітьПараметр ( "КонецПеріода", КонецПеріода);

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

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

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

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

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

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

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

    Рахунок У ІЄРАРХІЇ (& Счет62)

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

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

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

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

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

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

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

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

    ВиборкаКонтрагент \u003d Запрос.Виполніть (). Вибрати (ОбходРезультатаЗапроса.ПоГруппіровкам);

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

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

    ІтогоПріход \u003d 0; ІтогоРасход \u003d 0;

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

    ТабДок.НачатьАвтогруппіровкуСтрок ();

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

    Поки ВиборкаКонтрагент.Следующій () Цикл КонецЦікла;

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

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

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

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

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

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

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

    ВиборкаДоговорКонтрагента \u003d ВиборкаКонтрагент.Вибрать (ОбходРезультатаЗапроса.ПоГруппіровкам);

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

    Поки ВиборкаДоговорКонтрагента.Следующій () Цикл КонецЦікла;

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

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

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

    ІтогоПріход \u003d ІтогоПріход + ВиборкаДоговорКонтрагента.Пріход; ІтогоРасход \u003d ІтогоРасход + ВиборкаДоговорКонтрагента.Расход;

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

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

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

    ТабДок.НачатьАвтогруппіровкуСтрок (); Поки ВиборкаКонтрагент.Следующій () Цикл ОбластьДанниеКонтрагент.Параметри.Пріход \u003d 0; ОбластьДанниеКонтрагент.Параметри.Расход \u003d 0; ЗаполнітьЗначеніяСвойств (ОбластьДанниеКонтрагент.Параметри, ВиборкаКонтрагент); ТабДок.Вивесті (ОбластьДанниеКонтрагент, 1); ВиборкаДоговорКонтрагента \u003d ВиборкаКонтрагент.Вибрать (ОбходРезультатаЗапроса.ПоГруппіровкам); Поки ВиборкаДоговорКонтрагента.Следующій () Цикл ОбластьДанниеДоговор.Параметри.Пріход \u003d 0; ОбластьДанниеДоговор.Параметри.Расход \u003d 0; ЗаполнітьЗначеніяСвойств (ОбластьДанниеДоговор.Параметри, ВиборкаДоговорКонтрагента); ТабДок.Вивесті (ОбластьДанниеДоговор, 2); ІтогоПріход \u003d ІтогоПріход + ВиборкаДоговорКонтрагента.Пріход; ІтогоРасход \u003d ІтогоРасход + ВиборкаДоговорКонтрагента.Расход; КонецЦікла; КонецЦікла; ТабДок.ЗакончітьАвтогруппіровкуСтрок ();

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

    ОбластьПодвал.Параметри.ІтогоПріход \u003d ІтогоПріход; ОбластьПодвал.Параметри.ІтогоРасход \u003d ІтогоРасход; ТабДок.Вивесті (ОбластьПодвал);

    На цьому процес написання зовнішнього звіту для 1С 8 без використання СКД завершений. Тепер його можна сформувати в режимі 1С: Підприємство 8 і додати в довідник ВнешніеОбработкі Файл звіту розглянутого в статті ви можете завантажити за.

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

    Пісочниця

    ювелір 23 серпня 2011 о 10:22

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

    • комору *

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

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


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

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

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

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

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

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

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

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

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

    Дана стаття не підлягає коментування, оскільки її автор ще не є

    « Відкрити схему компоновки даних»Або, що рівнозначно, кликнемо по знаку лупи.

    3. Так як у звіту, який ми створюємо, ще не існує схеми компонування даних, платформа запропонує створити нову схему . Схема компонування даних з точки зору конфігурації є макетом, тому буде відкритий конструктор макета, що пропонує вибрати єдиний тип макета → Схема компонування даних. натиснемо кнопку Готово.

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

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

    Додамо новий набір даних → запит .

    4. Для того щоб створити текст запиту, запустимо конструктор запиту → кнопка конструктор запиту.

    5. У списку « База даних»Представлено склад об'єктів бази даних; на основі даних цих об'єктів ми маємо можливість побудувати звіт.

    Якщо розкрити гілку « РегістриНакопленія», То ми побачимо, що крім таблиці регістра« ОстаткіМатеріалов»В цій гілці присутні ще кілька віртуальних таблиць , Які формує система.

    6. Оскільки ми хочемо бачити як залишки матеріалів, так і інформацію про їх надходження та витрачання, нас буде цікавити віртуальна таблиця « ОстаткіМатеріалов.ОстаткіІОбороти». Розкриємо її.

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

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

    В результаті вікно Поля повинно бути заповнено так:

    8. Після цього на закладці угруповання вкажемо групове поле склад.

    9. Натиснемо ОК і повернемося в конструктор схеми компонування даних.

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

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

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

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

    10. Перейдемо на закладку налаштування і додамо угруповання (контекстне меню Нова угруповання).

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

    У звіт будуть виводитися детальні записи з інформаційної бази → записи, що отримуються в результаті виконання запиту без підсумків.

    11. Тепер налаштуємо поля, які будуть виводитися в результат звіту.

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

    • склад:
    • матеріал;
    • КолічествоНачальнийОстаток;
    • КолічествоПріход;
    • КолічествоРасход;
    • КолічествоКонечнийОстаток.

    12. Запустимо 1С: Підприємство в режимі налагодження і подивимося, як працює звіт.

    13. Виконайте команду Операції в † 'Звіт в †' Зміст.

    Система автоматично сформує форму звіту і форму налаштувань для нього.

    14. Натисніть сформувати.

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

    Створення макета документа ОказаніеУслугі

    1. Відкрийте в конфігураторі вікно редагування об'єкта конфігурації документ ОказаніеУслугі.

    2. Перейдіть на закладку макети і запустіть конструктор друку:

    3. На першому кроці вкажемо, що нова процедура, Яка буде створена конструктором для формування друкованої форми документа, буде розташовуватися в модулі форми.

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

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

    6. На четвертому кроці конструктор запропонує сформувати нам земельна ділянка (нижню частину) друкарської форми. Оскільки в даному випадку підвал ми використовувати не будемо, відразу підемо далі.

    7. На п'ятому кроці вкажемо, що конструктор повинен вставити нову кнопку в форму документа для виклику процедури формування друкованої форми, і натиснемо ОК.

    8. У конфігураторі відкриється форма документа і його макет:

    9. Перевіримо макет в роботі. Запустіть 1С: Підприємство в режимі налагодження і відкрийте документ Надання послуги №- 1. Зверніть увагу, що в правому нижньому кутку документа з'явилася нова кнопка печатка, Яку додав конструктор.

    10. Натисніть на цю кнопку і побачите друковану форму нашого документа.

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

    Редагування макета документа ОказаніеУслугі

    1. Відкрийте конфигуратор, розкрийте дерево документа ОказаніеУслугі і двічі клацніть на макеті печатка.

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

    2. Додамо нову область для виведення підсумкової суми документа:

    • виділимо мишею дві порожні рядки в Документ ОказаніеУслугі: Друк;
    • виконаємо команду Таблиця в † 'Імена в †' Призначити ім'я ... |

    3. Назвемо область всього.

    4. У створеній області:

    • в колонці Ціна, напишемо всього;
    • в колонці сума напишемо ВсегоПоДокументу.

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

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

    текст , Що міститься в осередку, буде показаний на екрані.

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

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

    Тому, вказавши для осередку в якості заповнення параметр, Ми визначили параметр області з ім'ям ВсегоПоДокументу, Якому дамо потрібне нам значення при формуванні друкованої форми.

    6. Тепер відкриємо модуль форми документа ОказаніеУслугі → ФормаДокумента.

    7. Знайдемо в ньому процедуру печатка і після циклу додамо в неї такі рядки:

    Сенс доданого фрагмента простий: ми отримуємо нову область всього (Ту, яку ми тільки що додали до макету).

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

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

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

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

    Редагування форми документа ОказаніеУслугі

    1. Відкрийте в конфігураторі форму документа ОказаніеУслугі → ФормаДокумента.

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

    3. Відкриємо властивості колонки Ціна:

    • встановимо текст підвалу → всього: ;
    • горизонтальне положення в підвалі → притиснути вправо;
    • в шрифті підвалу змінимо накреслення на жирний.

    4. Відкриємо властивості колонки Сума:

    • встановимо горизонтальне положення в підвалі → притиснути вправо;
    • встановимо прапор ОтображатьІтогіВПодвале;
    • в шрифті підвалу змінимо накреслення на жирний.

    5. Запустіть 1С: Підприємство в режимі налагодження і подивіться як виглядає тепер форма документа ОказаніеУслугі №- 1.

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


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




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