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

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

Как в 1С посчитать выделенные ячейки

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

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

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

Где в 1С можно выделять ячейки и почему это важно

Термин «выделенные ячейки» в 1С относится прежде всего к табличному документу — это печатные формы, отчёты на СКД и в макетах, открытые на просмотр. Именно там работает классическое выделение прямоугольной области мышью, аналогичное Excel. В табличных частях документов (списки товаров в накладной) выделение работает иначе: там выделяются строки, а не произвольные ячейки.

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

Быстрый способ: итоги по выделению в строке состояния

Самый простой метод не требует никаких настроек. Откройте отчёт или печатную форму, зажмите левую кнопку мыши и протяните выделение по нужным ячейкам, либо кликните первую ячейку и, удерживая Shift, кликните последнюю ячейку диапазона. Для несмежных областей выделяйте ячейки с зажатой клавишей Ctrl.

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

Порядок действий
  1. 1
    Откройте отчёт или печатную форму в режиме просмотра табличного документа.
  2. 2
    Выделите мышью нужный диапазон ячеек (Shift — для диапазона, Ctrl — для несмежных ячеек).
  3. 3
    Посмотрите в строку состояния внизу окна: там отображаются сумма, количество и среднее.
  4. 4
    Если итогов нет — проверьте, что выделены числовые ячейки и строка состояния включена.

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

Подсчёт суммы и количества через формулу в ячейке

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

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

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

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

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

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

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

Нужен быстрый итог по области в отчёте или печатной формеВыделите ячейки и смотрите строку состояния
Итог нужен в самом документе постоянноДобавьте формулу в ячейку или доработайте макет/настройки отчёта
Нужно посчитать часть строк в табличной части документаВыгрузите список в табличный документ или Excel и считайте там
Подсчёт нужен регулярно и по сложным условиямИспользуйте программный перебор области на встроенном языке

Программный подсчёт выделенных ячеек

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

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

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

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

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

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

Типичные ошибки
01
Попытка выделить ячейки в табличной части документа как в Excel — там выделяются только строки целиком, произвольная область недоступна.
02
Подсчёт итога по ячейкам, где числа сохранены как текст, — сумма в строке состояния не появляется, и пользователь считает это ошибкой программы.
03
Ручное добавление итогов в сформированный отчёт — при следующем формировании правки теряются.
04
Выделение области с объединёнными ячейками без учёта того, что выделение расширится до границ объединения.

Проверка результата и контрольные точки

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

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

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

Сумма по выделению против итога отчёта по той же колонке
Норма

Значения совпадают при выделении всех строк группы

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

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

Количество посчитанных ячеек
Норма

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

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

Меньше ожидаемого — часть значений хранится как текст

Повторное формирование отчёта
Норма

Итоги в настройках отчёта сохраняются

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

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

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

Итог

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

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

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

Почему при выделении ячеек в 1С не показывается сумма?

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

Можно ли в 1С выделить несмежные ячейки и посчитать их?

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

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

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

Сохранятся ли мои формулы в сформированном отчёте?

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

Работает ли подсчёт выделенных ячеек в веб-клиенте?

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

Чем отличается подсчёт в 1С от Excel?

Принцип тот же — итоги по выделению в строке состояния, — но в 1С он работает только в табличных документах, а не в табличных частях. Кроме того, в 1С значения ячеек могут храниться как текст, что блокирует суммирование, а в Excel тип обычно определяется автоматически при вводе.