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