Отчеты и Аналитика · 10 мин
Как в 1С посчитать выделенные ячейки
Как посчитать количество и сумму выделенных ячеек в 1С: строка состояния, итоги в табличном документе, формулы и код на встроенном языке. Пошаговые инструкции.
Задача посчитать выделенные ячейки возникает у пользователей 1С постоянно: нужно быстро узнать сумму по нескольким строкам отчёта, количество позиций в табличной части документа или среднее значение по произвольному диапазону. В отличие от Excel, где результат выделения всегда виден в строке состояния, в 1С поведение зависит от того, где именно вы работаете — в табличном документе, в таблице формы или в макете.
Программа предлагает несколько способов решения: встроенное автосуммирование при выделении, кнопку итогов, формулы в ячейках и программный перебор области на встроенном языке. Каждый вариант подходит для своей ситуации, и ниже разобраны все рабочие методы с точными действиями и ограничениями.
Где в 1С можно выделять ячейки и почему это важно
Термин «выделенные ячейки» в 1С относится прежде всего к табличному документу — это печатные формы, отчёты на СКД и в макетах, открытые на просмотр. Именно там работает классическое выделение прямоугольной области мышью, аналогичное Excel. В табличных частях документов (списки товаров в накладной) выделение работает иначе: там выделяются строки, а не произвольные ячейки.
Это различие принципиально. В табличном документе вы можете выделить любой прямоугольный блок и получить по нему итоги. В табличной части документа для подсчёта суммы по выбранным строкам придётся использовать другие приёмы — групповое выделение с Ctrl, итоги по колонке или обработки. Путаница между этими двумя режимами — самая частая причина вопроса «почему у меня не считается».
Быстрый способ: итоги по выделению в строке состояния
Самый простой метод не требует никаких настроек. Откройте отчёт или печатную форму, зажмите левую кнопку мыши и протяните выделение по нужным ячейкам, либо кликните первую ячейку и, удерживая Shift, кликните последнюю ячейку диапазона. Для несмежных областей выделяйте ячейки с зажатой клавишей Ctrl.
В нижней части окна, в строке состояния, 1С покажет вычисленные значения по выделению: обычно это сумма, количество и среднее по числовым ячейкам. Текстовые и пустые ячейки в сумму не включаются. Если выделен один столбец с количеством и суммой, вы сразу увидите оба итога без всяких формул.
- 1Откройте отчёт или печатную форму в режиме просмотра табличного документа.
- 2Выделите мышью нужный диапазон ячеек (Shift — для диапазона, Ctrl — для несмежных ячеек).
- 3Посмотрите в строку состояния внизу окна: там отображаются сумма, количество и среднее.
- 4Если итогов нет — проверьте, что выделены числовые ячейки и строка состояния включена.
Если строка состояния пуста, проверьте три вещи: включено ли её отображение в настройках интерфейса, содержат ли выделенные ячейки числа (текст и даты в сумму не попадают), не открыт ли документ в режиме «только просмотр» с ограниченной функциональностью. В тонком клиенте и веб-клиенте набор показываемых итогов может отличаться от толстого клиента.
Подсчёт суммы и количества через формулу в ячейке
Когда итог нужен не «на посмотреть», а в самом документе, используйте формулы. В табличном документе, открытом на редактирование (или в макете), можно ввести в свободную ячейку формулу, ссылающуюся на диапазон, например сумму по области. Это работает аналогично Excel: указывается функция и адреса ячеек.
Типовой сценарий: отчёт сформирован, но вам нужен промежуточный итог по произвольной группе строк, которой нет в структуре отчёта. Сохраните табличный документ, откройте его на редактирование и в пустой ячейке под диапазоном введите формулу суммы по нужным строкам. Учтите: при перепроведении отчёта или повторном формировании такие ручные правки пропадут, поэтому для регулярных задач лучше доработать сам отчёт.
Подсчёт строк в табличной части документа
В табличных частях (товары в накладной, начисления в документе зарплаты) выделение ячеек как в Excel недоступно — выделяются целые строки. Чтобы посчитать итог по части строк, выделите их с зажатой клавишей Ctrl или Shift, затем используйте кнопку итогов или контекстное меню, если конфигурация это поддерживает.
Во многих типовых конфигурациях итог по колонке (сумма, количество) отображается автоматически в подвале табличной части по всем строкам. Если нужен итог только по выбранным позициям, практичные варианты такие: отсортировать или отобрать строки так, чтобы нужные оказались рядом, использовать функцию подбора/группировки, либо выгрузить табличную часть в табличный документ или Excel и посчитать там. Выгрузка доступна через правую кнопку мыши — «Вывести список» или «Сохранить».
Как выбрать действие
Программный подсчёт выделенных ячеек
Для разработчиков и продвинутых пользователей есть программный путь: получить текущую выделенную область табличного документа и перебрать её ячейки. Это делается через свойство, возвращающее выделенные области, с последующим циклом по строкам и колонкам каждой области.
Процедура ПосчитатьВыделенное(ТабДок)
Сумма = 0; Количество = 0;
Для Каждого Область Из ТабДок.ПолучитьВыделенныеОбласти() Цикл
Для Стр = Область.Верх По Область.Низ Цикл
Для Кол = Область.Лево По Область.Право Цикл
Знч = ТабДок.Область(Стр, Кол).Текст;
Если СтрДлина(Знч) > 0 Тогда
Попытка
Сумма = Сумма + Число(Знч);
Количество = Количество + 1;
Исключение
КонецПопытки;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Сообщить("Ячеек: " + Количество + ", сумма: " + Сумма);
КонецПроцедурыТакой код можно оформить как внешнюю обработку или кнопку в расширении конфигурации. Обратите внимание на обработку ошибок: преобразование текста ячейки в число обёрнуто в попытку, потому что в выделение почти всегда попадают текстовые и пустые ячейки. Также учитывайте, что в ячейке может храниться значение с разделителями разрядов и нестандартным десятичным знаком — перед преобразованием их иногда нужно очищать.
Почему итог по выделению не считается: разбор причин
Наиболее частая причина — ячейки содержат текст, а не числа. В отчётах на СКД числа обычно выводятся как числа, но в макетах и произвольных табличных документах значение может быть записано строкой. Визуально отличить сложно: признак — выравнивание по левому краю и отсутствие итога в строке состояния.
Вторая причина — объединённые ячейки. При выделении области с объединениями подсчёт может вестись некорректно или область выделения расширяется до границ объединённых ячеек. Третья — режим работы: в некоторых режимах просмотра и в веб-клиенте функциональность выделения ограничена. Наконец, если документ открыт через «Ещё — Показать в списке» или как вложение, возможности выделения могут быть урезаны.
Проверка результата и контрольные точки
После подсчёта полезно убедиться, что итог достоверен. Самая надёжная проверка — перекрёстная: сравните сумму по выделению с итогом по той же колонке в самом отчёте, если вы выделяли все строки группы. При расхождении ищите скрытые строки, итоговые строки, попавшие в выделение (они удвоят результат), или нечисловые значения.
Как проверить результат
Значения совпадают при выделении всех строк группы
Расхождение — в выделение попали итоговые строки или часть ячеек текстовая
Совпадает с числом выделенных числовых ячеек
Меньше ожидаемого — часть значений хранится как текст
Итоги в настройках отчёта сохраняются
Ручные правки в табличном документе исчезли
Отдельно проверяйте, не включены ли в выделение строки «Итого» и «Всего». Это классическая ошибка, дающая удвоенную сумму: пользователь выделяет весь столбец вместе с итоговой строкой и получает значение вдвое больше фактического. Строка состояния при этом честно суммирует всё выделенное.
Что важно запомнить
В табличном документе 1С итоги по выделенным ячейкам показываются в строке состояния автоматически. В табличных частях документов выделяются только строки — для подсчёта выгружайте список. Для постоянных итогов используйте настройки отчёта или формулы, для сложных условий — программный перебор выделенных областей. Всегда проверяйте, что в выделение не попали итоговые строки и текстовые значения.
Частые вопросы
Почему при выделении ячеек в 1С не показывается сумма?
Чаще всего значения в ячейках сохранены как текст, а не как числа — тогда сумма не вычисляется. Также проверьте, что строка состояния включена в настройках интерфейса и что вы работаете именно с табличным документом, а не с табличной частью документа.
Можно ли в 1С выделить несмежные ячейки и посчитать их?
Да, в табличном документе выделяйте ячейки и области с зажатой клавишей Ctrl — итоги в строке состояния посчитаются по всем выделенным фрагментам суммарно.
Как посчитать сумму только по части строк в накладной?
Произвольное выделение ячеек в табличной части недоступно. Выделите нужные строки с Ctrl и используйте итоги, если конфигурация их поддерживает, либо выгрузите список через «Вывести список» в табличный документ и посчитайте выделением там.
Сохранятся ли мои формулы в сформированном отчёте?
Нет. Сформированный табличный документ — это результат, который пересоздаётся при каждом формировании отчёта. Для постоянных итогов измените настройки отчёта (группировки, ресурсы) или макет, а не готовый документ.
Работает ли подсчёт выделенных ячеек в веб-клиенте?
Базовое выделение и итоги работают, но набор отображаемых показателей и удобство выделения могут отличаться от тонкого клиента. Если функции не хватает, откройте базу в тонком клиенте или выгрузите данные в Excel.
Чем отличается подсчёт в 1С от Excel?
Принцип тот же — итоги по выделению в строке состояния, — но в 1С он работает только в табличных документах, а не в табличных частях. Кроме того, в 1С значения ячеек могут храниться как текст, что блокирует суммирование, а в Excel тип обычно определяется автоматически при вводе.