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