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