solOS

Настроить шаблон

Перейдите в Генератор документов, если он вам доступен, из левого навигационного меню.

Все действия выполняются внутри карточки шаблона. Некоторые операции могут быть недоступны из-за индивидуальных прав доступа пользователя.

Кратко как пользоваться

Загрузите шаблон с переменными вида {{client_name}}, {{doc_number}}, {{manager_name}}. После загрузки укажите для каждой переменной JSON-свойство, откуда брать значение.

Для обычного поля укажите путь к данным или шаблонное выражение.

solos_projects.name
${solos_projects.client.inn}
Договор № ${solos_projects.contract_number}

Если нужно преобразовать значение целиком, выберите подходящую обработку в поле Обработка. Если нужно взять часть строки, заменить текст, посчитать количество строк или сложить сумму по списку, используйте фильтры в JSON-свойстве.

Синтаксис JSON-свойств

В JSON-свойствах можно указывать путь к значению, использовать шаблонные выражения, fallback-значения, массивы и фильтры строк или списков.

Обычный путь

Шаблон JSON-свойства:

solos_projects.name
solos_projects.client.inn
solos_projects.leasing.status
solos_projects.created.long_date

Например, путь solos_projects.client.inn выведет ИНН клиента проекта.

Старый формат без ${...} работает. Пробелы в таком пути удаляются автоматически.

Шаблон JSON-свойства:

solos_clients . inn

Будет сохранено как solos_clients.inn.

Шаблонный формат

Шаблон JSON-свойства:

${solos_projects.name}
${solos_projects.client.inn}

Например, шаблон ${solos_projects.name} выведет название проекта.

Можно смешивать значения с обычным текстом.

Шаблон JSON-свойства:

Договор № ${solos_projects.contract_number} от ${solos_projects.contract_date.full_date}

Например, значения 45/2025 и 25 апреля 2025 г. будут выведены как Договор № 45/2025 от 25 апреля 2025 г..

Для переноса строки используйте \n.

Шаблон JSON-свойства:

${solos_clients.name}\nИНН ${solos_clients.inn}

Например, значение ООО Ромашка и ИНН 7700000001 будут выведены в две строки.

Fallback через ||

Можно указать несколько значений через ||. Будет взято первое непустое значение.

Шаблон JSON-свойства:

solos_projects.client.name || solos_clients.name

Если solos_projects.client.name пустое, будет использовано значение solos_clients.name.

Fallback работает и внутри шаблонного формата.

Шаблон JSON-свойства:

${solos_projects.client.inn || directory_company.inn}

Если ИНН клиента проекта пустой, будет выведен ИНН из реквизитов компании.

Фильтры строк и списков

Фильтр указывается после пути через |. Фильтры выполняются слева направо, их можно комбинировать.

Первые N символов.

Шаблон JSON-свойства:

${solos_clients.name | left:20}

Например, значение Общество с ограниченной ответственностью Ромашка будет выведено как Общество с огранич.

Последние N символов.

Шаблон JSON-свойства:

${directory_company.inn | right:4}

Например, значение 7700000001 будет выведено как 0001.

Фрагмент строки с позиции и длиной. Позиция считается с нуля.

Шаблон JSON-свойства:

${directory_company.ogrn | slice:3:4}

Например, из значения 1027700000001 будет взят фрагмент 7700.

Удалить пробелы по краям.

Шаблон JSON-свойства:

${solos_clients.name | trim}

Например, значение ООО Ромашка будет выведено как ООО Ромашка.

Удалить текст в начале строки, если он там есть.

Шаблон JSON-свойства:

${doc.number | remove_start:№ | trim}

Например, значение № 45/2025 будет выведено как 45/2025.

Удалить текст в конце строки, если он там есть.

Шаблон JSON-свойства:

${solos_projects.contract_date.full_date | remove_end:г. | trim}

Например, значение 25 апреля 2025 г. будет выведено как 25 апреля 2025.

Заменить текст во всей строке.

Шаблон JSON-свойства:

${company.name | replace:ООО:АО}

Например, значение ООО Ромашка будет выведено как АО Ромашка.

Фильтр replace делает обычную текстовую замену, без регулярных выражений.

Шаблон JSON-свойства:

${text | replace:старый текст:новый текст}

Например, значение Раздел 1: подраздел 2 при замене Раздел 1 на Пункт 1 будет выведено как Пункт 1: подраздел 2.

Разбить строку по словам и вывести каждое слово с новой строки.

Шаблон JSON-свойства:

${company.name | words}

Например, значение ООО Ромашка Плюс будет выведено в три строки: ООО, Ромашка, Плюс.

Можно выводить по несколько слов в строке.

Шаблон JSON-свойства:

${company.name | words:2}

Например, значение Общество с ограниченной ответственностью Ромашка будет выведено в три строки: Общество с, ограниченной ответственностью, Ромашка.

Посчитать количество элементов списка.

Шаблон JSON-свойства:

${solos_projects.goods[] | count}
${solos_projects.goods[].good | count}

Например, если в проекте три позиции, будет выведено 3.

Сложить числовые значения списка.

Шаблон JSON-свойства:

${solos_projects.goods[].quantity | sum}
${solos_projects.goods[].amount | sum}

Например, значения 1000, 2 000,50 и 300 будут сложены и выведены как 3300.5.

Если сумму нужно вывести как деньги, укажите JSON-свойство с | sum, а в поле Обработка выберите денежный формат или деньги прописью.

Фильтры | count и | sum работают во всех видах шаблонов. В Word они часто используются для итогов под таблицей.

Фильтры можно использовать вместе с fallback. Если фильтр стоит после последнего варианта, он применяется к выбранному непустому значению.

Шаблон JSON-свойства:

${solos_projects.client.name || solos_clients.name | left:20}

