Сумма выделенных ячеек в отчётах и списках 1С 8.3
Содержание
Чтобы в 1С посчитать сумму выделенных ячеек, выделите их мышью в сформированном отчёте: в типовых конфигурациях 8.3 (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) над табличной частью отчёта сразу появляется поле с итогом. Несмежные ячейки добавляйте с зажатым Ctrl, диапазон — с Shift.
Сложности начинаются, когда цифры стоят не в отчёте, а в журнале документов, в табличной части или в самописной обработке. Для каждого случая есть свой способ: от двух кликов мышью до условной суммы в схеме компоновки и кода, который считает выделенное сам.
Где 1С сама показывает сумму выделенного в типовых отчётах
Большинство отчётов в типовых конфигурациях построено на одной библиотеке стандартных подсистем. У всех таких отчётов одинаковая форма и одинаковый механизм подсчёта.
Пошагово
- Сформируйте отчёт: например,
Отчеты → Оборотно-сальдовая ведомостьв Бухгалтерии 3.0. - Щёлкните первую ячейку с числом.
- Растяните выделение мышью или щёлкните последнюю ячейку с зажатым
Shift. - Добавьте отдельные ячейки из других мест таблицы, удерживая
Ctrl. - Посмотрите на панель над таблицей справа: там появится итог выделенного.
Рядом с итогом есть переключатель показателя. Кроме суммы, он считает количество, среднее, минимум и максимум. Количество удобно, когда нужно быстро понять, сколько строк попало в выборку, например, сколько контрагентов с сальдо по 62 счёту.
Что выделять, а что нет
- ✅ Ячейки одной колонки: «Сальдо на конец, Дебет» по нескольким контрагентам.
- ✅ Целую колонку, если щёлкнуть по её заголовку с буквой.
- ❌ Строку группировки вместе с её детальными строками: сумма задвоится.
- ❌ Дебет и кредит одновременно: получится число без экономического смысла.
Если нужно сложить не ячейки, а целые группы строк, проще поставить отбор в настройках отчёта. Кнопка Настройки открывает отборы и группировки, а через меню Еще можно перейти к изменению варианта отчёта и сохранить его под своим именем.
Как сложить цифры в списке или документе, где индикатора нет
В журналах документов, справочниках и табличных частях подсчёта выделенных строк нет. В подвале табличной части документа выводятся итоги колонок, но по всем строкам, а не по выбранным. Обходных путей три.
Способ 1. Вывести список в табличный документ
- Откройте список или табличную часть документа.
- Выделите нужные строки (с
CtrlилиShift). - Выберите
Еще → Вывести список.... - Отметьте флажок «Только выделенные», если он есть в окне, и оставьте нужные колонки.
- Нажмите
ОК: 1С откроет табличный документ.
Дальше копируйте нужную колонку в Excel или сохраните документ через Файл → Сохранить как в формате .xlsx и считайте там.
Способ 2. Скопировать в Excel напрямую
Выделенные строки списка и ячейки отчёта копируются обычным Ctrl+C. При вставке в Excel числа попадают в отдельные ячейки, и строка состояния Excel сразу показывает сумму.
Если Excel не суммирует вставленное, числа пришли текстом. Причина — неразрывные пробелы-разделители тысяч. Уберите их через «Найти и заменить» или вставьте значения через специальную вставку.
Способ 3. Встроенный калькулятор
Для пяти-шести чисел хватит калькулятора 1С: Ctrl+F2. Он открывается поверх любой формы. Если в форме выбрано числовое поле, результат можно перенести в него.
| Способ | Когда подходит | Риски |
|---|---|---|
| Индикатор в отчёте | Отчёты типовых конфигураций | Задвоение при выделении групп |
| Вывести список | Журналы, справочники, табличные части | Колонки с итогами надо отмечать вручную |
| Копирование в Excel | Любая форма | Числа превращаются в текст |
| Калькулятор | До десятка чисел | Ошибка ручного ввода |
Условная сумма в 1С: чем заменить СУММЕСЛИ из Excel
В табличном документе 1С нет формул, как в Excel. Ячейка макета содержит текст, параметр или шаблон, но не выражение =СУММЕСЛИ(...). Поэтому условное суммирование в 1С делают на уровне данных, а не ячеек.
Аналог СУММЕСЛИ в языке запросов и в схеме компоновки — конструкция ВЫБОР:
СУММА(ВЫБОР
КОГДА Товары.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20)
ТОГДА Товары.Сумма
ИНАЧЕ 0
КОНЕЦ)
Логика та же, что у Excel: строки, подходящие под условие, дают сумму, остальные дают ноль. Так в одну колонку отчёта можно вывести, например, выручку только по ставке 20%, а в соседнюю — по льготной ставке.
Имена значений перечисления сверяйте в конфигураторе: в разных конфигурациях и релизах ставки НДС могут называться по-разному. Конструктор запроса подставляет правильное имя сам, если выбрать значение через «Предопределённые значения».
Если нужно, чтобы условие менял сам пользователь, лучше вынести его в параметр или отбор. Об этом в следующих разделах.
Вычисляемые поля и ресурсы в СКД
Схема компоновки данных (СКД) — основной способ сделать отчёт, который суммирует не всё подряд, а нужное. Открывается схема в конфигураторе двойным щелчком по макету отчёта.
Вычисляемое поле
- Перейдите на вкладку «Вычисляемые поля».
- Добавьте поле, задайте ему путь, например
СуммаНДС20. - В колонке «Выражение» напишите условие через
ВЫБОР ... КОГДА ... ТОГДА ... ИНАЧЕ 0 КОНЕЦ. - Задайте заголовок: его увидит пользователь.
Ресурс
Вычисляемое поле само по себе не даёт итогов в группировках. Чтобы оно суммировалось:
- Откройте вкладку «Ресурсы».
- Перенесите туда новое поле.
- В колонке «Выражение» выберите
Сумма(СуммаНДС20).
Теперь итог появится в каждой группировке и в общей строке «Итого». Если нужна сумма только по части группировок, в колонке «Рассчитывать по» ресурса перечислите нужные поля.
Без конфигуратора
В типовом отчёте похожее поле может добавить и пользователь. В настройках отчёта переключитесь на расширенный вид и найдите добавление нового поля: СКД поддерживает пользовательские поля двух типов — с формулой и с выбором по условиям. Такое поле сохраняется в варианте отчёта и не требует правки конфигурации.
Отбор вместо ручного выделения: конструктор запросов
Ручное выделение ячеек хорошо для разовой проверки. Если одну и ту же сумму считают каждый месяц, выборку лучше описать условием в запросе. Конструктор запроса открывается в конфигураторе из текстового модуля или макета СКД через контекстное меню.
Как собрать запрос с суммой
- На вкладке «Таблицы и поля» выберите источник: например, табличную часть
Товарыдокумента реализации. - Перенесите в поля номенклатуру и сумму.
- На вкладке «Группировка» поставьте номенклатуру в группируемые поля, а сумму — в суммируемые с функцией «Сумма».
- На вкладке «Условия» добавьте отбор: период, организацию, проведённые документы.
- Нажмите
ОК: конструктор сформирует текст запроса.
Пример результата для Бухгалтерии 3.0:
ВЫБРАТЬ
Товары.Номенклатура КАК Номенклатура,
СУММА(Товары.Сумма) КАК Сумма
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК Товары
ГДЕ
Товары.Ссылка.Проведен
И Товары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
Товары.Номенклатура
Условие Проведен отсекает черновики и помеченные на удаление документы. Без него сумма почти всегда больше, чем в оборотах по счетам.
Суммирование через консоль запросов
Консоль запросов — внешняя обработка, которая выполняет текст запроса в пользовательском режиме и показывает результат таблицей. В типовую поставку конфигураций она не входит: её скачивают отдельно и открывают через Файл → Открыть.
Открыть внешнюю обработку может только пользователь с правом на интерактивное открытие внешних обработок. Обычно это администратор. Запросы в консоли только читают данные, но тяжёлый запрос без отбора по периоду нагружает сервер для всех пользователей.
Как получить сумму
- Вставьте текст запроса из предыдущего раздела.
- Заполните параметры
НачалоПериодаиКонецПериодана вкладке параметров. - Выполните запрос.
- В результате выделите ячейки нужной колонки: если консоль выводит результат в табличный документ, выделенное копируется в Excel обычным
Ctrl+C.
Когда нужен один итог, а не таблица, уберите номенклатуру из полей и группировки. Запрос вернёт одну строку с общей суммой. Для проверки отчёта такая контрольная цифра удобнее, чем сложение сотни строк.
Сумма выделенных ячеек программно: код на встроенном языке
Если в своей обработке или внешнем отчёте нет индикатора суммы, его несложно добавить. Ниже — обработчик команды формы. Он перебирает выделенные области поля табличного документа и складывает всё, что удалось прочитать как число.
&НаКлиенте
Процедура ПосчитатьВыделенное(Команда)
ТабДок = Результат; // реквизит формы типа ТабличныйДокумент
Области = Элементы.Результат.ПолучитьВыделенныеОбласти();
Итог = 0;
Счетчик = 0;
Для Каждого Область Из Области Цикл
Если ТипЗнч(Область) <> Тип("ОбластьЯчеекТабличногоДокумента") Тогда
Продолжить;
КонецЕсли;
Верх = Макс(Область.Верх, 1);
Низ = ?(Область.Низ = 0, ТабДок.ВысотаТаблицы, Мин(Область.Низ, ТабДок.ВысотаТаблицы));
Лево = Макс(Область.Лево, 1);
Право = ?(Область.Право = 0, ТабДок.ШиринаТаблицы, Мин(Область.Право, ТабДок.ШиринаТаблицы));
Для Стр = Верх По Низ Цикл
Для Кол = Лево По Право Цикл
Текст = ТабДок.Область(Стр, Кол, Стр, Кол).Текст;
Текст = СтрЗаменить(Текст, Символы.НПП, "");
Текст = СтрЗаменить(Текст, " ", "");
Текст = СтрЗаменить(Текст, ",", ".");
Если ПустаяСтрока(Текст) Тогда
Продолжить;
КонецЕсли;
Попытка
Итог = Итог + Число(Текст);
Счетчик = Счетчик + 1;
Исключение
// в ячейке не число: заголовок, наименование
КонецПопытки;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Сообщить(СтрШаблон("Ячеек с числами: %1, сумма: %2",
Счетчик, Формат(Итог, "ЧДЦ=2; ЧН=0")));
КонецПроцедуры
Что делает код:
- 🔹 пропускает области, которые не являются областями ячеек (например, рисунки);
- 🔹 обрабатывает выделение целой строки или колонки, у которых одна из границ равна нулю, и ограничивает его размером таблицы;
- 🔹 убирает неразрывные пробелы и меняет запятую на точку, чтобы
Число()понял строку1 234,50; - 🔹 молча пропускает текстовые ячейки.
Свойство Текст возвращает то, что видно на экране. Если в отчёте включено округление до тысяч, код сложит округлённые значения. Для точной суммы снимите округление в оформлении отчёта.
Вместо Сообщить итог можно выводить в реквизит формы над таблицей. Так получится свой индикатор, как в типовых отчётах.
Почему сумма выделенных ячеек не сходится с итогом
Ещё одна частая ловушка — свёрнутые группировки. Перед подсчётом разверните отчёт до нужного уровня кнопками уровней группировок слева от таблицы. Тогда видно, что именно попадает в выделение, и задвоение заметно сразу.
Частые вопросы
Можно ли выделить ячейки из разных колонок и разных частей отчёта?
Ctrl и щёлкайте нужные ячейки или диапазоны: итог учитывает все выделенные области сразу.Сохраняется ли сумма выделенного при повторном формировании отчёта?
Работает ли подсчёт выделенного в веб-клиенте и облаке?
Как посчитать сумму выделенных строк в табличной части документа, не выходя из него?
Еще → Вывести список... по выделенным строкам или копирование в Excel.