logologo
Початок
Посібник
Розробка
Плагіни
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Початок
Посібник
Розробка
Плагіни
API
logologo
Огляд
Опис конфігурації

Синтаксис шаблонів

Базове використання
Обробка в циклах

Інструменти форматування

Огляд
Форматування тексту
Форматування чисел
Форматування валют
Форматування дати
Форматування інтервалів часу
Форматування масивів

Розширені функції

Умовні оператори
Розширені можливості
Часті запитання
Сценарії використання
Previous PageЧасті запитання
Повідомлення про переклад ШІ

Ця документація була автоматично перекладена штучним інтелектом.

#Використання функції «Друк за шаблоном» для створення зразка Договору поставки та закупівлі

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


#1. Огляд передумов та структури даних

У нашому прикладі існують приблизно такі основні колекції (інші нерелевантні поля пропущено):

  • parties: Зберігає інформацію про підрозділи або фізичних осіб Сторони А/Сторони Б, включаючи назву, адресу, контактну особу, телефон тощо.
  • contracts: Зберігає конкретні записи договорів, включаючи номер договору, зовнішні ключі покупця/продавця, інформацію про підписантів, дати початку/закінчення, банківський рахунок тощо.
  • contract_line_items: Використовується для зберігання кількох позицій за договором (назва продукту, специфікація, кількість, ціна за одиницю, дата поставки тощо).

template_print-2025-11-01-16-34-04

Оскільки поточна система підтримує друк лише окремих записів, ми натиснемо «Друк» на сторінці «Деталі договору», і система автоматично отримає відповідний запис колекції contracts, а також пов'язані parties та іншу інформацію, і заповнить їх у документах Word або PDF.

#2. Підготовка

#2.1 Підготовка плагіна

Зверніть увагу, що наш плагін «Друк за шаблоном» є комерційним і потребує придбання та активації перед виконанням операцій друку.

template_print-2025-11-01-17-31-51

Перевірка активації плагіна:

На будь-якій сторінці створіть блок деталей (наприклад, для users) і перевірте, чи є відповідна опція конфігурації шаблону в налаштуваннях дії:

template_print-2025-11-01-17-32-09

template_print-2025-11-01-17-32-30

#2.2 Створення колекцій

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

#Колекція договорів (Contracts)

Категорія поляНазва поля для відображенняНазва поляІнтерфейс поля
Поля первинного та зовнішнього ключів
IDidInteger
ID покупцяbuyer_idInteger
ID продавцяseller_idInteger
Поля асоціацій
Пункти договоруcontract_itemsOne to many
Покупець (Сторона А)buyerMany to one
Продавець (Сторона Б)sellerMany to one
Загальні поля
Номер договоруcontract_noSingle line text
Дата початку поставкиstart_dateDatetime (with time zone)
Дата закінчення поставкиend_dateDatetime (with time zone)
Відсоток передоплати (%)deposit_ratioPercent
Днів оплати після поставкиpayment_days_afterInteger
Назва банківського рахунку (бенефіціара)bank_account_nameSingle line text
Назва банкуbank_nameSingle line text
Номер банківського рахунку (бенефіціара)bank_account_numberSingle line text
Загальна сумаtotal_amountNumber
Коди валютcurrency_codesSingle select
Відсоток залишку (%)balance_ratioPercent
Днів залишку після поставкиbalance_days_afterInteger
Місце поставкиdelivery_placeLong text
Ім'я підписанта Сторони Аparty_a_signatory_nameSingle line text
Посада підписанта Сторони Аparty_a_signatory_titleSingle line text
Ім'я підписанта Сторони Бparty_b_signatory_nameSingle line text
Посада підписанта Сторони Бparty_b_signatory_titleSingle line text
Системні поля
Створено оcreatedAtCreated at
Створено кимcreatedByCreated by
Останнє оновлення оupdatedAtLast updated at
Останнє оновлення кимupdatedByLast updated by

#Колекція сторін (Parties)

Категорія поляНазва поля для відображенняНазва поляІнтерфейс поля
Поля первинного та зовнішнього ключів
IDidInteger
Загальні поля
Назва сторониparty_nameSingle line text
АдресаaddressSingle line text
Контактна особаcontact_personSingle line text
Контактний телефонcontact_phonePhone
ПосадаpositionSingle line text
Електронна поштаemailEmail
ВебсайтwebsiteURL
Системні поля
Створено оcreatedAtCreated at
Створено кимcreatedByCreated by
Останнє оновлення оupdatedAtLast updated at
Останнє оновлення кимupdatedByLast updated by

