Формулы вывода данных контрагента из документа
Ознакомьтесь с полным списком формул в статье Основные формулы вывода данных из документа.
Ниже рассмотрим формулы реквизитов получателя или отправителя. В качестве примера возьмем Заказ покупателя.
Общим правилом оформление любой формулы реквизитов компании является структура:
${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} | Пол |
Для Казахстана
| Формула | Значение |
| ${formatter.printShortAgentIdentifiers(o.sourceAgent)} | ИИН / БИН |
| ${o.sourceAgentKzRequisite.iin} | ИИН |
| ${o.sourceAgentKzRequisite.bin} | БИН |
| ${o.sourceAgentKzRequisite.kbe} | КБе |
| ${o.sourceAgentKzRequisite.oked} | ОКЭД |
Банковские реквизиты
Основной счет:
| Формула | Значение |
| ${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} | Наименование из справочника контрагентов |