Сумма выделенных ячеек в отчётах и списках 1С 8.3

· 9 мин

Содержание

Чтобы в 1С посчитать сумму выделенных ячеек, выделите их мышью в сформированном отчёте: в типовых конфигурациях 8.3 (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) над табличной частью отчёта сразу появляется поле с итогом. Несмежные ячейки добавляйте с зажатым Ctrl, диапазон — с Shift.

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

Где 1С сама показывает сумму выделенного в типовых отчётах

Большинство отчётов в типовых конфигурациях построено на одной библиотеке стандартных подсистем. У всех таких отчётов одинаковая форма и одинаковый механизм подсчёта.

Пошагово

  1. Сформируйте отчёт: например, Отчеты → Оборотно-сальдовая ведомость в Бухгалтерии 3.0.
  2. Щёлкните первую ячейку с числом.
  3. Растяните выделение мышью или щёлкните последнюю ячейку с зажатым Shift.
  4. Добавьте отдельные ячейки из других мест таблицы, удерживая Ctrl.
  5. Посмотрите на панель над таблицей справа: там появится итог выделенного.

Рядом с итогом есть переключатель показателя. Кроме суммы, он считает количество, среднее, минимум и максимум. Количество удобно, когда нужно быстро понять, сколько строк попало в выборку, например, сколько контрагентов с сальдо по 62 счёту.

Что выделять, а что нет

  • ✅ Ячейки одной колонки: «Сальдо на конец, Дебет» по нескольким контрагентам.
  • ✅ Целую колонку, если щёлкнуть по её заголовку с буквой.
  • ❌ Строку группировки вместе с её детальными строками: сумма задвоится.
  • ❌ Дебет и кредит одновременно: получится число без экономического смысла.

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

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

В журналах документов, справочниках и табличных частях подсчёта выделенных строк нет. В подвале табличной части документа выводятся итоги колонок, но по всем строкам, а не по выбранным. Обходных путей три.

Способ 1. Вывести список в табличный документ

  1. Откройте список или табличную часть документа.
  2. Выделите нужные строки (с Ctrl или Shift).
  3. Выберите Еще → Вывести список....
  4. Отметьте флажок «Только выделенные», если он есть в окне, и оставьте нужные колонки.
  5. Нажмите ОК: 1С откроет табличный документ.

Дальше копируйте нужную колонку в Excel или сохраните документ через Файл → Сохранить как в формате .xlsx и считайте там.

Способ 2. Скопировать в Excel напрямую

Выделенные строки списка и ячейки отчёта копируются обычным Ctrl+C. При вставке в Excel числа попадают в отдельные ячейки, и строка состояния Excel сразу показывает сумму.

Если Excel не суммирует вставленное, числа пришли текстом. Причина — неразрывные пробелы-разделители тысяч. Уберите их через «Найти и заменить» или вставьте значения через специальную вставку.

Способ 3. Встроенный калькулятор

Для пяти-шести чисел хватит калькулятора 1С: Ctrl+F2. Он открывается поверх любой формы. Если в форме выбрано числовое поле, результат можно перенести в него.

СпособКогда подходитРиски
Индикатор в отчётеОтчёты типовых конфигурацийЗадвоение при выделении групп
Вывести списокЖурналы, справочники, табличные частиКолонки с итогами надо отмечать вручную
Копирование в ExcelЛюбая формаЧисла превращаются в текст
КалькуляторДо десятка чиселОшибка ручного ввода

Условная сумма в 1С: чем заменить СУММЕСЛИ из Excel

В табличном документе 1С нет формул, как в Excel. Ячейка макета содержит текст, параметр или шаблон, но не выражение =СУММЕСЛИ(...). Поэтому условное суммирование в 1С делают на уровне данных, а не ячеек.

Аналог СУММЕСЛИ в языке запросов и в схеме компоновки — конструкция ВЫБОР:

СУММА(ВЫБОР
    КОГДА Товары.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20)
        ТОГДА Товары.Сумма
    ИНАЧЕ 0
КОНЕЦ)

Логика та же, что у Excel: строки, подходящие под условие, дают сумму, остальные дают ноль. Так в одну колонку отчёта можно вывести, например, выручку только по ставке 20%, а в соседнюю — по льготной ставке.

Имена значений перечисления сверяйте в конфигураторе: в разных конфигурациях и релизах ставки НДС могут называться по-разному. Конструктор запроса подставляет правильное имя сам, если выбрать значение через «Предопределённые значения».

Если нужно, чтобы условие менял сам пользователь, лучше вынести его в параметр или отбор. Об этом в следующих разделах.

Вычисляемые поля и ресурсы в СКД

Схема компоновки данных (СКД) — основной способ сделать отчёт, который суммирует не всё подряд, а нужное. Открывается схема в конфигураторе двойным щелчком по макету отчёта.

Вычисляемое поле

  1. Перейдите на вкладку «Вычисляемые поля».
  2. Добавьте поле, задайте ему путь, например СуммаНДС20.
  3. В колонке «Выражение» напишите условие через ВЫБОР ... КОГДА ... ТОГДА ... ИНАЧЕ 0 КОНЕЦ.
  4. Задайте заголовок: его увидит пользователь.

Ресурс

Вычисляемое поле само по себе не даёт итогов в группировках. Чтобы оно суммировалось:

  1. Откройте вкладку «Ресурсы».
  2. Перенесите туда новое поле.
  3. В колонке «Выражение» выберите Сумма(СуммаНДС20).

