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