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

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

На любой странице создайте блок деталей (например, для пользователей) и проверьте, есть ли в настройках действий соответствующая опция настройки шаблона:

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

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

#2.2 Создание коллекций

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

#Коллекция «Договоры» (Contracts)

Категория поляОтображаемое имя поляИмя поляИнтерфейс поля
Поля первичного и внешнего ключей
IDidЦелое число
ID покупателяbuyer_idЦелое число
ID продавцаseller_idЦелое число
Поля связей
Позиции договораcontract_itemsОдин ко многим
Покупатель (Сторона А)buyerМногие к одному
Продавец (Сторона Б)sellerМногие к одному
Общие поля
Номер договораcontract_noОднострочный текст
Дата начала поставкиstart_dateДата и время (с часовым поясом)
Дата окончания поставкиend_dateДата и время (с часовым поясом)
Коэффициент залога (%)deposit_ratioПроцент
Дни оплаты после поставкиpayment_days_afterЦелое число
Название банковского счета (бенефициара)bank_account_nameОднострочный текст
Название банкаbank_nameОднострочный текст
Номер банковского счета (бенефициара)bank_account_numberОднострочный текст
Общая суммаtotal_amountЧисло
Коды валютcurrency_codesЕдиничный выбор
Коэффициент остатка (%)balance_ratioПроцент
Дни остатка после поставкиbalance_days_afterЦелое число
Место поставкиdelivery_placeДлинный текст
Имя подписанта Стороны Аparty_a_signatory_nameОднострочный текст
Должность подписанта Стороны Аparty_a_signatory_titleОднострочный текст
Имя подписанта Стороны Бparty_b_signatory_nameОднострочный текст
Должность подписанта Стороны Бparty_b_signatory_titleОднострочный текст
Системные поля
Создано вcreatedAtСоздано в
СозданоcreatedByСоздано
Последнее обновление вupdatedAtПоследнее обновление в
Последнее обновлениеupdatedByПоследнее обновление

#Коллекция «Стороны» (Parties)

Категория поляОтображаемое имя поляИмя поляИнтерфейс поля
Поля первичного и внешнего ключей
IDidЦелое число
Общие поля
Название стороныparty_nameОднострочный текст
АдресaddressОднострочный текст
Контактное лицоcontact_personОднострочный текст
Контактный телефонcontact_phoneТелефон
ДолжностьpositionОднострочный текст
Электронная почтаemailЭлектронная почта
Веб-сайтwebsiteURL
Системные поля
Создано вcreatedAtСоздано в
СозданоcreatedByСоздано
Последнее обновление вupdatedAtПоследнее обновление в
Последнее обновлениеupdatedByПоследнее обновление

#Коллекция «Позиции договора» (Contract Line Items)

Категория поляОтображаемое имя поляИмя поляИнтерфейс поля
Поля первичного и внешнего ключей
IDidЦелое число
ID договораcontract_idЦелое число
Поля связей
ДоговорcontractМногие к одному
Общие поля
Название продуктаproduct_nameОднострочный текст
Спецификация / МодельspecОднострочный текст
КоличествоquantityЦелое число
Цена за единицуunit_priceЧисло
Общая суммаtotal_amountЧисло
Дата поставкиdelivery_dateДата и время (с часовым поясом)
ПримечаниеremarkДлинный текст
Системные поля
Создано вcreatedAtСоздано в
СозданоcreatedByСоздано
Последнее обновление вupdatedAtПоследнее обновление в
Последнее обновлениеupdatedByПоследнее обновление

#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 будьте внимательны, чтобы не разделять заполнители на несколько абзацев или текстовых блоков, чтобы избежать ошибок рендеринга.

Желаем успешного использования! С помощью функции «Шаблонная печать» вы значительно сократите объем повторяющейся работы в управлении договорами, избежите ошибок ручного копирования и вставки, а также добьетесь стандартизированного и автоматизированного вывода договоров.