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

Быстрый старт · 10 мин

Как сложить цифры в 1С: практические способы для разных задач

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

Фраза «сложить цифры в 1С» на практике означает несколько разных задач: посчитать сумму по колонке в документе, получить итог в отчёте, сложить значения в запросе или в программном коде. У каждой задачи свой инструмент, и попытка применить не тот способ приводит к ошибкам — от пустых итогов до неверных проводок.

Программы на платформе 1С:Предприятие устроены так, что большинство сумм считается автоматически: вы вводите количество и цену, а сумма строки и итог документа подставляются сами. Ручное сложение требуется реже — при работе с отчётами, запросами, обработками или нестандартными вычислениями.

Ниже разобраны основные сценарии: от простого просмотра итога по табличной части до функции СУММА в запросе и сложения в коде. Для каждого способа указаны условия применения, ограничения и способы проверить результат.

Сумма в табличной части документа

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

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

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

Итоги в отчётах и динамических списках

В отчётах суммирование выполняется через группировки и ресурсы. В типовых отчётах (например, «Оборотно-сальдовая ведомость» или «Продажи») итоги считаются автоматически по каждой группировке и в целом по отчёту. Если итоговая строка не видна, откройте настройки отчёта и проверьте, что в структуре присутствует элемент «Итоги» или что у ресурса включён расчёт общего итога.

В конструкторе отчёта на СКД (системе компоновки данных) суммирование настраивается на вкладке «Ресурсы»: там указывается поле, которое нужно сложить, и выражение — обычно Сумма(СуммаОборот). Если ресурс не добавлен, в отчёте будут видны детальные строки без итогов. Это типичная причина вопроса «почему отчёт не складывает цифры».

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

Сложение в запросе: функция СУММА

Когда данные нужно сложить на уровне выборки из базы, используется агрегатная функция СУММА в языке запросов. Она складывает значения числового поля по всем строкам группировки. Базовый пример: ВЫБРАТЬ СУММА(Продажи.СуммаОборот) КАК Сумма ИЗ РегистрНакопления.Продажи.Обороты КАК Продажи — такой запрос вернёт общую сумму оборотов за выбранный период.

Ключевое правило: если в запросе есть агрегатная функция, все остальные поля выборки должны быть указаны в секции СГРУППИРОВАТЬ ПО. Иначе запрос выдаст ошибку ещё на этапе проверки в консоли. Группировка определяет, «в разрезе чего» складываются цифры: по контрагентам, по номенклатуре, по месяцам.

bsl
ВЫБРАТЬ
	Продажи.Номенклатура КАК Номенклатура,
	СУММА(Продажи.КоличествоОборот) КАК Количество,
	СУММА(Продажи.СуммаОборот) КАК Сумма
ИЗ
	РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Продажи
СГРУППИРОВАТЬ ПО
	Продажи.Номенклатура

Особенность функции СУММА: если среди складываемых значений встречается NULL, результат по такой строке тоже может стать NULL или исказиться в зависимости от конструкции запроса. Чтобы этого избежать, применяйте функцию ЕСТЬNULL(Поле, 0) внутри суммы или используйте левое соединение с подстановкой нуля. Это одна из самых частых причин «неправильных» итогов в самодельных отчётах.

Сложение чисел в программном коде

Во встроенном языке 1С числа складываются обычным оператором «+»: Итог = Число1 + Число2;. Тип «Число» поддерживает заданную точность, и при сложении значений с разным числом знаков после запятой результат округляется по правилам арифметики платформы. Для денежных сумм принято использовать точность два знака, для количества — три, но конкретная разрядность задаётся в метаданных конфигурации.

Для суммирования колонки таблицы значений в коде есть встроенный метод Итог(): ОбщаяСумма = ТаблицаТоваров.Итог("Сумма");. Это быстрее и надёжнее, чем перебор строк в цикле с накоплением переменной. У табличной части объекта метод вызывается аналогично: Документ.Товары.Итог("Сумма").

Типичная ловушка — сложение строки с числом. Если одно из значений имеет тип «Строка», оператор «+» выполнит конкатенацию, и вместо суммы вы получите склеенный текст. Перед сложением приводите значения к числу функцией Число() или проверяйте тип через ТипЗнч(), особенно когда данные приходят из внешних источников или полей ввода.

