Документы и Печать · 10 мин
Как вывести итоги в печатной форме 1С
Как вывести итоги в печатной форме 1С: настройка макета, итоги по колонкам и группировкам, типовые и внешние печатные формы, типичные ошибки и проверка результата.
Итоги в печатной форме 1С — это суммарные значения по табличной части документа: общая сумма, количество, сумма НДС, итоги по группам товаров. Они выводятся в область макета, которая обычно называется «Подвал», «Итого» или «Всего», и заполняются либо автоматически из данных документа, либо расчётом в модуле менеджера печати.
Проблема «итоги не выводятся» почти всегда сводится к одной из трёх причин: в макете нет нужной области, параметры итогов не заполняются в коде печатной формы, либо значение считается по неправильному источнику данных. Ниже разобраны оба основных сценария — работа с типовой печатной формой и доработка макета, а также способы проверить результат.
Где в печатной форме живут итоги: структура макета
Табличный макет печатной формы в 1С устроен как набор именованных областей. Для документа с табличной частью стандартный набор выглядит так: «Шапка» (реквизиты документа), «Строка» (шаблон одной строки табличной части, выводится в цикле) и «Подвал» или «Итого» (выводится один раз после всех строк). Именно в последней области и размещаются итоговые ячейки.
Чтобы посмотреть макет типовой формы, откройте конфигуратор: раздел «Общие» → «Макеты» либо макет внутри конкретного документа или обработки печати. Ячейки с итогами обычно содержат параметры вида ИтогоСумма, ИтогоКоличество, ИтогоНДС — в свойствах ячейки у них установлено «Заполнение: Параметр».
Если в макете области «Подвал» нет вообще, итоги вывести не получится без доработки макета — печатная форма просто не содержит места для них. Это первая вещь, которую стоит проверить.
Вывод итогов в типовой печатной форме без доработок
В типовых конфигурациях (УТ, ERP, Бухгалтерия, Управление нашей фирмой) большинство печатных форм уже содержат итоги. Если их нет на бумаге, сначала проверьте, какой именно вариант формы выбран. Например, у счёта на оплату и ТОРГ-12 могут существовать версии «с НДС» и «без НДС», с колонкой скидок и без — итоговые строки у них различаются.
Порядок проверки: откройте документ, нажмите «Печать» и посмотрите полный список доступных форм. Часто нужный вариант с итогами по группам или с НДС скрыт в дополнительных формах. Также проверьте предпросмотр (кнопка «Предварительный просмотр» или Ctrl+Shift+P в табличном документе) — иногда «нет итогов» означает лишь то, что пользователь смотрит не на последнюю страницу.
- 1Откройте документ и нажмите кнопку «Печать»
- 2Просмотрите все доступные варианты формы, включая дополнительные
- 3Откройте предпросмотр и пролистайте до конца табличной части
- 4Убедитесь, что в документе заполнены суммы в табличной части — пустые строки дают нулевые итоги
- 5Если итогов нет ни в одном варианте — переходите к доработке макета или подключению внешней формы
Как добавить область итогов в собственный макет
Если форма дорабатывается, добавьте итоговую область в макет. Откройте макет в конфигураторе, выделите строки под областью «Строка», затем через меню «Таблица» → «Имена» → «Назначить имя» создайте область «Подвал» (или «Итого»). В ячейках этой области пропишите параметры: например, в ячейке под колонкой «Сумма» укажите [ИтогоСумма], а в свойствах ячейки установите заполнение «Параметр».
Для итогов по группам (например, по видам номенклатуры) добавьте промежуточные области «ИтогГруппы», которые будут выводиться при смене группы в цикле обхода строк. Это стандартный приём для форм с группировкой.
Заполнение итогов в модуле печати
Сам расчёт выполняется в модуле менеджера печати (типовые конфигурации) или в модуле внешней обработки. Логика такая: получаете область, заполняете параметры, выводите в табличный документ. Упрощённый фрагмент выглядит так:
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьПодвал.Параметры.ИтогоСумма = ТаблицаТоваров.Итог("Сумма");
ОбластьПодвал.Параметры.ИтогоКоличество = ТаблицаТоваров.Итог("Количество");
ОбластьПодвал.Параметры.ИтогоНДС = ТаблицаТоваров.Итог("СуммаНДС");
ТабличныйДокумент.Вывести(ОбластьПодвал);
Метод Итог("ИмяКолонки") работает для таблицы значений и табличной части и возвращает сумму по числовой колонке. Если данные берутся запросом, итоги удобнее получить через ИТОГИ в тексте запроса — тогда итоговые значения придут в отдельных строках выборки с типом записи «Общий итог» или по группировкам.
Часто в подвале требуется сумма прописью. Для этого используется функция формирования суммы прописью из общего модуля (в типовых — что-то вроде РаботаСКурсамиВалют.СформироватьСуммуПрописью или аналог, имя зависит от конфигурации), а также функция ЧислоПрописью() для количества.
Если итог по сумме не сходится с ручным пересчётом, проверьте, не суммируете ли вы колонку «Всего» вместо «Сумма» — в формах с НДС эти колонки различаются, и их подмена даёт расхождение ровно на сумму налога.
Итоги во внешних печатных формах
Если изменять конфигурацию нельзя (она на поддержке), итоги добавляют через внешнюю печатную форму, подключаемую через «Дополнительные отчеты и обработки». В модуле обработки реализуется функция СведенияОВнешнейОбработке() и процедура Печать(), где формируется табличный документ с собственным макетом — включая области итогов.
Плюс подхода: макет полностью под вашим контролем, можно вывести любые итоги — по группам, по страницам, нарастающим итогом. Минус: при обновлении конфигурации внешнюю форму нужно проверять на совместимость с изменившимися данными документа.
Способы добавить итоги
Подходит, если нужный вариант итогов уже есть среди доступных форм. Ограничение: состав итогов фиксирован разработчиком.
Полный контроль над областями и параметрами. Ограничение: требует снятия с поддержки и аккуратности при обновлениях.
Не трогает конфигурацию, легко распространяется. Ограничение: нужно поддерживать совместимость при обновлениях.
Проверка результата и типичные ошибки
После доработки сформируйте печатную форму документа с несколькими строками и сверьте: итог по сумме равен сумме значений колонки, итог по НДС сходится с итогом документа, сумма прописью соответствует цифровому итогу. Проверьте также документ с пустой табличной частью — итоги должны вывестись как ноль или пусто, а не вызывать ошибку.
Как проверить результат
Равен сумме значений колонки «Сумма» по всем строкам
Расходится на сумму НДС или скидки — суммируется не та колонка
Совпадает с числовым итогом, указана валюта
Пропись не соответствует цифрам или отсутствует
Итоги выводятся как 0 или пусто, ошибок нет
Ошибка при формировании или пустая строка без подвала
Подвал выводится один раз после последней строки
Итоги повторяются на каждой странице или после каждой строки
Ограничения и когда нужен разработчик
Простые случаи — выбрать другой вариант типовой формы или включить нужную колонку — пользователь решает самостоятельно. Добавление новой области в макет и написание кода заполнения параметров требуют навыков работы в конфигураторе и понимания встроенного языка 1С. Ошибка в модуле печати не портит данные документа, но может сломать печать для всех пользователей, поэтому доработки выполняйте и тестируйте на копии базы.
Что важно запомнить
Итоги выводятся через область «Подвал» макета с параметрами, которые заполняются в коде печати методом Итог() или запросом с ИТОГИ. Сначала проверьте типовые варианты формы, затем — макет и код. Тестируйте на копии базы и сверяйте итоги с данными документа.
Частые вопросы
Почему в печатной форме вместо итога виден текст «[ИтогоСумма]»?
Ячейка макета содержит шаблон, но её свойству «Заполнение» не присвоено значение «Параметр» или «Шаблон», либо параметр с таким именем не заполняется в коде перед выводом области. Проверьте свойства ячейки в макете и строку заполнения параметров в модуле печати.
Как вывести итоги по каждой странице многостраничной формы?
Стандартного автоматического механизма нет: нужно контролировать высоту выводимых строк (метод ПроверитьВывод табличного документа) и при переходе на новую страницу выводить промежуточную область «ИтогСтраницы», обнуляя накопитель. Это доработка среднего уровня сложности.
Можно ли вывести итоги по группам товаров?
Да. Табличную часть обходят с сортировкой по группе, при смене группы выводят область «ИтогГруппы» с накопленными суммами. Альтернатива — запрос с конструкцией ИТОГИ ПО, тогда итоги групп приходят в выборке автоматически.
Итог по НДС не сходится с суммой НДС по строкам. В чём причина?
Обычно это округление: НДС в строке округляется до копеек, а итог иногда считают от общей базы одним расчётом. Правильно суммировать именно колонку «СуммаНДС» по строкам методом Итог(), тогда итог совпадёт с построчной суммой.
После обновления конфигурации итоги в доработанной форме пропали. Что делать?
Обновление заменило макет и модуль печати типовыми версиями. Нужно заново перенести доработки в обновлённые объекты, сравнив их со старой версией. Чтобы избежать этого в будущем, перенесите форму во внешнюю обработку печати.
Как вывести итоговое количество с разными единицами измерения?
Суммировать количество по строкам с разными единицами (штуки, короба, килограммы) некорректно. Либо группируйте итоги по единице измерения, либо приводите количество к базовой единице через коэффициент пересчёта и суммируйте уже его.