Строка «Сто двадцать пять тысяч рублей 00 копеек» в договоре — последнее, что менеджеры продолжают набирать руками, когда всё остальное уже подставляет шаблон. Набирают с ошибками в окончаниях, а замечает их юрист контрагента. Хорошая новость: в шаблонах документов Битрикс24 сумма прописью есть штатно. Плохая: работает она не везде, и отказывает молча — вместо слов в документ просто встают цифры. Разберём, как включить штатный способ, где проходят его границы и как получить сумму словами там, куда шаблон не дотягивается.
Как вывести сумму прописью в шаблоне документа?
В шаблонах документов к коду поля можно дописать модификатор — приписку, которая меняет вид значения. Пишется она через тильду сразу за кодом, без пробелов: {TotalSum~W=Y}. В готовом документе вместо «125 000,00 ₽» встанет «Сто двадцать пять тысяч рублей 00 копеек». Копейки по бухгалтерской традиции остаются цифрами, а сумма с третьим знаком после запятой сначала округляется до копеек.
Рядом с W живут ещё две приписки к денежным полям, их можно комбинировать через запятую: NS=Y убирает валюту, WZ=Y всегда показывает нули в копейках, если сумма выводится цифрами. Связка {TotalSum~W=Y,NS=Y} даёт только целую часть словами — «Сто двадцать пять тысяч», без рублей и без копеек. Это удобно, когда в договоре принят формат «125 000 (Сто двадцать пять тысяч) рублей 00 копеек»: число и валюта пишутся в шаблоне, слова — модификатором. Как устроен сам шаблон, коды полей и реквизиты сторон — в статье про шаблоны документов.
Почему сумма прописью не выводится?
Модификатор не выдаёт ошибок: если он не может написать сумму словами, документ получает обычные цифры. Причин четыре.
Валюта не из списка. Прописью поддержаны только рубли, белорусские рубли, гривны и тенге. Сделка в долларах или евро — и ~W=Y тихо превращается в «1 500,00 $». Гривны, кстати, выводятся по-украински.
Поле не денежное. Модификатор работает с денежными значениями: сумма сделки, суммы товаров, пользовательские поля типа «Деньги». Если сумма к оплате лежит в поле типа «Число» или «Строка», приписка W на него не действует.
Сумму считали вне документа. Аванс 30 %, сумма со скидкой, остаток к оплате — всё, что получается расчётом, обычно складывают в отдельное поле. Если это поле «Число», см. предыдущий пункт.
Опечатка в коде. Пробел перед тильдой, русская «W» вместо латинской, код поля, набранный вручную вместо скопированного со страницы шаблона, — и Битрикс24 подставит значение без модификатора или не подставит вовсе.
Как сделать сумму прописью в долларах или евро?
Штатно — никак: ни W=Y, ни связка с NS=Y для этих валют словами не пишут. Обход — посчитать текст заранее и подставить в шаблон готовой строкой. Робот «Сумма прописью» в режиме none возвращает число словами без названия валюты: на входе 1500 — на выходе «Одна тысяча пятьсот». Валюту в шаблоне ставьте так, чтобы ей не нужно было склоняться по числу: «Сумма в долларах США: {сумма словами}» или «1 500 (Одна тысяча пятьсот) USD». «Долларов» после числа на 21 или 1 001 превратится в ошибку, а код валюты не склоняется.
Как получить сумму прописью в поле сделки, письме или задаче?
Модификатор живёт только внутри шаблона документа. Как только сумма словами нужна где-то ещё — в письме клиенту, в задаче бухгалтеру, в комментарии, в карточке, — брать её неоткуда. Здесь работает схема из двух шагов в бизнес-процессе или роботах стадии:
- Робот «Сумма прописью» получает сумму сделки и возвращает два значения: полную строку с рублями и копейками («Одна тысяча двести тридцать четыре рубля 56 копеек») и отдельно целую часть словами.
- Штатное действие «Изменить документ» или робот «Обновить сделку по ID» записывает результат в пользовательское поле типа «Строка» — например, «Сумма прописью».
Дальше это обычное поле: его видно в карточке, его подставляет любой шаблон документа без модификаторов, его можно вставить в уведомление или письмо из процесса. Чтобы поле не отставало от суммы, ставьте робота на изменение сделки или на стадию перед генерацией документа. Для старых сделок поле заполнит массовый запуск бизнес-процесса по нужной выборке.
Как вывести прописью посчитанную сумму: аванс, скидку, остаток?
Сначала посчитайте, потом округлите, потом переводите в слова. Процент от суммы — аванс 30 % или скидка 5 % — даёт робот «Процент от числа», он сразу округляет результат до двух знаков. Остальные приёмы расчёта собраны в статье про вычисления в бизнес-процессах.
Если же сумму считает формула в дизайнере процесса, результат легко получается с тремя и более знаками после запятой: 30 % от 33 333,33 — это 9 999,999. Здесь важна разница между штатным способом и роботом. Модификатор в шаблоне сумму округляет. Робот «Сумма прописью» берёт два знака после запятой и отбрасывает остальные: 9 999,999 станет «Девять тысяч девятьсот девяносто девять рублей 99 копеек», а не «Десять тысяч рублей». Поэтому между формулой и переводом в слова поставьте робот «Округлить число» с точностью 2 — тогда слова и цифры в документе совпадут до копейки.
Отрицательные суммы робот словами не пишет: возврат или корректировку переводите по модулю и подписывайте словом «минус» или «возврат» в самом тексте.
Как проверить, что сумма прописью пишется правильно?
Сгенерируйте тестовый документ или прогоните процесс на трёх-четырёх суммах, которые ловят почти все ошибки окончаний: 1 000 (рублей), 1 001 (рубль), 1 234,56 (рубля, копеек), 21,01 (рубль, копейка). Отдельно — сумма на сделке в другой валюте, если такие у вас бывают: так вы увидите, что шаблон молча выведет цифры, до того как это увидит клиент.
Когда проверка прошла, уберите ручную строку из инструкции менеджерам и из самого шаблона. Пока она там есть, её будут дописывать по привычке, и рядом с автоматической строкой появится вторая.
Что дальше
Начните с шаблона договора: поставьте ~W=Y к сумме и проверьте на рублёвой сделке. Если сумма лежит в поле «Число», приходит из расчёта или нужна вне документа — добавьте в процесс робота «Сумма прописью» и запишите результат в строковое поле. Остальные кирпичи для документов — даты, реквизиты, проверка заполненности — в статье про генерацию документов и в каталоге роботов. А если нужного преобразования в каталоге нет — например, суммы словами в другой валюте или копеек прописью, — опишите задачу: «Роботека» делает недостающих роботов бесплатно и выкладывает в общую библиотеку.