Заметки
Как вывести список связанных элементов в таблицу Word
Как подготовить связанные элементы для вывода в таблицу Word-шаблона: множественные поля, строки таблицы и смарт-процессы.
Для таблицы в Word лучше заранее подготовить список строк и не перекладывать поиск связанных элементов на шаблон. Шаблон должен только красиво вывести уже готовые данные.
Задача
В документе часто нужно вывести не одно значение, а список связанных элементов: товары, этапы работ, субподряды, оплаты или строки смарт-процесса.
Подготовка данных
Генератор документов не должен сам искать сложную бизнес-логику. Лучше заранее подготовить массив строк: название, количество, цена, сумма, комментарий.
$rows = [];
foreach ($items as $item) {
$rows[] = [
'NAME' => $item['TITLE'],
'QUANTITY' => (float)$item['QUANTITY'],
'PRICE' => (float)$item['PRICE'],
'SUM' => (float)$item['QUANTITY'] * (float)$item['PRICE'],
];
} Если данные находятся в смарт-процессе, сначала получите связанные элементы через REST или D7, а потом передайте в документ уже очищенную структуру.
Таблица в шаблоне
В Word-шаблоне под список обычно делают таблицу. Одна строка служит образцом, а поля внутри строки заменяются значениями очередного элемента.
Важно, чтобы названия полей в шаблоне совпадали с тем, что ожидает генератор. Если поле не выводится, сначала проверяйте доступные поля шаблона.
BX24.callMethod(
'crm.documentgenerator.template.getfields',
{
id: 41,
entityTypeId: 2,
entityId: 123,
},
function (result) {
console.log(result.data());
}
); Ограничения
Если список сложный, с вложенными группами и итогами, иногда проще сформировать отдельный файл или таблицу и прикрепить её к сделке. Генератор документов хорошо подходит для понятных повторяющихся строк, но не всегда удобен как полноценный отчётный движок.