Работа с большими объёмами данных в 1С:Предприятие часто требует точного учёта количества документов — будь то для отчётности, аудита или оптимизации базы. Но как быстро получить эту информацию, не пересчитывая каждый документ вручную? В зависимости от задачи и конфигурации (1С:Бухгалтерия, УТ 11, ЗУП 3.1 или кастомизированные решения) способы могут кардинально отличаться.

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

Для программистов и администраторов важно понимать: количество документов в базе не равно количеству записей в таблицах SQL. Например, один документ ПоступлениеТоваровУслуг может порождать десятки записей в регистрах накопления. Поэтому методы подсчёта нужно выбирать исходя из цели: нужна ли вам статистика по видам документов, по периодам или общий объём данных для оценки производительности сервера.

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

1. Стандартные отчёты 1С: быстрый подсчёт без программирования

Самый простой способ — использовать встроенные отчёты конфигурации. Почти все типовые решения (1С:Бухгалтерия 3.0, Управление торговлей 11, Зарплата и управление персоналом 3.1) содержат отчёты по документам, где можно посчитать их количество по периодам, организациям или видам.

Например, в 1С:Бухгалтерии перейдите в раздел Отчёты → Стандартные отчёты → Анализ документов. Здесь выберите нужный вид документа (например, Счёт-фактура выданный) и установите период. В результате отобразится таблица с количеством документов по датам или контрагентам.

  • 📊 Преимущества: не требует прав администратора, работает в пользовательском режиме, визуализирует данные в виде диаграмм.
  • ⚠️ Ограничения: не показывает скрытые или помеченные на удаление документы, может не учитывать документы в непроведённом состоянии.
  • 🔧 Настройка: в большинстве отчётов можно добавить группировку по организациям, ответственным лицам или статусам.

В 1С:Управление торговлей 11 аналогичный функционал доступен через Отчёты → Продажи → Анализ документов продаж. Здесь можно отдельно посчитать количество заказов клиентов, реализаций или возвратов. Если нужна детализация по складам или менеджерам, используйте настройки группировки в панели справа.

⚠️ Внимание: В облачных версиях 1С (например, 1С:Fresh) некоторые стандартные отчёты могут быть упрощены или отсутствовать. Проверьте доступные разделы в вашем тарифе.

2. Журналы документов: счётчик внизу окна и фильтры

Каждый вид документа в имеет свой журнал, где отображаются все экземпляры. Внизу окна журнала обычно есть строка состояния с количеством документов. Например, в журнале Банковские выписки вы увидите фразу типа: "Документов: 452". Но здесь есть нюансы:

  • 🔍 Если документов больше 1000, может не показывать точное количество, а писать "Документов: 1000+".
  • 📅 По умолчанию отображаются документы за текущий месяц. Чтобы увидеть все, снимите фильтр по периоду.
  • 🗑️ Помеченные на удаление документы в счётчик не включаются (они отображаются серым цветом).

Чтобы получить точные данные:

  1. Откройте нужный журнал (например, Поступление товаров и услуг).
  2. Нажмите Ещё → Настройки → Отменить отбор по периоду.
  3. Если нужно посчитать документы за конкретный год, установите фильтр по дате.
  4. Для экспорта списка в Excel используйте кнопку Выгрузить (доступна в большинстве конфигураций).

В конфигурациях на базе 1С:Предприятие 8.3 можно использовать расширенный фильтр. Например, в журнале Заказы покупателей нажмите Ещё → Настройка списка → Отбор и добавьте условие по статусу (Проведён, Не проведён) или организации.

📊 Какой способ подсчёта документов вы используете чаще?
Стандартные отчёты
Журналы документов
Запросы в конфигураторе
Внешние обработки
Не знаю, как посчитать

3. Запросы на языке 1С: точный подсчёт для программистов

Если стандартные методы не дают нужной детализации, можно написать запрос на встроенном языке . Это универсальный способ, работающий во всех конфигурациях, включая сильно доработанные. Например, чтобы посчитать все документы ПоступлениеТоваровУслуг за 2023 год, используйте следующий код:

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| COUNT(*) КАК Количество

|ИЗ

| Документ.ПоступлениеТоваровУслуг КАК Поступление

|ГДЕ

| Поступление.Дата МЕЖДУ &НачалоПериода И &КонецПериода";