#Колекція товарних позицій договору (Contract Line Items)

Категорія поляНазва поля для відображенняНазва поляІнтерфейс поля
Поля первинного та зовнішнього ключів
IDidInteger
ID договоруcontract_idInteger
Поля асоціацій
ДоговірcontractMany to one
Загальні поля
Назва продуктуproduct_nameSingle line text
Специфікація / МодельspecSingle line text
КількістьquantityInteger
Ціна за одиницюunit_priceNumber
Загальна сумаtotal_amountNumber
Дата поставкиdelivery_dateDatetime (with time zone)
ПриміткаremarkLong text
Системні поля
Створено оcreatedAtCreated at
Створено кимcreatedByCreated by
Останнє оновлення оupdatedAtLast updated at
Останнє оновлення кимupdatedByLast updated by

#2.3 Налаштування інтерфейсу

Введіть зразки даних:

template_print-2025-11-01-17-32-59

template_print-2025-11-01-17-33-11

Налаштуйте правила зв'язування для автоматичного розрахунку загальної суми та залишку платежу:

template_print-2025-11-01-17-33-21

Створіть блок перегляду, підтвердьте дані та активуйте дію «Друк за шаблоном»:

template_print-2025-11-01-17-33-33

#2.4 Налаштування плагіна «Друк за шаблоном»

template_print-2025-11-01-17-33-45

Додайте конфігурацію шаблону, наприклад, «Договір поставки та закупівлі»:

template_print-2025-11-01-17-33-57

template_print-2025-11-01-17-34-08

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

template_print-2025-11-01-17-35-19

#2.5 Підготовка файлу договору

Файл шаблону договору Word

Заздалегідь підготуйте шаблон договору (файл .docx), наприклад: SUPPLY AND PURCHASE CONTRACT.docx

У цьому прикладі ми надаємо спрощену версію «Договору поставки та закупівлі», яка містить зразки заповнювачів:

  • {d.contract_no}: Номер договору
  • {d.buyer.party_name}, {d.seller.party_name}: Назви покупця та продавця
  • {d.total_amount}: Загальна сума договору
  • А також інші заповнювачі, такі як «контактна особа», «адреса», «телефон» тощо.

Далі ви можете скопіювати та вставити поля з вашої колекції в Word.


#3. Посібник зі змінних шаблону

#3.1 Базові змінні та заповнення властивостей пов'язаних об'єктів

Заповнення базових полів:

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

template_print-2025-11-01-17-31-11

template_print-2025-11-01-17-30-51

#3.2 Форматування даних

#Форматування дати

У шаблонах часто потрібно форматувати поля, особливо поля дати. Формат дати, скопійований безпосередньо, зазвичай довгий (наприклад, Wed Jan 01 2025 00:00:00 GMT), і його потрібно відформатувати, щоб відобразити бажаний стиль.

Для полів дати можна використовувати функцію formatD() для вказівки формату виведення:

{назва_поля:formatD(стиль_форматування)}

Приклад:

Наприклад, якщо оригінальне поле, яке ми скопіювали, це {d.created_at}, і нам потрібно відформатувати дату у формат 2025-01-01, тоді змініть це поле на:

{d.created_at:formatD(YYYY-MM-DD)}  // Вивід: 2025-01-01

Поширені стилі форматування дати:

  • YYYY - Рік (чотири цифри)
  • MM - Місяць (дві цифри)
  • DD - День (дві цифри)
  • HH - Година (24-годинний формат)
  • mm - Хвилини
  • ss - Секунди

Приклад 2:

{d.created_at:formatD(YYYY-MM-DD HH:mm:ss)}  // Вивід: 2025-01-01 14:30:00

#Форматування чисел

Припустимо, є поле суми, наприклад {d.total_amount} у договорі. Ми можемо використовувати функцію formatN() для форматування чисел, вказуючи кількість десяткових знаків та роздільник тисяч.

Синтаксис:

{назва_поля:formatN(кількість_десяткових_знаків, роздільник_тисяч)}
  • Кількість десяткових знаків: Ви можете вказати, скільки десяткових знаків потрібно зберегти. Наприклад, 2 означає дві десяткові позиції.
  • Роздільник тисяч: Вкажіть, чи використовувати роздільник тисяч, зазвичай true або false.

