← Назад к заметкам

Заметки

Как вывести список связанных элементов в таблицу 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());
    }
);

Ограничения

Если список сложный, с вложенными группами и итогами, иногда проще сформировать отдельный файл или таблицу и прикрепить её к сделке. Генератор документов хорошо подходит для понятных повторяющихся строк, но не всегда удобен как полноценный отчётный движок.