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

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

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

Практические способы посчитать количество документов в 1С за период: отбор в журнале, отчёты, консоль запросов и код на языке 1С.

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

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

Ниже разобраны рабочие методы для типовых конфигураций (Бухгалтерия предприятия, Управление торговлей, ERP) и универсальные приёмы, которые работают в любой конфигурации на платформе 1С:Предприятие 8.

Как посчитать документы через журнал с отбором по периоду

Самый простой способ, не требующий прав администратора и знания языка запросов. Откройте нужный журнал: например, «Покупки — Поступления (акты, накладные, УПД)» в Бухгалтерии или «Продажи — Реализация (акты, накладные, УПД)». Нажмите кнопку «Ещё — Установить период» и задайте даты начала и окончания.

После установки периода журнал покажет только документы внутри диапазона. Количество строк можно увидеть в строке состояния внизу окна списка либо выделить все строки (Ctrl+A) — платформа покажет число выделенных элементов. В управляемых формах также работает команда «Ещё — Вывести список»: она формирует табличный документ, в котором видно итоговое число строк.

Дополнительно можно наложить отборы по организации, контрагенту, складу или признаку проведения. Учтите: помеченные на удаление документы по умолчанию отображаются в журнале (зачёркнутыми), поэтому при подсчёте «вручную по строкам» их нужно исключать отбором или учитывать поправку.

Подсчёт через журнал документов
  1. 1
    Откройте нужный журнал документов
  2. 2
    Установите период через «Ещё — Установить период»
  3. 3
    При необходимости добавьте отборы по организации или виду операции
  4. 4
    Выделите все строки (Ctrl+A) или используйте «Ещё — Вывести список»
  5. 5
    Сверьте количество строк с ожидаемым результатом

Подсчёт через универсальный отчёт

В типовых конфигурациях есть отчёт «Универсальный отчёт» (в Бухгалтерии — раздел «Отчёты», в ERP — «Отчёты и обработки»). Он умеет строить данные по регистрам, справочникам и документам. Выберите тип объекта «Документы», конкретный вид документа, задайте период и сгруппируйте, например, по месяцам или организациям.

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

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

Точный подсчёт запросом с функцией КОЛИЧЕСТВО

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

ВЫБРАТЬ

КОЛИЧЕСТВО(РеализацияТоваровУслуг.Ссылка) КАК КоличествоДокументов

ИЗ

Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

ГДЕ

РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода

И РеализацияТоваровУслуг.Проведен

Ключевые моменты: функция КОЛИЧЕСТВО(Ссылка) считает строки выборки, условие по дате ограничивает период, а отбор «Проведен» отсекает черновики. Помеченные на удаление документы проведёнными быть не могут, поэтому условие по проведению автоматически их исключает. Если нужно считать все документы независимо от статуса, уберите условие и добавьте проверку «НЕ ПометкаУдаления» при необходимости.

Для подсчёта по нескольким видам документов используйте ОБЪЕДИНИТЬ ВСЕ: каждый подзапрос считает свой вид, а итог суммируется. Это единственный разумный способ получить общее число документов по базе за период одним действием.

bsl
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ КОЛИЧЕСТВО(Ссылка) КАК Количество ИЗ Документ.РеализацияТоваровУслуг ГДЕ Дата МЕЖДУ &Начало И &Конец И Проведен";
Запрос.УстановитьПараметр("Начало", НачалоДня(НачалоПериода));
Запрос.УстановитьПараметр("Конец", КонецДня(КонецПериода));
Результат = Запрос.Выполнить().Выбрать();
Если Результат.Следующий() Тогда
	Сообщить("Документов за период: " + Результат.Количество);
КонецЕсли;

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

Если у вас есть доступ к конфигуратору или внешней обработке, количество можно получить кодом. Два подхода: запрос (как в примере выше) или выборка через метод Выбрать() с циклом. Запрос предпочтительнее — он выполняется на уровне СУБД и не тащит данные в память.

Выборка с циклом оправдана только когда нужно не просто посчитать, а проверить каждый документ по сложному условию, которое не выразить в запросе. На больших базах такой перебор может занять заметное время, поэтому для чистого подсчёта всегда используйте КОЛИЧЕСТВО в запросе.

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

Типичные ошибки при подсчёте
01
Граница периода без КонецДня() — документы последнего дня не попадают в выборку
02
Подсчёт без учёта пометки удаления — цифра завышена относительно данных отчётов
03
Смешение проведённых и непроведённых документов — расхождение с оборотами регистров
04
Использование КОЛИЧЕСТВО(*) вместо КОЛИЧЕСТВО(Ссылка) при соединениях — задвоение строк
05
Подсчёт в журнале с активными скрытыми отборами — часть документов не видна

Проверка результата и типичные расхождения

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

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

Если цифры между двумя методами различаются, проверьте по порядку: границы периода и время документов, пометки удаления, отборы по организации, права пользователя (ограничение RLS может скрывать часть документов — тогда под разными пользователями счёт будет отличаться).

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

Как проверить корректность подсчёта

Границы периода
Норма

Используются НачалоДня и КонецДня, документы первого и последнего дня в выборке

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

Документы крайних дат периода отсутствуют в результате

Пометки удаления
Норма

Условие по пометке задано осознанно и одинаково во всех методах

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

Запрос и журнал дают разные цифры без видимой причины

Права доступа
Норма

Подсчёт выполнен под пользователем с полными правами

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

Под разными пользователями количество различается

Ограничения и когда нужен специалист

Подсчёт документов — безопасная операция чтения, она не меняет данные. Риск появляется только если вы запускаете обработки, которые одновременно с подсчётом что-то изменяют: перепроводят, снимают пометки удаления, перенумеровывают. Такие действия в рабочей базе выполняйте только после резервной копии.

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

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

FAQ

Как посчитать документы всех видов сразу за период?

Штатного журнала «все документы» в типовых конфигурациях нет. Используйте запрос с ОБЪЕДИНИТЬ ВСЕ по нужным видам документов и функцией КОЛИЧЕСТВО, либо обработку, перебирающую метаданные документов в цикле с подсчётом по каждому виду.

Почему запрос и журнал показывают разное количество?

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

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

В запросе добавьте условие «ГДЕ Проведен». В журнале установите отбор по проведению через «Ещё — Настроить список». Проведённые документы не могут быть помечены на удаление, поэтому дополнительное условие не требуется.

Можно ли посчитать документы помесячно за год одним действием?

Да. В запросе добавьте группировку по периоду: «СГРУППИРОВАТЬ ПО НАЧАЛОПЕРИОДА(Дата, МЕСЯЦ)» — получите количество по каждому месяцу. В универсальном отчёте аналогичный результат даёт группировка по месяцам.

Опасно ли выполнять такие запросы в рабочей базе?

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

Итог

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

Для быстрого подсчёта используйте журнал с отбором по периоду, для точного — запрос с КОЛИЧЕСТВО(Ссылка). Всегда задавайте границы через НачалоДня/КонецДня, осознанно обрабатывайте пометки удаления и сверяйте результат на коротком интервале периода.