Корректный вывод суммы и сроков в печатной форме

16.11.22

Задачи пользователя - Адаптация типовых решений

Простой лайфхак для вывода суммы или числа дней В скобках и склоняемых единиц измерения или валюты ЗА скобками.

Хочу поделиться простым лайфхаком (кому-то может показаться слишком простым) о том, как вывести в печатной форме сумму в виде

"(сумма прописью") <склоняемая валюта>" (например, "(двенадцать тысяч триста два) рубля") или количества дней в виде "<ЧислоДней> (ЧислоДнейПрописью) <склоняемая единица измерения> <произвольный текст>" (например, "21 (двадцать один) рабочий день с даты подписания Договора").

Использовал функции:
ПолучитьСклоненияСтрокиПоЧислу();
ЧислоПрописью();
СтрЗаменить()

Порядок выполнения (на примере количества дней):

  1. ТекстДней = СокрП(ЧислоПрописью(Выборка.Работы.СрокиВыполнения, 
                        ОбщегоНазначения.КодОсновногоЯзыка(),  
                        ", , , , , , , , 0"));

    Здесь: ЧислоПрописью(Число, ФорматнаяСтрока, ПараметрыПредметаИсчисления) - Формирует представление числа прописью в соответствии с заданными форматной строкой и параметрами предмета исчисления. Описание можно посмотреть в синтаксис-помощнике.

Выборка.Работы.СрокиВыполнения - результат запроса, в котором указывается число дней, например, "21", тип - "Число";

ОбщегоНазначения.КодОсновногоЯзыка() - ФорматнаяСтрока; ", , , , , , , , 0" - ПараметрыПредметаИсчисления, вообще здесь указываются единицы измерения валюты (рубли, копейки), но у меня другие единицы измерения, поэтому валюта мне не нужна.

Результат: "Двадцать один"

  1. ТекстДнейПечать = ПолучитьСклоненияСтрокиПоЧислу("рабочий день", ВыборкаРаботы.СрокиВыполнения,,
    				"ЧС=Количественное", "ПД=Именительный; ПЧ=ЧислоПрописью")[0];

    Здесь: ПолучитьСклоненияСтрокиПоЧислу(СклоняемаяСтрока, Число, СклоняемыеЕдиницыИзмерения, ОписаниеСтроки, ФорматнаяСтрока, ФорматнаяСтрокаЧисла)

В примере: СклоняемаяСтрока = "рабочий день",

Число - ВыборкаРаботы.СрокиВыполнения - число дней, указанные в документе в табличной части,

СклоняемыеЕдиницыИзмерения - у меня ничего не указано, это необязательный параметр,

ОписаниеСтроки - здесь указывается код локализации (по умолчанию используется установленный в системе) и тип числительного (количественное или порядковое). Количественное используется для целых и дробных значений, порядковое - только для целых.

ФорматнаяСтрока - содержит параметры форматирования: падеж, представление числа. В примере это именительный падеж и число прописью.

Результат = "Двадцать один рабочий день"

  1. ОбластьСтрокаТаблицы.Параметры.СрокиВыполнения = Строка(ВыборкаРаботы.СрокиВыполнения) + 
    " (" + ТекстДней + ")" + СтрЗаменить(ТекстДнейПечать, ТекстДней,"") + 
    " с даты подписания Задания";

    Сразу записываю в параметр макета печатной формы.

Перевожу в строку значение числа дней, "прибавляю" скобки и значение переменной "ТекстДней", затем "прибавляю" закрывающие скобки, добавляю результат замены строки и, если нужно, произвольный текст.

Использование функции СтрЗаменить: 

СтрЗаменить(ТекстДнейПечать, ТекстДней,"")

ищу значение переменной "ТекстДней" в переменной "ТекстДнейПечать", меняю найденное значение на "". Значение в любом случае будет найдено, т.к. в первых двух шагах получается практически одинаковое значение, за исключением самих единиц измерения. Но нам нужно вынести их (единицы) за скобки. Поэтому, то, что нашлось, меняем на "", остается "рабочий день", только уже с необходимым склонением.

 

Таким образом, получили "21 (Двадцать один) рабочий день"

 

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

	СуммаПрописью = СокрП(ЧислоПрописью(ИтогСумма, ФорматнаяСтрока, ПараметрыПредметаИсчисления));
	
	ТекстСумма = ПолучитьСклоненияСтрокиПоЧислу("рубль", ИтогСумма,,
				"ЧС=Количественное", "ПД=Именительный; ПЧ=ЧислоПрописью")[0];
	ОбластьИтогоПрописью.Параметры.ИтогСуммаПрописью = "(" + СуммаПрописью + ")" + СтрЗаменить(ТекстСумма,СуммаПрописью,"");
	
	ТабДок.Вывести(ОбластьИтогоПрописью);

Результаты вывода на картинке

 

 

Тестировал на УНФ 1.6.27.270 на платформе 8.3.20.1789 (скриншот с данными из демо-базы УНФ)

В принципе, использовались функции БСП.

Вступайте в нашу телеграмм-группу Инфостарт

печатная форма вывод суммы сроков единицы измерения за скобками корректный

См. также

Адаптация типовых решений 1С:Предприятие 8 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

32330 руб.

29.06.2023    11574    35    15    

41

Печатные формы Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с соответствующими именами, при выводе на печать в размещённые картинки будут выводиться факсимиле из прикреплённых рисунков. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

5500 руб.

07.02.2023    12440    116    20    

71

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36600 руб.

28.08.2025    7147    2    2    

6

Адаптация типовых решений 1С 8.3 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Беларусь Россия Платные (руб)

Расширение "Дополнительные документы" предназначено для создания дополнительных документов различного назначения, как форм для внесения данных так и печатных форм в расширяемой конфигурации пользовательскими средствами, без работы в конфигураторе и внесения изменений в структуру данных. Тестировалось для "1С:БП", "1С:УНФ","1С:КА"

21859 руб.

29.12.2025    1020    1    8    

2

Банковские операции Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

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

9760 руб.

17.06.2025    3021    8    0    

8

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Расширение для УНФ, чтобы автоматически отменять старые резервы и не мешалть эффективно продавать.

9150 руб.

02.08.2023    7824    25    5    

41

Адаптация типовых решений 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Расширение для вывода информации об остатках и ценах номенклатуры в форме списка и выбора номенклатуры. (УТ 11, КА 2, ERP). Позволяет получать информацию о ценах, остатках и доступности в разрезе складов и характеристик номенклатуры, информацию по документам резерва.

7930 руб.

16.10.2025    1026    1    0    

1
Для отправки сообщения требуется регистрация/авторизация