К статье
Практический материал

Отчеты и Аналитика · 10 мин

Как посчитать сумму в 1С: все рабочие способы

Как посчитать сумму в 1С: итоги в табличной части, автоподбор колонки, отчеты, консоль запросов, СКД и формулы в коде. Пошаговые инструкции и частые ошибки.

Посчитать сумму в 1С можно несколькими способами — от быстрого просмотра итога по выделенным строкам документа до программного расчета в запросе. Выбор зависит от задачи: разовая проверка цифр, аналитика по периоду или расчет внутри обработки. Ниже разобраны все рабочие варианты для типовых конфигураций (Бухгалтерия, Управление торговлей, ERP) и для самописных решений.

Большинству пользователей достаточно встроенных средств: автоподсчета в табличной части, кнопки «Ещё — Изменить форму» или стандартных отчетов. Бухгалтерам и аналитикам чаще нужны отчеты с группировками, а разработчикам — функции языка запросов и методы таблиц значений. Каждый сценарий требует своего подхода и своих проверок результата.

Как быстро посчитать сумму по строкам документа

Самый простой способ — выделить нужные строки в табличной части документа. Удерживайте Ctrl и кликайте по строкам, либо выделите диапазон с Shift. Затем откройте меню «Ещё» в шапке табличной части и выберите пункт «Вывести сумму» (в некоторых конфигурациях — «Сумма выделенных строк»). Программа покажет итог по числовой колонке, на которой стоит курсор.

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

Сумма по выделенным строкам
  1. 1
    Откройте документ и перейдите на вкладку с табличной частью
  2. 2
    Установите курсор в колонку с суммой
  3. 3
    Выделите строки мышью с Ctrl или Shift
  4. 4
    Нажмите «Ещё» и выберите «Вывести сумму»
  5. 5
    Сверьте показанный итог с ожидаемым значением

Учтите ограничение: этот способ считает только одну колонку за раз и не сохраняет результат. Для регулярных сверок удобнее использовать отчеты.

Как посчитать сумму в отчетах 1С

Стандартные отчеты — основной инструмент, когда нужно посчитать суммы за период с группировкой по контрагентам, номенклатуре или счетам. В «1С:Бухгалтерии» используйте оборотно-сальдовую ведомость, анализ счета или карточку счета. В «Управлении торговлей» — отчеты «Продажи», «Валовая прибыль», «Ведомость по товарам на складах».

Порядок действий типовой: откройте отчет, задайте период, при необходимости настройте отборы и группировки через кнопку «Настройки», затем нажмите «Сформировать». Итоговые суммы выводятся по каждой группе и в строке «Итого» внизу отчета. Если итогов не видно, проверьте в настройках, включен ли показ общих итогов (параметр «Расположение общих итогов»).

Для нестандартной аналитики измените вариант отчета: в настройках на вкладке «Группировка» добавьте нужное измерение, на вкладке «Поля» — нужные суммы. Сохраните вариант через «Ещё → Сохранить вариант отчета», чтобы не настраивать заново.

Как посчитать сумму запросом в консоли запросов

Когда стандартных отчетов не хватает, используйте язык запросов 1С. Функция СУММА() агрегирует числовое поле по выборке или по группам. Типовой запрос для суммы продаж по контрагентам выглядит так:

ВЫБРАТЬ

Продажи.Контрагент КАК Контрагент,

СУММА(Продажи.СуммаОборот) КАК Сумма

ИЗ

РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Продажи

СГРУППИРОВАТЬ ПО

Продажи.Контрагент

ИТОГИ

СУММА(Сумма) ПО ОБЩИЕ

Конструкция ИТОГИ ... ПО ОБЩИЕ добавляет строку с общей суммой по всей выборке. Если нужны итоги по каждой группе и общий итог одновременно, перечислите поля группировки после ПО, а для общего итога укажите ПО ОБЩИЕ.

bsl
ВЫБРАТЬ СУММА(Таб.Сумма) КАК ИтогоСумма ИЗ Документ.РеализацияТоваровУслуг.Товары КАК Таб ГДЕ Таб.Ссылка = &Ссылка

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

Как посчитать сумму программно в коде

В модуле объекта или обработки сумму по табличной части считают методом Итог() или циклом. Метод Итог("Сумма") возвращает итог по колонке табличной части или таблицы значений:

СуммаДокумента = Объект.Товары.Итог("Сумма");

СуммаНДС = Объект.Товары.Итог("СуммаНДС");

Цикл нужен, когда суммируются не все строки, а только удовлетворяющие условию. Например, сумма только по строкам с конкретной ставкой НДС:

Итого = 0;

Для Каждого СтрокаТовары Из Объект.Товары Цикл

Если СтрокаТовары.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 Тогда

Итого = Итого + СтрокаТовары.Сумма;

КонецЕсли;

КонецЦикла;