Запрос.УстановитьПараметр("НачалоПериода", '20230101');

Запрос.УстановитьПараметр("КонецПериода", '20231231');

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл

Сообщить("Количество документов: " + Выборка.Количество);

КонецЦикла;

Этот запрос вернёт точное количество документов, включая непроводённые и помеченные на удаление. Для других видов документов замените Документ.ПоступлениеТоваровУслуг на нужный (например, Документ.РеализацияТоваровУслуг).

  • 🛠️ Дополнительные фильтры: можно добавить условия по организации (Поступление.Организация = &Организация), складу или контрагенту.
  • 📈 Группировка: если нужно посчитать документы по месяцам, добавьте в запрос ГРУППИРОВКА ПО МЕСЯЦ(Поступление.Дата).
  • Производительность: для больших баз (100 000+ документов) используйте индексированные поля в условиях ГДЕ.

Чтобы выполнить запрос, откройте конфигуратор (Файл → Открыть конфигуратор), перейдите в Сервис → Запросы → Новый запрос и вставьте код. Для пользователей без прав на конфигуратор подойдёт внешняя обработка (см. следующий раздел).

Открыть конфигуратор (права администратора)|Создать новый запрос в меню "Сервис"|Проверить синтаксис (кнопка F7)|Установить параметры дат|Выполнить запрос и просмотреть результат-->

4. Внешние обработки: готовые решения для пользователей

Если у вас нет доступа к конфигуратору, но нужно посчитать документы с гибкими настройками, используйте внешние обработки. Это файлы с расширением .epf или .erf, которые можно скачать с сайтов или форумов (например, Infostart). Популярные обработки для подсчёта документов:

  • 📋 "Универсальный отчёт по документам" — позволяет строить отчёты по любым видам документов с группировкой по реквизитам.
  • 🔎 "Поиск и замена в документах" — помимо поиска показывает количество найденных документов.
  • 📊 "Анализ базы данных" — даёт статистику по всем объектам конфигурации, включая документы.

Чтобы подключить обработку:

  1. Скачайте файл (например, УниверсальныйОтчетПоДокументам.epf).
  2. В перейдите в Файл → Открыть → Выбрать файл обработки.
  3. Запустите обработку и настройте фильтры (период, вид документа, организация).
  4. Нажмите Сформировать — результат отобразится в таблице.

Преимущество внешних обработок в том, что они часто содержат дополнительные функции, например:

  • Экспорт данных в Excel с сохранением форматирования.
  • Поиск дублей документов по номерам или датам.
  • Анализ проведения (какие документы не проведены и почему).
⚠️ Внимание: Перед использованием обработок из ненадёжных источников проверьте их на тестовой базе. Вредоносный код может повредить данные.

5. Прямой доступ к SQL: для администраторов баз данных

Если вы администрируете на SQL Server или PostgreSQL, можно посчитать документы напрямую в базе данных. Этот метод самый быстрый для больших объёмов данных, но требует знаний SQL и прав доступа к серверу.

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

_Document{ИД_вида_документа}

Например, документы ПоступлениеТоваровУслуг могут храниться в таблице _Document123 (где 123 — внутренний идентификатор вида документа).

Чтобы найти точные имена таблиц, выполните запрос к системным таблицам :

SELECT

t.name AS TableName,

p.name AS DocumentType

FROM

sys.tables t

JOIN

sys.partitions p ON t.object_id = p.object_id

WHERE

t.name LIKE '_Document%'

ORDER BY

t.name;

После этого можно посчитать документы за нужный период:

SELECT

COUNT(*) AS DocumentCount

FROM

_Document123

WHERE

DatePart >= '2023-01-01'

AND DatePart <= '2023-12-31';

Конфигурация 1С Пример таблицы документов Поле с датой
1С:Бухгалтерия 3.0 _Document123 (Поступление) DateTime или DatePart
1С:УТ 11 _Document456 (Реализация) PostingDate
1С:ЗУП 3.1 _Document789 (Начисление зарплаты) Period

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

SELECT tablename

FROM pg_tables

WHERE tablename LIKE '_document%';

⚠️ Внимание: Прямые запросы к базе данных могут нарушить целостность данных, если выполняются во время работы пользователей. Используйте этот метод только в нерабочее время или на резервной копии.