Приклад 1: Форматування суми з роздільником тисяч та двома десятковими знаками

{d.amount:formatN(2, true)}  // Вивід: 1,234.56

Це відформатує d.amount до двох десяткових знаків і додасть роздільник тисяч.

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

{d.amount:formatN(0, true)}  // Вивід: 1,235

Це відформатує d.amount до цілого числа і додасть роздільник тисяч.

Приклад 3: Форматування суми з двома десятковими знаками, але без роздільника тисяч

{d.amount:formatN(2, false)}  // Вивід: 1234.56

Це вимикає роздільник тисяч і зберігає лише два десяткові знаки.

Інші потреби у форматуванні сум:

  • Символ валюти: Carbone сам по собі не надає функцій форматування символів валюти безпосередньо, але ви можете додати символи валюти безпосередньо в дані або шаблони. Наприклад:
    {d.amount:formatN(2, true)} грн  // Вивід: 1,234.56 грн

#Форматування рядків

Для рядкових полів можна використовувати :upperCase для вказівки формату тексту, наприклад, перетворення регістру.

Синтаксис:

{назва_поля:upperCase:інші_команди}

Поширені методи перетворення:

  • upperCase - Перетворити на ВЕЛИКІ ЛІТЕРИ
  • lowerCase - Перетворити на малі літери
  • upperCase:ucFirst - Зробити першу літеру великою

Приклад:

{d.party_a_signatory_name:upperCase}  // Вивід: JOHN DOE

#3.3 Циклічний друк

#Як друкувати списки дочірніх об'єктів (наприклад, деталі продукту)

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

Припустимо, у нас є список продуктів (наприклад, contract_items), який містить кілька об'єктів продуктів. Кожен об'єкт продукту має кілька атрибутів, таких як назва продукту, специфікація, кількість, ціна за одиницю, загальна сума та примітки.

Крок 1: Заповніть поля в першому рядку таблиці

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

Наприклад, перший рядок таблиці виглядає так:

Назва продуктуСпецифікація / МодельКількістьЦіна за одиницюЗагальна сумаПримітка
{d.contract_items[i].product_name}{d.contract_items[i].spec}{d.contract_items[i].quantity}{d.contract_items[i].unit_price}{d.contract_items[i].total_amount}{d.contract_items[i].remark}

Тут d.contract_items[i] представляє i-й елемент у списку продуктів, а i — це індекс, що позначає порядок поточного продукту.

Крок 2: Змініть індекс у другому рядку

Далі, у другому рядку таблиці, ми змінюємо індекс поля на i+1 і заповнюємо лише перший атрибут. Це тому, що під час циклічного друку нам потрібно отримати наступний елемент даних зі списку та відобразити його в наступному рядку.

Наприклад, другий рядок заповнюється так:

Назва продуктуСпецифікація / МодельКількістьЦіна за одиницюЗагальна сумаПримітка
{d.contract_items[i+1].product_name}

У цьому прикладі ми змінили [i] на [i+1], щоб отримати дані наступного продукту у списку.

Крок 3: Автоматичний циклічний друк під час рендерингу шаблону

Коли система обробляє цей шаблон, вона діятиме за такою логікою:

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

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


#4. Завантаження та налаштування шаблону договору

#4.1 Завантаження шаблону

  1. Натисніть кнопку «Додати шаблон» і введіть назву шаблону, наприклад, «Шаблон договору поставки та закупівлі».
  2. Завантажте підготовлений файл договору Word (.docx), який вже містить усі заповнювачі.

template_print-2025-11-01-17-36-06

  1. Після завершення система додасть шаблон до списку доступних шаблонів для подальшого використання.
  2. Натисніть «Використати», щоб активувати цей шаблон.

template_print-2025-11-01-17-36-13

Після цього закрийте поточне спливаюче вікно та натисніть «Завантажити шаблон», щоб отримати згенерований повний шаблон.

Поради:

  • Якщо шаблон використовує .doc або інші формати, можливо, його потрібно буде перетворити на .docx, залежно від підтримки плагіна.
  • У файлах Word будьте обережні, щоб не розділяти заповнювачі на кілька абзаців або текстових полів, щоб уникнути помилок рендерингу.

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