Как вывести сумму прописью и настроить склонение текста в печатных формах 1С:БГУ 2.0?

Программист 1С v8.3 (Управляемые формы) Бухгалтерский учет Сфера услуг, туризм и социальный сектор
← На главную

Разработка печатных форм в 1С:БГУ 2.0 часто требует вывода дополнительных реквизитов, таких как сумма прописью или корректное склонение наименований договоров и должностей. Рассмотрим пошагово, как реализовать эти задачи, избегая типичных ошибок.

Вывод суммы прописью в печатной форме

Многие разработчики сталкиваются с тем, что функция ЧислоПрописью не выводит данные в макет или отображает число вместо текста. Главная причина кроется в попытке переопределить уже существующий параметр ячейки, предназначенный для числового значения. Мы рекомендуем использовать отдельный параметр.

Порядок действий:

  1. Откройте макет печатной формы в конфигураторе.
  2. Добавьте в область, где выводится сумма, новый параметр (например, пИтогСуммаПропись).
  3. В свойствах ячейки установите заполнение в режиме «Шаблон».
  4. В модуле объекта или менеджера печати используйте следующий код:

СуммаЧисло = Выборка.СуммаПоДокументу;
СуммаПропись = ЧислоПрописью(СуммаЧисло, \"Л=ru_RU;ДП=Истина\", \"рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2\");
ОбластьД.Параметры.СуммаЧисло = СуммаЧисло;
ОбластьД.Параметры.СуммаПропись = СуммаПропись;
ТабДокумент.Вывести(ОбластьД);

Обратите внимание на параметры функции ЧислоПрописью: строка \"Л=ru_RU;ДП=Истина\" определяет локализацию и необходимость вывода копеек, а следующая строка задает правила склонения валюты (рубли/копейки) для мужского и женского рода.

Реализация автоматического склонения строк

Склонение наименований договоров — более сложная задача, так как встроенные механизмы не всегда справляются со специфическими терминами, такими как «Депздрав». Для решения этой задачи рекомендуется использовать алгоритмические функции, работающие на основе анализа окончаний слов.

Шаг 1: Добавление функций склонения

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


Функция ПадежП(Знач z1, Знач z2, z3 = 0)
    // Функция анализирует строку и возвращает значение в требуемом падеже
    // z2 - номер падежа (например, 5 - творительный)
    // ... логика обработки окончаний ...
    Возврат Результат;
КонецФункции

Шаг 2: Применение в коде формирования формы

После того как функция склонения добавлена, вызовите ее при заполнении параметров макета:


Дог = Выборка.ДоговорВПадеже;
ДогП = ПадежП(СокрЛП(Дог), 5); // 5 - творительный падеж
ОбластьД.Параметры.ДоговорВПадеже = ТРег(ДогП);

Важный момент: для корректного отображения результата используйте функцию ТРег(), которая приводит первую букву каждого слова к верхнему регистру. Это необходимо, так как алгоритмы склонения часто преобразуют весь текст в нижний регистр для внутреннего анализа.

Рекомендации для сложных случаев

Хотя программное склонение решает большинство задач, для особо сложных названий (например, аббревиатур или имен собственных) оно может давать сбои. Мы советуем следовать этим правилам:

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

← На главную