← Назад к вопросам

Печатная форма документа с суммой прописью

2.0 Middle🔥 161 комментариев
#Стандарты разработки#Формы и интерфейс

Условие

Создайте печатную форму для документа "РеализацияТоваровУслуг" с выводом суммы прописью.

Требования:

  • Шапка: номер и дата документа, контрагент, организация
  • Табличная часть: номенклатура, количество, цена, сумма
  • Подвал: итоговая сумма цифрами и прописью
  • Место для подписи

Формат суммы прописью

Пример: 12 345,50 руб. → "Двенадцать тысяч триста сорок пять рублей 50 копеек"

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Решение

Печатная форма документа с суммой прописью в 1С

В 1С:Предприятие для создания печатной формы документа используется макет печатной формы в конструкторе или программно. Рассмотрим оба подхода решения этой задачи.

Архитектура решения

1. Макет печатной формы (рекомендуется)

  • Создаётся в конструкторе в разделе Макеты документа
  • Используется встроенный язык 1С для добавления функциональности
  • Формирование суммы прописью выполняется через встроенную функцию или модуль

2. Программный способ

  • Реализация через программный интерфейс ОСП
  • Более гибкий, но требует больше кода

Встроенная функция суммы прописью

В 1С:Предприятие 8 существует встроенная функция ЧислоПрописью():

// Пример использования функции
Сумма = 12345.50;
СуммаПрописью = ЧислоПрописью(
    Сумма,
    "Рубль",
    "Копейка",
    "РЕД"
);
// Результат: Двенадцать тысяч триста сорок пять рублей 50 копеек

Структура макета печатной формы

Макет содержит три основных раздела:

Шапка документа:

  • Наименование и номер документа
  • Дата документа
  • Организация (реквизиты: название, ИНН, КПП, адрес)
  • Контрагент (название, ИНН, адрес доставки/выставления)

Табличная часть:

  • Колонки: номер по порядку, номенклатура, количество, единица измерения, цена, сумма
  • Данные берутся из табличной части Товары документа
  • Расчёт суммы по строкам

Подвал:

  • Итоговая сумма цифрами
  • Сумма прописью
  • Место для подписей (наименования должностей и ФИ)

Программная реализация

Модуль документа с методом печати:

// ОбщийМодуль для работы с печатными формами
Функция ПолучитьМакет(ИмяМакета)
    Возврат ЭтотОбъект.ПолучитьМакет(ИмяМакета);
КонецФункции

// Функция для расчёта суммы прописью
Функция СуммаПрописью(Сумма)
    Возврат ЧислоПрописью(
        Сумма,
        "Рубль",
        "Копейка",
        "РЕД"
    );
КонецФункции

// Процедура печати документа
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм)
    Для Каждого Документ Из МассивОбъектов Цикл
        Макет = ПолучитьМакет("ПечатнаяФорма");
        ОбластьШапка = Макет.ОбластиДанных.Шапка;
        ОбластьТабличнаяЧасть = Макет.ОбластиДанных.ТабличнаяЧасть;
        
        // Заполнение шапки
        ОбластьШапка.Параметры.НомерДокумента = Документ.Номер;
        ОбластьШапка.Параметры.ДатаДокумента = Документ.Дата;
        ОбластьШапка.Параметры.Организация = Документ.Организация;
        ОбластьШапка.Параметры.Контрагент = Документ.Контрагент;
        
        // Заполнение табличной части
        ОбластьТабличнаяЧасть.Параметры.Товары = Документ.Товары;
        
        // Расчёт итоговой суммы
        ИтоговаяСумма = 0;
        Для Каждого Строка Из Документ.Товары Цикл
            ИтоговаяСумма = ИтоговаяСумма + Строка.Сумма;
        КонецЦикла;
        
        // Подвал с суммой прописью
        Макет.ОбластиДанные.Подвал.Параметры.ИтоговаяСумма = ИтоговаяСумма;
        Макет.ОбластиДанные.Подвал.Параметры.СуммаПрописью = СуммаПрописью(ИтоговаяСумма);
        
        // Вывод в коллекцию печатных форм
        КоллекцияПечатныхФорм.Добавить(Макет);
    КонецЦикла;
КонецПроцедуры

Параметры функции ЧислоПрописью()

  • Параметр 1: число или сумма для преобразования
  • Параметр 2: именительный падеж валюты (ед. число) - Рубль
  • Параметр 3: для дробной части - Копейка
  • Параметр 4: род, число, падеж - РЕД

Важные моменты

  • Форматирование даты: используй функцию Формат(Дата, ДФ=dd.MM.yyyy)
  • Форматирование сумм: функция Формат(Сумма, ЧDD,00)
  • Шрифты: в макете используй стандартные (Arial, Times New Roman)
  • Ориентация листа: выбирай портретную или альбомную в зависимости от количества колонок
  • Масштабирование: предусмотри масштабирование при печати для правильного отображения

Эта архитектура позволяет легко модифицировать печатную форму без изменения кода, а функция ЧислоПрописью() гарантирует корректное преобразование любых сумм.

Печатная форма документа с суммой прописью | PrepBro