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

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

Как посчитать итоги в 1С: практическое руководство

Как посчитать итоги в 1С: группировки в отчётах, итоги по регистрам, виртуальные таблицы, запросы с ИТОГИ и типичные ошибки при расчёте сумм и остатков.

Подсчёт итогов — базовая операция в 1С, но способов её выполнить несколько, и выбор зависит от задачи. Бухгалтеру нужны обороты по счёту, менеджеру — суммы продаж по контрагенту, разработчику — итоги в запросе или произвольном отчёте. В каждом случае используется свой инструмент: стандартные отчёты, группировки в СКД, виртуальные таблицы регистров или конструкция ИТОГИ в языке запросов.

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

Что считается итогами в 1С и где они живут

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

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

Как посчитать итоги в стандартных отчётах

Самый простой путь — типовые отчёты. В бухгалтерии это «Оборотно-сальдовая ведомость», «Анализ счёта», «Обороты счёта»; в торговле и ERP — «Продажи», «Остатки товаров», «Взаиморасчёты». Откройте отчёт, задайте период и нажмите «Сформировать» — итоги по строкам и общий итог появятся автоматически.

Чтобы получить итоги по нужному разрезу, используйте настройки группировки. Например, в ОСВ по кнопке «Показать настройки» на вкладке «Группировка» добавьте субконто «Контрагенты» или «Номенклатура» — отчёт перестроится с промежуточными итогами по каждому значению.

Группировка и детализация

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

Отборы и их влияние на суммы

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

Как получить итоги в типовом отчёте
  1. 1
    Откройте нужный отчёт и укажите период
  2. 2
    Нажмите «Показать настройки» и добавьте группировки по нужным измерениям
  3. 3
    Проверьте вкладку «Отбор» — уберите лишние условия
  4. 4
    Сформируйте отчёт и сверьте общий итог с контрольной цифрой
  5. 5
    Сохраните настройку как вариант, если отчёт нужен регулярно

Итоги по регистрам: остатки и обороты

Для регистров накопления платформа предоставляет виртуальные таблицы: «Остатки», «Обороты», «ОстаткиИОбороты». Они читают предрассчитанные итоги, поэтому работают быстро даже на больших объёмах. В консоли запросов или в отчёте на СКД обращение к ним выглядит как выбор таблицы РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад).

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

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

Конструкция ИТОГИ в языке запросов

Когда данные лежат не в регистрах или нужна произвольная агрегация, используйте секцию ИТОГИ в запросе. Синтаксис: после списка полей укажите ИТОГИ СУММА(Сумма), КОЛИЧЕСТВО(Количество) ПО ПолеГруппировки. Результат будет содержать строки с промежуточными итогами по каждому значению поля.

Ключевое слово ОБЩИЕ в секции ИТОГИ добавляет строку общего итога по всей выборке. Запись «ИТОГИ СУММА(Сумма) ПО Контрагент, ОБЩИЕ» даст итоги по каждому контрагенту плюс сводную строку. В СКД аналогичную роль играет ресурс с группировкой — платформа сама генерирует нужный запрос.

Пример запроса для итогов продаж по контрагентам:

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

Группировка против ИТОГИ

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

Итоги в формах и табличных частях

В формах документов итог по колонке табличной части обычно считается автоматически: платформа выводит сумму по колонке в подвале, если для элемента формы включено свойство «Отображать итоги» / «ПутьКДаннымПодвала». В управляемых формах разработчик задаёт это в конфигураторе через свойства таблицы формы.

Программно сумму по табличной части получают методом Итог(): Документ.Товары.Итог("Сумма") вернёт сумму колонки «Сумма». Это быстрый способ для проверок и заполнения итоговых реквизитов шапки, но помните: метод перебирает строки, поэтому на огромных табличных частях лучше использовать запрос.

Способы подсчёта итогов

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

Подходят для типовых задач без программирования; ограничены составом предусмотренных отчётов конфигурации

Виртуальные таблицы регистров

Быстрые остатки и обороты; работают только по регистрам и требуют навыка запросов

Запрос с ИТОГИ / СКД

Максимальная гибкость для любых данных; требует понимания языка запросов

Метод Итог() табличной части

Просто и наглядно в коде; не подходит для больших объёмов и данных вне документа

Производительность и пересчёт итогов

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

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

Типичные ошибки и как их проверить

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

Типичные ошибки
01
Забытый отбор в сохранённой настройке — итоги меньше ожидаемых; сбросьте настройки и сформируйте заново
02
Неверно задан период отчёта — границы периода включают или исключают лишние документы
03
Сравнение остатков на разные моменты времени — данные изменились между формированиями отчётов
04
Ожидание итогов по непроведённым документам — черновики в движения не попадают
05
Использование Итог() для больших таблиц вместо запроса — заметное падение скорости
Контрольные точки

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

Общий итог отчёта
Норма

Совпадает с контрольным отчётом за тот же период

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

Расходится — проверьте отборы и период

Остатки на дату
Норма

Остаток на конец дня плюс обороты следующего дня дают остаток на конец следующего дня

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

Цепочка не сходится — возможны устаревшие итоги или непроведённые документы

Скорость формирования
Норма

Отчёт по остаткам формируется за секунды

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

Долгое формирование — проверьте дату рассчитанных итогов регистра

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

Почему ОСВ и анализ счёта показывают разные суммы?

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

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

Выделите нужные строки в таблице и используйте стандартную функцию расчёта суммы по выделенным ячейкам (доступна в большинстве списков через контекстное меню или кнопку суммы). Либо сформируйте отчёт по этим документам с группировкой по нужному измерению.

Что делать, если остатки по складу «уехали» после перепроведения?

Проверьте, все ли документы перепроведены и нет ли документов с датой внутри периода, оставшихся непроведёнными. Затем сформируйте отчёт по движениям конкретного товара — карточка счёта или ведомость по товарам покажет, на каком документе возникло расхождение.

Можно ли получить итоги по дням, если периодичность итогов — месяц?

Да. Виртуальная таблица «Обороты» с периодичностью «День» досчитает дневные обороты по движениям. Хранить итоги с дневной периодичностью для этого не обязательно, хотя на очень больших регистрах это может ускорить такие запросы ценой роста объёма служебных таблиц.

Почему запрос с ИТОГИ возвращает NULL в итоговых строках?

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

Когда нужен полный пересчёт итогов регистра?

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

Итог

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

Для типовых задач используйте стандартные отчёты с группировками и отборами, для регистров — виртуальные таблицы остатков и оборотов, для произвольных данных — запросы с ИТОГИ или СКД. Большинство «неправильных» итогов объясняется настройками отчёта, а не ошибками данных. Перед пересчётом итогов регистров делайте резервную копию и работайте в нерабочее время.