6. Специализированные отчёты для аудита и оптимизации

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

  • 📉 "Анализ объёмов данных" — показывает, какие виды документов занимают больше всего места в базе.
  • 🔄 "Отчёт по проведению" — выявляет документы, которые долго проводятся или вызывают ошибки.
  • 🗃️ "Статистика по регистрам" — помогает понять, какие документы генерируют наибольшее количество движений.

В 1С:Предприятие 8.3 эти отчёты доступны через: Администрирование → Обслуживание → Анализ производительности.

Для глубокого анализа можно использовать консоль запросов с таким кодом:

ВЫБРАТЬ

Метаданные.Имя КАК ВидДокумента,

COUNT(*) КАК Количество,

СУММА(РАЗМЕРДАННЫХ(Данные)) / 1024 КАК ОбъемКб

ИЗ

Документ.Любой КАК Документ

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МетодыОбъектов КАК Метаданные

ПО Документ.Метод() = Метаданные.Ссылка

ГРУППИРОВКА ПО

Метаданные.Имя

УПОРЯДОЧИТЬ ПО

ОбъемКб УБЫВ

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

Как ускорить выполнение сложных запросов?

Для ускорения запросов по большим базам (100 000+ документов) используйте:

1. Индексы — убедитесь, что поля, используемые в условиях `ГДЕ`, проиндексированы.

2. Временные таблицы — для сложных отчётов сначала сохраните данные во временную таблицу, а затем работайте с ней.

3. Пакетную обработку — разбивайте запрос на части (например, по месяцам).

4. Режимы блокировок — используйте `ДЛЯ ИЗМЕНЕНИЯ` только если действительно нужно блокировать данные.

Сравнение методов: какой выбрать?

Метод Сложность Точность Требуемые права Когда использовать
Стандартные отчёты Средняя (не учитывает помеченные на удаление) Пользователь Быстрая оценка по периодам
Журналы документов Низкая (ограничение 1000+ документов) Пользователь Оперативный просмотр текущих данных
Запросы в конфигураторе ⭐⭐⭐ Высокая Администратор/Программист Глубокий анализ с фильтрами
Внешние обработки ⭐⭐ Высокая Пользователь Гибкие отчёты без доступа к конфигуратору
Прямой SQL ⭐⭐⭐⭐ Максимальная Администратор БД Оптимизация и аудит больших баз

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

💡

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

FAQ: Частые вопросы о подсчёте документов в 1С

Можно ли посчитать документы в 1С:Fresh (облако) без доступа к конфигуратору?

Да, но с ограничениями. В 1С:Fresh доступны стандартные отчёты и журналы документов, но нет возможности выполнять произвольные запросы или подключать внешние обработки. Используйте раздел Отчёты → Стандартные отчёты или экспортируйте данные в Excel для дальнейшего анализа.

Почему в журнале документов отображается "1000+", а не точное число?

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

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

Используйте запрос с фильтром по полю Пользователь (или Ответственный, в зависимости от конфигурации). Пример:

ВЫБРАТЬ COUNT(*) КАК Количество

ИЗ Документ.ПоступлениеТоваровУслуг КАК Док

ГДЕ Док.Пользователь = &Пользователь

В качестве параметра передайте ссылку на пользователя (например, Пользователи.ИвановИИ).

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

Да, для этого настройте регламентное задание в . Создайте обработку, которая будет выполнять запрос и отправлять результат на email. Пример кода для регламентного задания:

Процедура ВыполнитьЗадание()

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ COUNT(*) КАК Количество ИЗ Документ.ПоступлениеТоваровУслуг";

Результат = Запрос.Выполнить();

ТекстПисьма = "Количество документов Поступление: " + Результат.Выбрать().Количество;

ОтправитьПочту("admin@company.ru", "Статистика 1С", ТекстПисьма);

КонецПроцедуры

Настройте выполнение задания в Администрирование → Регламентные задания.

Как узнать, сколько документов не проведены в базе?

Используйте запрос с проверкой статуса проведения:

ВЫБРАТЬ

COUNT(*) КАК КоличествоНепроведённых

ИЗ

Документ.ПоступлениеТоваровУслуг КАК Док

ГДЕ

НЕ Док.Проведён

Для ускорения добавьте фильтр по периоду. В 1С:УТ 11 можно использовать стандартный отчёт Анализ проведения документов.