Если первое значение пустое, будет взято второе значение и обрезано до 20 символов.

Фильтры можно комбинировать.

Шаблон JSON-свойства:

${solos_clients.name | trim | left:20}

Сначала будут удалены пробелы по краям, затем строка будет обрезана до 20 символов.

Шаблон JSON-свойства:

${company.name | trim | replace:ООО:АО | words}

Сначала будут удалены пробелы по краям, затем ООО будет заменено на АО, после этого слова будут перенесены на новые строки.

Массивы

Можно получить конкретный элемент массива.

Шаблон JSON-свойства:

solos_projects.goods[0].good
solos_projects.leasing_schedule[1].price

Например, solos_projects.goods[0].good выведет наименование первого предмета.

Можно вывести все значения одного поля из массива построчно.

Шаблон JSON-свойства:

solos_projects.goods.good

Например, все предметы лизинга будут выведены отдельными строками.

Можно собрать строку по каждому элементу массива.

Шаблон JSON-свойства:

${solos_projects.goods[].good} — ${solos_projects.goods[].quantity} × ${solos_projects.goods[].price}
${solos_projects.leasing_schedule[].payment_date.date} - ${solos_projects.leasing_schedule[].price}

Например, для каждого предмета можно вывести наименование, количество и цену в одной строке.

Фильтры работают и для значений массива.

Шаблон JSON-свойства:

${directory_company.okveds[].name | left:8}
${directory_company.okveds[].name | words:2}

Например, каждое название ОКВЭД будет обработано отдельно и выведено построчно.

Если указать сам массив, каждый элемент будет выведен отдельной строкой как объект.

Шаблон JSON-свойства:

solos_projects.goods[]

Обработка значения

Для каждой переменной шаблона можно выбрать дополнительную обработку значения перед генерацией документа.

Используйте обработку, когда нужно преобразовать всё значение: изменить регистр, оставить только буквы или числа, отформатировать деньги, вывести число прописью или получить инициалы.

Инициалы

Выберите обработку Инициалы, чтобы привести ФИО к формату, который используется для пользователей системы.

Например, значение Иванов Иван Иванович будет выведено как Иванов И.И..

Если значение уже похоже на инициалы, например Иванов И.И., повторно оно не преобразуется.

Когда использовать обработку, а когда фильтры

Поле Обработка используйте для стандартного преобразования всего значения.

Фильтры в JSON-свойстве используйте, когда нужно взять часть строки, удалить текст в начале или конце, заменить фрагмент текста, разнести слова по строкам, посчитать количество элементов или сложить значения списка.

Шаблоны JSON-свойств:

${directory_company.inn | right:4}
${solos_projects.contract_date.full_date | remove_end:г. | trim}
${company.name | replace:ООО:АО}
${company.name | words}
${solos_projects.goods[] | count}
${solos_projects.goods[].amount | sum}

Например, ИНН 7700000001 можно вывести как 0001, дату 25 апреля 2025 г. как 25 апреля 2025, название ООО Ромашка как АО Ромашка, значение ООО Ромашка Плюс разнести по словам на отдельные строки, количество позиций вывести как число, а суммы позиций сложить в итог.

Таблицы Word

Таблицы создаются в самом Word-шаблоне. Генератор не рисует таблицу с нуля, а размножает строку Word-таблицы и подставляет значения в ячейки.

Сделайте в Word обычную таблицу: шапку, одну строку для данных и, если нужно, строки итогов. В строке данных укажите переменные шаблона.

№ | Наименование | Кол-во | Цена | Сумма
{{table_no}} | {{table_name}} | {{table_qty}} | {{table_price}} | {{table_amount}}

Для переменных строки данных укажите JSON-свойства с фильтром | table.

{{table_name}}   -> ${solos_projects.goods[].good | table}
{{table_qty}}    -> ${solos_projects.goods[].quantity | table}
{{table_price}}  -> ${solos_projects.goods[].price | table}
{{table_amount}} -> ${solos_projects.goods[].amount | table}

Фильтр | table означает: взять значения из массива и создать отдельную строку таблицы для каждого элемента.

Для номера строки используйте служебное значение ${table.number}. Это автонумерация строк.

{{table_no}} -> ${table.number}

${table.number} работает только внутри строки Word-таблицы, где есть значения с | table. Он выводит порядковый номер каждой созданной строки.

Все поля с | table в одной строке должны относиться к одному списку данных. Например, для товаров используйте поля из solos_projects.goods[]. Если для какой-то колонки значения нет, ячейка останется пустой.

Не ставьте | table в шапке таблицы, строках «Итого», подписях и обычных полях документа. Иначе эта строка тоже будет считаться строкой данных.

Итоги под Word-таблицей

Строки итогов оформляйте прямо в Word: можно объединять колонки, менять шрифт, делать жирный текст и выравнивание. Генератор сохранит оформление и подставит значения в переменные.

В строках итогов используйте | count и | sum, но не используйте | table.

Всего позиций: {{goods_count}}
Всего единиц: {{qty_sum}}
Итого к оплате: {{amount_sum}}
Сумма прописью: {{amount_sum_words}}

Настройки переменных:

{{goods_count}}       -> ${solos_projects.goods[] | count}
{{qty_sum}}           -> ${solos_projects.goods[].quantity | sum}
{{amount_sum}}        -> ${solos_projects.goods[].amount | sum}
{{amount_sum_words}}  -> ${solos_projects.goods[].amount | sum}

Для переменной {{amount_sum}} выберите обработку денежного формата. Для переменной {{amount_sum_words}} выберите обработку денег прописью.

Так можно сделать счёт, коммерческое предложение или спецификацию: строки позиций создаются через | table, а итоги под таблицей считаются через | count и | sum.

Написать нам