Типичные ошибки
01
Сложение строки и числа оператором «+» — получается текст вместо суммы; приводите значения к типу Число
02
Игнорирование NULL в запросе — итог занижается или становится NULL; оборачивайте поля в ЕСТЬNULL
03
Отсутствие секции СГРУППИРОВАТЬ ПО при использовании СУММА — запрос не проходит проверку
04
Ручной пересчёт суммы строки без учёта НДС и скидок — итог расходится с проводками документа

Выбор способа под конкретную задачу

Чтобы не тратить время на неподходящий инструмент, ориентируйтесь на то, где физически находятся цифры и что нужно получить на выходе. Разовый просмотр суммы по документу не требует ни запросов, ни кода — достаточно встроенного итога. Регулярная аналитика по множеству документов — задача для отчёта или запроса.

Маршрут решения

Как выбрать действие

Нужно быстро посмотреть сумму по открытому документуИспользуйте итог под табличной частью или выгрузите список через «Ещё» → «Вывести список»
Нужна сумма по многим документам за периодСформируйте типовой отчёт или напишите запрос с функцией СУММА
Сумма нужна внутри обработки или доработкиИспользуйте метод Итог() для таблицы значений или оператор сложения для отдельных переменных
Итог в отчёте пустой или неверныйПроверьте вкладку «Ресурсы» в настройках СКД и наличие ЕСТЬNULL в запросе

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

Проверка результата и границы самостоятельной работы

Любой посчитанный итог стоит сверить с независимым источником. Для документа — с печатной формой. Для запроса — с типовым отчётом по тому же регистру за тот же период. Для кода — с контрольным примером на тестовых данных, где сумма известна заранее. Совпадение двух независимых расчётов — надёжный признак корректности.

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

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

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

Совпадает с суммой в печатной форме и проводках

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

Итог формы отличается от проводок — возможно, документ не проведён или доработан

Сумма в запросе
Норма

Совпадает с типовым отчётом по тому же регистру

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

Запрос даёт меньше — вероятны NULL-значения или неверный период

Сложение в коде
Норма

Результат числовой и совпадает с контрольным примером

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

Результат — строка или округляется неожиданно, проверяйте типы данных

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

FAQ

Почему в запросе с СУММА результат получается пустым?

Чаще всего причина в NULL-значениях: если складываемое поле содержит NULL (например, после левого соединения без совпадений), итог может быть NULL. Оберните поле в ЕСТЬNULL(Поле, 0). Также проверьте период и отборы — возможно, выборка просто не содержит данных за указанный интервал.

Как сложить цифры только по выделенным строкам документа?

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

Почему при сложении в коде получается текст вместо числа?

Оператор «+» со строковым значением выполняет склеивание текста, а не сложение. Такое происходит, когда данные приходят из полей ввода или файлов как строки. Преобразуйте значения функцией Число() перед сложением и проверяйте тип через ТипЗнч().

Чем метод Итог() лучше цикла по строкам?

Метод Итог("ИмяКолонки") выполняется на уровне платформы, работает быстрее и короче в записи. Цикл с накоплением переменной оправдан только когда нужно суммировать по условию — например, только строки с определённым признаком. Для простого сложения колонки всегда используйте Итог().

Итог в отчёте на СКД не отображается — что проверить?

Откройте настройки отчёта и убедитесь, что на вкладке «Ресурсы» добавлено нужное поле с выражением Сумма(...). Затем проверьте, что в структуре отчёта присутствуют группировки или общий итог. Без ресурса отчёт покажет только детальные строки без суммирования.

Можно ли сложить данные из разных баз 1С?

Напрямую встроенными средствами — нет. Сначала данные нужно собрать в одном месте: через план обмена, выгрузку в файл или консолидационную обработку. После объединения суммирование выполняется обычными способами — запросом или отчётом.

Итог

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

Способ сложения цифр в 1С выбирается по расположению данных: итог табличной части — для документов, ресурсы СКД — для отчётов, функция СУММА — для запросов, метод Итог() — для кода. Всегда сверяйте результат с независимым источником и остерегайтесь NULL-значений и смешения типов.