Для таблицы значений с группировками используйте связку Свернуть() и Итог(): сначала сверните таблицу по измерениям с суммированием ресурсов, затем при необходимости возьмите общий итог. Для больших объемов данных предпочтительнее запрос — он выполняется на сервере СУБД и не гоняет данные в память приложения.

Как посчитать сумму в СКД и динамических списках

В отчетах на системе компоновки данных (СКД) сумма считается через ресурсы. Откройте схему компоновки, на вкладке «Ресурсы» добавьте поле с выражением Сумма(СуммаОборот) и укажите, по каким группировкам его рассчитывать. Без этого шага поле выведется в детальных строках, но итоги будут пустыми.

В динамических списках (например, список документов с колонкой «Сумма») автоматического итога нет — это ограничение платформы. Чтобы увидеть сумму по отфильтрованному списку, сформируйте отчет по тем же данным или используйте обработку подсчета итогов. Некоторые конфигурации добавляют в списки кнопку «Итоги», реализованную программно.

Сравнение способов подсчета суммы

Выделение строк в документе

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

Стандартный отчет

Группировки, отборы, сохранение вариантов. Требует настройки, ограничен составом полей отчета.

Запрос с СУММА()

Любые данные и условия. Нужны навыки языка запросов и осторожность с большими таблицами.

Код с Итог() и циклом

Гибкая логика по условиям внутри обработок. Для больших объемов медленнее запроса.

Проверка результата и типичные ошибки

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

Контрольные точки

Как проверить результат

Итог документа
Норма

Совпадает с суммой в печатной форме и в поле «Всего»

Тревожный признак

Расходится на сумму НДС или скидки — проверьте, какую колонку суммировали

Сумма в отчете
Норма

Сходится с ОСВ по счету за тот же период

Тревожный признак

Отличается — проверьте отборы, период и настройку «по организации»

Результат запроса
Норма

Совпадает с виртуальной таблицей оборотов регистра

Тревожный признак

Завышен кратно — вероятно, дублирование строк из-за соединения таблиц

Типичные ошибки
01
Суммирование колонки «Сумма» вместо «Всего» — итог без НДС принимается за полную сумму документа.
02
Забытые отборы в отчете — сумма посчитана по всем организациям или за другой период.
03
Соединение таблиц в запросе без нужных условий — строки дублируются, и СУММА() завышается в разы.
04
Поле не добавлено в ресурсы СКД — итоги по группировкам пустые, хотя детальные строки заполнены.
05
Использование Итог() по табличной части после частичной загрузки данных — сумма не совпадает с проведенным документом.

Отдельная ловушка — округление. Если суммы в колонке хранятся с копейками, а отображаются округленно, итог по видимым значениям может не сойтись с реальным на копейки. Это не ошибка расчета, а особенность отображения: проверяйте сумму с полной точностью.

Итог

Что важно запомнить

Для разовой проверки выделяйте строки и используйте «Вывести сумму», для анализа — стандартные отчеты с настроенными группировками, для произвольных выборок — запрос с СУММА(), а в коде — Итог() или цикл. Любой результат сверяйте вторым независимым способом, а тяжелые запросы сначала проверяйте на копии базы.

Частые вопросы

Почему в табличной части нет кнопки «Вывести сумму»?

Пункт появляется в меню «Ещё» только когда курсор стоит в числовой колонке. Если кнопки нет, кликните в ячейку с суммой и откройте меню снова. В некоторых старых конфигурациях эта функция отсутствует — тогда используйте итоговую строку документа или отчет.

Как посчитать сумму по нескольким документам сразу?

Выделите документы в списке и воспользуйтесь командой итогов, если она есть в конфигурации. Универсальный способ — сформировать отчет по регистру или журналу документов с отбором по нужным документам и группировкой без детализации: в строке «Итого» будет общая сумма.

СУММА() в запросе возвращает NULL. Что делать?

NULL появляется, когда в выборке нет ни одной строки с непустым значением или выборка пуста. Оберните агрегат в ЕСТЬNULL(): ЕСТЬNULL(СУММА(Таб.Сумма), 0) — тогда вместо NULL вернется ноль, и дальнейшие расчеты не сломаются.

Как посчитать сумму без НДС, если в документе только сумма с НДС?

В большинстве документов есть отдельные колонки «Сумма» и «Сумма НДС»: сумма без налога — это разность «Всего» минус «Сумма НДС», либо колонка «Сумма» при настройке «НДС включать в стоимость». В запросе используйте выражение СУММА(Таб.Всего - Таб.СуммаНДС) или суммируйте поле суммы без НДС напрямую, если оно хранится в табличной части.

Можно ли вывести итог внизу списка документов?

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

Почему сумма в отчете не совпадает с суммой документов за период?

Чаще всего причины три: в отчете стоят отборы, которых нет в вашем списке документов; часть документов не проведена и не попадает в регистры; либо период в отчете задан по дате документа, а регистр пишется по другой дате. Снимите все отборы, сверьте периоды и проверьте проведенность документов.