Теперь итог появится в каждой группировке и в общей строке «Итого». Если нужна сумма только по части группировок, в колонке «Рассчитывать по» ресурса перечислите нужные поля.

Без конфигуратора

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

Где у вас лежат числа, которые надо сложить?

Отбор вместо ручного выделения: конструктор запросов

Ручное выделение ячеек хорошо для разовой проверки. Если одну и ту же сумму считают каждый месяц, выборку лучше описать условием в запросе. Конструктор запроса открывается в конфигураторе из текстового модуля или макета СКД через контекстное меню.

Как собрать запрос с суммой

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

Пример результата для Бухгалтерии 3.0:

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

Условие Проведен отсекает черновики и помеченные на удаление документы. Без него сумма почти всегда больше, чем в оборотах по счетам.

Суммирование через консоль запросов

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

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

Как получить сумму

  1. Вставьте текст запроса из предыдущего раздела.
  2. Заполните параметры НачалоПериода и КонецПериода на вкладке параметров.
  3. Выполните запрос.
  4. В результате выделите ячейки нужной колонки: если консоль выводит результат в табличный документ, выделенное копируется в Excel обычным Ctrl+C.

Когда нужен один итог, а не таблица, уберите номенклатуру из полей и группировки. Запрос вернёт одну строку с общей суммой. Для проверки отчёта такая контрольная цифра удобнее, чем сложение сотни строк.

Сумма выделенных ячеек программно: код на встроенном языке

Если в своей обработке или внешнем отчёте нет индикатора суммы, его несложно добавить. Ниже — обработчик команды формы. Он перебирает выделенные области поля табличного документа и складывает всё, что удалось прочитать как число.

&НаКлиенте
Процедура ПосчитатьВыделенное(Команда)

    ТабДок = Результат; // реквизит формы типа ТабличныйДокумент
    Области = Элементы.Результат.ПолучитьВыделенныеОбласти();

    Итог = 0;
    Счетчик = 0;

    Для Каждого Область Из Области Цикл

        Если ТипЗнч(Область) <> Тип("ОбластьЯчеекТабличногоДокумента") Тогда
            Продолжить;
        КонецЕсли;

        Верх  = Макс(Область.Верх, 1);
        Низ   = ?(Область.Низ = 0, ТабДок.ВысотаТаблицы, Мин(Область.Низ, ТабДок.ВысотаТаблицы));
        Лево  = Макс(Область.Лево, 1);
        Право = ?(Область.Право = 0, ТабДок.ШиринаТаблицы, Мин(Область.Право, ТабДок.ШиринаТаблицы));

        Для Стр = Верх По Низ Цикл
            Для Кол = Лево По Право Цикл
                Текст = ТабДок.Область(Стр, Кол, Стр, Кол).Текст;
                Текст = СтрЗаменить(Текст, Символы.НПП, "");
                Текст = СтрЗаменить(Текст, " ", "");
                Текст = СтрЗаменить(Текст, ",", ".");
                Если ПустаяСтрока(Текст) Тогда
                    Продолжить;
                КонецЕсли;
                Попытка
                    Итог = Итог + Число(Текст);
                    Счетчик = Счетчик + 1;
                Исключение
                    // в ячейке не число: заголовок, наименование
                КонецПопытки;
            КонецЦикла;
        КонецЦикла;

    КонецЦикла;

    Сообщить(СтрШаблон("Ячеек с числами: %1, сумма: %2",
        Счетчик, Формат(Итог, "ЧДЦ=2; ЧН=0")));

КонецПроцедуры

Что делает код:

  • 🔹 пропускает области, которые не являются областями ячеек (например, рисунки);
  • 🔹 обрабатывает выделение целой строки или колонки, у которых одна из границ равна нулю, и ограничивает его размером таблицы;
  • 🔹 убирает неразрывные пробелы и меняет запятую на точку, чтобы Число() понял строку 1 234,50;
  • 🔹 молча пропускает текстовые ячейки.

Свойство Текст возвращает то, что видно на экране. Если в отчёте включено округление до тысяч, код сложит округлённые значения. Для точной суммы снимите округление в оформлении отчёта.

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

Почему сумма выделенных ячеек не сходится с итогом

Диагностика: выберите симптом

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

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

Можно ли выделить ячейки из разных колонок и разных частей отчёта?
Да. Удерживайте Ctrl и щёлкайте нужные ячейки или диапазоны: итог учитывает все выделенные области сразу.
Сохраняется ли сумма выделенного при повторном формировании отчёта?
Нет. После переформирования выделение сбрасывается, и ячейки нужно выделить заново. Для регулярного расчёта настройте отбор или поле-формулу.
Работает ли подсчёт выделенного в веб-клиенте и облаке?
В типовых отчётах механизм тот же: он относится к форме отчёта, а не к способу подключения. Копирование в Excel в браузере может запросить разрешение на доступ к буферу обмена.
Как посчитать сумму выделенных строк в табличной части документа, не выходя из него?
Встроенного подсчёта по выделенным строкам там нет. Самый быстрый вариант — Еще → Вывести список... по выделенным строкам или копирование в Excel.
Нужны ли права администратора, чтобы считать сумму выделенных ячеек?
Нет. Выделение и подсчёт в отчёте доступны любому пользователю, который может открыть сам отчёт. Права нужны только для консоли запросов и правки схемы отчёта в конфигураторе.