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