Макети
Макет - Це підлеглий об'єкт конфігурації. Макети дозволяють зберігати у конфігурації різні дані, необхідні відображення у процесі роботи як всього прикладного рішення, і окремих його об'єктів.
Макети можуть містити дані різних видів. Це може бути табличний документ, який нагадує електронні таблиці та широко використовується при формуванні вихідних форм документів та звітів; це може бути текстовий документ чи двійкові дані. Також макет може містити ActiveDocument (наприклад, документ Word, лист Excel або рисунок CorelDRAW), HTML-документ чи географічна схема.
Як ілюстрацію можливостей макета можна навести макет, що містить документ Word:
Конструктор макету
Для створення макетів у платформі є спеціальний конструктор макета. Докладніше…
Основи формування табличного документа на основі макета
Зазвичай табличний документ формується на основі макета як із будівельних блоків. Макет є шаблоном для формування друкованої форми. Побудова макета проводиться у конфігураторі у спеціальному табличному редакторі. Розробник може створювати області, змінювати висоту рядків і ширину колонок, задавати форматування осередків та всього табличного документа, включати у макет малюнки, діаграми та зведені таблиці.
Області макета призначені для одноразового або багаторазового виведення, наприклад, нижче представлений макет для друку витратної накладної:
Деякі осередки містять лише текст, який має бути виведений. Інші осередки містять імена параметрів (у кутових дужках). Значення цих параметрів мають бути вказані в програмному модулі. На відміну від версії 7.7, у комірку не можна вписати вираз.У версії 8.0 весь програмний код зосереджений у програмних модулях і під час виведення секцій немає з поточним контекстом програмного модуля. Призначення параметрів табличного документа повинно проводитися явно із програмного модуля через колекцію "Параметри" об'єкта "Таблічний документ".
Область може складатися з декількох рядків, що розташовані поспіль, або колонок, або бути прямокутною областю таблиці. До області можна звернутися на ім'я або координати. Можна також звертатися до перетину областей, використовуючи вертикальну межу (як у версії 7.7).
Загальна схема
Загальна схема формування друкованої форми на основі макету:
- Створення макета у табличному редакторі (визначення областей, імен параметрів, форматування).
- Створення нового табличного документа (цей пункт не потрібний, якщо звіт виводиться в елемент керування ПолеТабличного документа).
- Отримання макета в змінну (метод ОтриматиМакет).
- Отримання областей макета (метод Отримати Область).
- Заповнення параметрів області (властивість Параметри).
- Виведення області в табличний документ (методи Вивести та Приєднати).
- Встановлення властивостей відображення табличного документа (сітка, заголовки, перегляд і т.д.).
- Відображення табличного документа на екрані (а може бути надсилання на принтер або збереження).
Приклад виведення табличного документа
Нижче наведено приклад формування друкованої форми видаткової накладної з модуля документа:
Процедура Друк(ТабДок) Експорт
//Створення нового табличного документа
ТабДок = Новий Табличний Документ;
//отримання макета для друку витратної накладної
Макет = Документи. Витратна Накладна. ОтриматиМакет ("Основний");
//отримаємо область "Заголовок" як новий табличний документ (!)
Область = Макет.Отримати Область ("Заголовок");
//Вкажемо параметри області
Область. Параметри .НомерДокумента = Номер;
Область.Параметры.От = Дата;
Область.Параметри.Кому = Контрагент;
//виведемо заповнену область "Заголовок" у табличний документ
ТабДок. Вивести (Область);
//виведемо область "Шапка" у табличний документ
ТабДок.Вивести(Макет.ОтриматиОбласть("Шапка"));
//отримання області "Рядок"
//зверніть увагу, що це можна зробити до циклу по рядках
Область = Макет.Отримати Область("Рядок");
//Виведення рядків документа в друковану форму
Для кожного СтрСостава Із Склад Цикл
//Заповнення параметрів області з рядка табличної частини
Область.Параметри. Заповнити (СтрСостава);
//Виведення сформованої області в табличний документ
ТабДок.Вивести(Область);
КінецьЦикл;
//висновок області "Підвал"
Область = Макет.ОтриматиОбласть("Підвал");
Область.Параметры.РазомКількість = Склад.Результат("Кількість");
Область.Параметри.РезультатСума = Склад.Результат("Сума");
ТабДок.Вивести(Область);
//Встановимо параметри відображення табличного документа
ТабДок.ТількиПерегляд = Істина;
ТабДок.ОтображатьЗаголовки = Істина;
ТабДок.ОтображатьСеть = Брехня;
//Покажемо табличний документ на екрані
ТабДок. Показати ();
Основні методи
Основні методи формування підсумкового табличного документа такі:
| Вивести |
Виводить у друковану форму черговий фрагмент (табличний документ), додаючи його знизу, починаючи з першої колонки. |
| Приєднати |
Приєднує до друкованої форми черговий фрагмент (табличний документ) праворуч, починаючи з рядка, з якого виводився попередній фрагмент методом Вивести |
| Область |
Дозволяє отримати область як об'єкт типу "ОбластьКомірок ТабличногоДокументу".Через цей об'єкт можна встановлювати форматування області: задавати розмір та колір шрифту, колір фону та візерунок комірок. |
| ОтриматиОбласть |
Дозволяє отримати область як об'єкт типу "Таблічний документ". |
Створення макета табличного документа 1С 8.3
За допомогою табличних документів, в 1С можна організовувати виведення друкованих форм.
Розробка макета табличного документа в 1С
Щоб за допомогою табличного документа вести якусь друковану форму, необхідно створити макет табличного документа. Навчимося створювати макети конкретних об'єктів (довідники, документи).
Після виконання команди відкриється конструктор 1С, де можна змінити назву макета, але потрібно залишити тип макета «Таблічний документ».
Натискаємо кнопку «Готово», після чого буде створено макет табличного документа, який має форму таблиці.
Цей макет складається з рядків, стовпців і осередків. Кожна комірка має свої властивості.
На панелі властивостей комірки можна здійснювати різні налаштування, ми заповнимо текст комірки.
Цей текст відобразиться в нашому осередку, і ви помітили, що він ніби зрушив щодо самої осередки. І у нас автоматично з'явилися пунктирні лінії.Пунктирні лінії обмежують область, яка виведеться на друк. І як ви бачите на попередній картинці, наш текст трохи зрушив щодо пунктиру. Це означає, що ми хоч і побачимо весь текст під час перегляду, на друк вийде лише частина тексту, що була до пункту.
У тому випадку, коли текст не поміщається в комірку (як у нас зараз), зробити так, щоб він весь відображався можна двома способами: розширити саму комірку та об'єднати комірки.
Об'єднаємо комірки. Для цього виділимо потрібну область, викличемо контекстне меню та виконаємо команду «Об'єднати»
Після цього осередки, куди входить наш рядок, об'єднаються, а лінії друку зрушать.
Області макета табличного документа 1С
У макеті табличного документа є можливість встановити області. Навіщо потрібні області? Для того, щоб більш оптимально працювати з макетом у програмному коді: ми можемо кілька разів отримувати одну і ту ж область і виводити її в табличному документі (по суті, на друк).
Задамо в нашому макеті табличного документа три області: Шапка, Шапка Таблиці, Рядок Таблиці та Підвал. Це будуть області рядків.
Для того, щоб задати область, необхідно виділити потрібну кількість рядків (або стовпців), з яких ми хочемо зробити область, після виконання команди «Призначити ім'я» (Головне меню – Таблиця – Імена).
Після цього потрібно вказати ім'я області (усі імена в макеті мають бути унікальними)
Після цього зовнішній вигляд нашого макета зміниться – зліва з'явиться назва області.
Після того, як ми додамо ще три області, наш макет табличного документа буде виглядати так.
Області Шапка, ШапкаТаблиці та Підвал будуть виводиться один раз, а область РядокТаблиці буде виводиться стільки разів скільки рядків у табличній частині документа.
У нашій таблиці буде 5 стовпців: номер, номенклатура, кількість, ціна і сума. Оформимо тепер шапку таблиці, написавши назву кожного стовпця. Також ми розширимо або звузимо комірки для зручнішого перегляду. І посунемо наш заголовок у шапці на одну комірку вліво (для цього потрібно виділити об'єднані комірки і перетягнути їх мишкою вліво)
Параметри макета табличного документа
В область РядокТаблиці скопіюємо ті ж назви, що з області шапки (крім №, його так і назвемо НомерТаблиці), але це у нас будуть не просто назви, а параметри, в які ми передаватимемо дані, при формуванні табличного документа. Для того, щоб зробити дані назви параметрами, насамперед виділимо всі заповнені осередки області РядокТаблиці, викличемо контекстне меню та виконаємо команду властивості.
У властивостей всіх п'яти осередків ми змінимо тільки властивість Заповнення Виберемо значення Параметр.
Після цього вид нашого макета табличного документа знову зміниться.
Тепер нам залишилося зробити нашу таблицю таблицею у сенсі. Для цього потрібно виділити кожну комірку шапки і рядки (утримуєте клавішу CTRL, клікаєте по кожному комірку мишкою, тоді буде виділено кожне комірка окремо), викликати, вже знайомим способом, контекстне меню, і в групі Оформлення, змінити параметр Обвести.
Після цих дій, всі потрібні осередки будуть обведені.
Друкована форма майже готова, нам залишилося зробити, щоб у шапці разом із надходженням товару виходив номер та дата документа.Для цього ми виділимо осередок, де запроваджено тест «Документ… » Викликаємо контекстне меню та у властивості Заповнення вкажемо значення Шаблон.
І в тексті комірки вкажемо параметри, в які передаватимемо значення. Якщо у тексті шаблону ми вказуємо якесь слово у квадратних дужках, то цю «змінну» будуть передані параметри для формування звіту.
Я додав ліву комірку до об'єднання осередків. Щоб це зробити потрібно зняти об'єднання, і створити нове об'єднання осередків із ще одним осередком.
Все наш макет готовий, у наступній статті навчимося виводити його на друк.
Докладніше і ґрунтовніше робота з друкованими формами в 1С дається в моїй книзі: «Програмувати в 1С за 11 кроків»
Вивчайте програмування в 1С на місці з моєї книги «Програмувати в 1С за 11 кроків»
- Книга написана зрозумілою та простою мовою – для новачка.
- Книга надсилається на електронну пошту у форматі PDF. Можна відкрити будь-який пристрій!
- Навчіться розуміти архітектуру 1С;
- Станете писати код мовою 1С;
- Опануйте основні прийоми програмування;
- Закріпіть отримані знання з допомогою задачника;
Про те, як розробляти під керованим додатком 1С, читайте у книзі Книга «Основи розробки в 1С: Таксі»
Відмінний посібник з розробки в керованому додатку 1С, як для розробників-початківців, так і для досвідчених програмістів.
- Дуже доступна та зрозуміла мова викладу
- Книга надсилається на електронну пошту у форматі PDF. Можна відкрити будь-який пристрій!
- Зрозумієте ідеологію керованого додатка 1С
- Дізнаєтеся, як розробляти керовану програму;
- Навчіться розробляти керовані форми 1С;
- Зможете працювати з основними та потрібними елементами керованих форм
- Програмування під керованим додатком стане зрозумілим
Промо-код на знижку в 15% 48PVXHeYu
Вступайте до моїх груп:
2 Replies to "Створення макета табличного документа в 1С 8.3"
Доброго дня, осінь сильно допоміг ваш відео ролик, але хотілося б дізнатися повний спосіб виведення реквізитів табличної частини (на 19 хвилині і 32 секунді ви вказали, що немає сенсу розписувати кожен реквізит), якщо не важко не могли б ви розписати як це робиться, а то маю вже не першу добу.
Вам, в принципі, можна використовувати Заповнити, і коли потрібно заповнити менше параметрів, ніж запит. Наприклад, у запиті 10 полів, а таблиці 5 параметрів, вони й заповняться. А так, якщо не хочете використовувати Заповнити, то просто вказуєте параметр через точку, як це робили у шапці у статті, де заповнювали табличний документ. Наприклад, так:
ОбластьРядокТаблиці.Параметри.Ціна = стрТовар.Ціна;
Для
кожного стрТовар з Об'єкт.СписокТоварів Цикл ОбластьРядокТаблиці.Параметри.Заповнити(стрТовар); ОбластьРядокТаблиці.Параметри.Ціна =
// якась ціна ТабДок.Вивести(ОбластьРядокТаблиці);
КінецьЦикл;