Ознакомьтесь с полным списком формул в статье Основные формулы вывода данных из документа.
Ниже рассмотрим формулы реквизитов получателя или отправителя. В качестве примера возьмем Заказ покупателя.
Общим правилом оформление любой формулы реквизитов компании является структура:
${o.sourceAgentRequisite.legalTitle}
Основные параметры:
- targetAgentRequisiteили sourceAgentRequisite — указатель на источник данных, это либо карточка контрагента (кто покупает — source), либо информация из закладки Юр. лица (кто продает — target).
- legalTitle — сама переменная, которую требуется вывести на печать.
Во всех формулах используется source — это формулы покупателя в документе, измените на target, если требуется напечатать реквизит вашей организации в документе. В шаблоне печатной формы счета и отгрузки стороны source и target меняют свои роли на противоположные.
Скачать шаблон отладки на примере документа Заказ покупателя.
- Основные реквизиты
- Владелец-сотрудник
- Юридические реквизиты
- Банковские реквизиты
- Поля структурированного адреса
- Цены и скидки
- Контактные лица
- События
- Дополнительные поля
Основные реквизиты
Формула | Значение |
${o.sourceAgentRequisite.agent.name} | Наименование |
${o.sourceAgentRequisite.agent.code} | Код |
${o.sourceAgentRequisite.agent.contact.phones} | Телефон |
${o.sourceAgentRequisite.agent.contact.faxes} | Факс |
${o.sourceAgentRequisite.agent.contact.email} | |
${o.sourceAgentRequisite.agent.state.name} | Статус |
${o.sourceAgentRequisite.actualAddress} | Фактический адрес |
${o.sourceAgentRequisite.agent.description} | Комментарий |
${formatter.loadAgent(o.sourceAgent.id).tags} | Группы |
${o.sourceAgentRequisite.agent.externalCode} | Внешний код |
${o.sourceAgentRequisite.agent.id} | UUID |
${o.sourceAgentRequisite.agent.archived} | Архивный |
${formatter.loadAgent(o.sourceAgent.id).tail.balance / 100} | Баланс |
Владелец-сотрудник
Формула | Значение |
${o.sourceAgentRequisite.agent.getOwnerName()} | Владелец-сотрудник |
${o.sourceAgentRequisite.agent.getGroupName()} | Владелец-отдел |
${formatter.printIfElse(o.sourceAgentRequisite.agent.getShared(), "Да", "Нет")} | Общий доступ |
Юридические реквизиты
Формула | Значение |
${o.sourceAgentRequisite.legalTitle} | Полное наименование |
${o.sourceAgent.getCompanyType().name} | Тип контрагента |
${o.sourceAgentRequisite.legalAddress} | Юридический адрес |
${o.sourceAgentRequisite.INN} | ИНН |
${o.sourceAgentRequisite.KPP} | КПП |
${o.sourceAgentRequisite.okpo} | ОКПО |
${o.sourceAgentRequisite.ogrn} | ОГРН |
${o.sourceAgentRequisite.ogrnip} | ОГРНИП |
${o.sourceAgentRequisite.nomerSvidetelstva} | Номер свидетельства |
${o.sourceAgentRequisite.dataSvidetelstva} | Дата свидетельства |
${o.sourceAgentRequisite.agent.directorPosition} | Должность |
${o.sourceAgentRequisite.agent.director} | ФИО руководителя |
${o.sourceAgentRequisite.firstName} | Имя |
${o.sourceAgentRequisite.lastName} | Фамилия |
${o.sourceAgentRequisite.middleName} | Отчество |
${o.sourceAgentRequisite.birthDate} | Дата рождения |
${o.sourceAgentRequisite.sex.name} | Пол |
Банковские реквизиты
Основной счет:
Формула | Значение |
${o.sourceAgentRequisite.account.BIC} | БИК |
${o.sourceAgentRequisite.account.bankName} | Банк |
${o.sourceAgentRequisite.account.bankLocation} | Адрес |
${o.sourceAgentRequisite.account.correspondentAccount} | Корр. Счёт |
${o.sourceAgentRequisite.account.accountNumber} | Расчётный счет |
Счет по документу:
Формула | Значение |
${o.sourceAccount.BIC} | БИК |
${o.sourceAccount.bankName} | Банк |
${o.sourceAccount.bankLocation} | Адрес |
${o.sourceAccount.correspondentAccount} | Корр. Счёт |
${o.sourceAccount.accountNumber} | Расчётный счет |
Поля структурированного адреса
на примере юридического адреса контрагента в заказе покупателя:
Формула | Значение |
${o.sourceAgentRequisite.detailedLegalAddress.postalCode} |
Индекс |
${o.sourceAgentRequisite.detailedLegalAddress.country.name} |
Страна |
${o.sourceAgentRequisite.detailedLegalAddress.region.name} |
Регион |
${o.sourceAgentRequisite.detailedLegalAddress.city} |
Город |
${o.sourceAgentRequisite.detailedLegalAddress.street} |
Улица |
${o.sourceAgentRequisite.detailedLegalAddress.house} |
Дом |
${o.sourceAgentRequisite.detailedLegalAddress.apartment} |
Квартира или офис |
${o.sourceAgentRequisite.detailedLegalAddress.addInfo} |
Другое |
${o.sourceAgentRequisite.detailedLegalAddress.comment} |
Комментарий к адресу |
Для получения всех этих полей для Фактического адреса, нужно заменить o.sourceAgentRequisite.detailedLegalAddress на o.sourceAgentRequisite.detailedAddress
Цены и скидки
Формула | Значение |
${o.sourceAgentRequisite.agent.priceType.name} | Цены |
${formatter.getDiscount(o.sourceAgentRequisite.agent.id, "Персональная скидка")} | Персональная скидка |
${formatter.getDiscount(o.sourceAgentRequisite.agent.id, "Накопительная скидка")} | Накопительная скидка |
${formatter.getDiscount(o.sourceAgentRequisite.agent.id, "Бонусная программа")} | Бонусная программа |
${o.sourceAgentRequisite.agent.discountCardNumber} | Номер дисконтной карты |
Контактные лица
Первое по счету:
Формула | Значение |
${o.sourceAgent.getContactPersons().get(0).name} | ФИО |
${o.sourceAgent.getContactPersons().get(0).position} | Должность |
${o.sourceAgent.getContactPersons().get(0).phone} | Телефон |
${o.sourceAgent.getContactPersons().get(0).email} | |
${o.sourceAgent.getContactPersons().get(0).description} | Комментарий |
Если необходим вывод второй по счету карточки контактного лица, то в формуле изменяется значение на get(1).
Если необходим вывод всех контактных лиц, можно использовать перебор:
<jx:forEach items="${formatter.loadAgent(o.sourceAgent.id).contactPersons}" var="person"> //формула вывода данных </jx:forEach> |
Формулы вывода данных в теле перебора — можно указать одну или несколько формул:
Формула | Значение |
${person.name} | ФИО |
${person.position} | Должность |
${person.phone} | Телефон |
${person.email} | |
${person.description} | Примечание |
События
События выводятся через перебор:
<jx:forEach items="${formatter.loadAgent(o.sourceAgent.id).news}" var="newsItem"> //формула вывода данных </jx:forEach> |
Формулы вывода данных в теле перебора — можно указать одну или несколько формул:
Формула | Значение |
${newsItem.updatedBy} | Дата |
${newsItem.updated} | Сотрудник |
${newsItem.text} | Текст |
Дополнительные поля
Общим правилом оформления формулы вывода дополнительного поля из карточки контрагента является структура:
${formatter.findAttribute(o.sourceAgent, "наименование поля").value}
Основные параметры:
- sourceAgent или targetAgent — указатель на источник данных, это либо карточка контрагента (source), либо информация из закладки юр. лица (target).
- "Наименование поля" — точное наименование дополнительного поля в кавычках (с учетом регистра, дополнительных символов и т.д.).
- value — тип, по которому создано пользовательское поле.
Формула | Тип поля |
${formatter.findAttribute(o.sourceAgent, "Наименование поля").valueText} | Текст |
${formatter.findAttribute(o.sourceAgent, "Наименование поля").valueString} | Строка |
${formatter.findAttribute(o.sourceAgent, "Наименование поля").value} | Ссылка |
${formatter.findAttribute(o.sourceAgent, "Наименование поля").longValue} | Число целое |
${formatter.findAttribute(o.sourceAgent, "Наименование поля").doubleValue} | Число дробное |
${formatter.findAttribute(o.sourceAgent, "Наименование поля").timeValue} | Дата |
${formatter.findAttribute(o.sourceAgent, "Наименование поля").entityValue.name} | Наименование из дополнительного справочника |
${formatter.findAttribute(o.sourceAgent, "Наименование поля").employeeValue.name} | Наименование из справочника сотрудников |
${formatter.findAttribute(o.sourceAgent, "Наименование поля").agentValue.name} | Наименование из справочника контрагентов |