В работе с 1С:Предприятие часто возникает задача подсчитать количество документов определённого типа — будь то реализации, поступления, платежки или кадровые приказы. Это нужно для анализа активности, проверки корректности загрузки данных, подготовки отчётности или просто для контроля заполненности базы. Однако не все пользователи знают, что в есть сразу несколько способов получить эту информацию — от простых отчётов до программных запросов.

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

1. Самый простой способ: через журнал документов

Если вам нужно быстро узнать количество документов одного типа (например, всех счетов-фактур за месяц), проще всего воспользоваться стандартным журналом документов. Этот метод не требует прав разработчика и работает в любой конфигурации (УТ 11, БП 3.0, ЗУП 3.1, ERP 2.5).

Инструкция:

  • 📄 Откройте раздел меню, где хранится нужный тип документов (например, Продажи → Счета покупателям или Запасы → Поступления товаров).
  • 🔍 В журнале документов установите период (если нужно посчитать за конкретный промежуток времени).
  • 📊 Внизу окна, в статусной строке, будет отображено общее количество документов в выборке. Например: "Документов: 452".
  • 📌 При необходимости отфильтруйте документы по организации, контрагенту или другим реквизитам — количество обновится автоматически.

⚠️ Внимание: В некоторых конфигурациях (например, Управление торговлей 10.3) статусная строка может не показывать количество документов. В этом случае используйте отчёт "Анализ документов" (см. следующий раздел).

📊 Какой конфигурации 1С вы пользуетесь?
УТ 11
БП 3.0
ЗУП 3.1
ERP 2.5
Другая

2. Использование стандартных отчётов 1С

Для более гибкого подсчёта (например, по нескольким типам документов или с группировкой по периодам) удобно использовать встроенные отчёты. Почти во всех конфигурациях есть отчёт "Анализ документов" или его аналоги. Рассмотрим на примере 1С:Бухгалтерия 3.0:

Шаги:

  1. Перейдите в раздел Отчёты → Стандартные отчёты → Анализ документов.
  2. В настройках отчёта выберите типы документов, которые нужно посчитать (можно выбрать несколько, удерживая Ctrl).
  3. Установите период и при необходимости добавьте отборы по организации, ответственному или другим полям.
  4. В результатах отчёта будет колонка "Количество" с нужной информацией.

Преимущество этого метода — возможность сохранить настройки отчёта для повторного использования. Например, можно создать шаблон для ежемесячного подсчёта платежных поручений по конкретному банковскому счёту.

Указать период|Выбрать типы документов|Добавить отборы (при необходимости)|Настроить группировку (по месяцам/контрагентам)|Сохранить настройки-->

💡 Полезный совет: Если в вашей конфигурации нет отчёта "Анализ документов", попробуйте "Обороты по документам" или "Сводные проводки" — в них тоже есть данные о количестве.

3. Подсчёт через запрос (для разработчиков и опытных пользователей)

Если вам нужно посчитать документы с сложными условиями (например, только те, где сумма больше 100 000 руб. и статус = "Проведён"), проще написать запрос на языке 1С. Это универсальный метод, работающий во всех конфигурациях.

Пример запроса для подсчёта реализаций за текущий месяц:

ВЫБРАТЬ

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

ИЗ

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

ГДЕ

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

Как выполнить запрос:

  • 🛠 Откройте Сервис → Консоль запросов (в режиме 1С:Предприятие).
  • 📝 Вставьте текст запроса и нажмите Выполнить.
  • 📊 Результат отобразится внизу окна в виде таблицы с одним полем Количество.

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

ВЫБРАТЬ

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

ИЗ

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

ГДЕ

Поступление.Организация = &Организация

И Поступление.Склад = &Склад

⚠️ Внимание: При работе с большими базами (более 100 000 документов) запрос может выполняться долго. В этом случае используйте индексированные поля в условиях (например, Дата или Номер) или разбивайте запрос на части по периодам.

Как ускорить выполнение запроса в большой базе?

Используйте в условиях только индексированные поля (Дата, Номер, Ссылка).

Разбивайте запрос на несколько по периодам (например, помесячно).

Добавьте условие ПЕРВЫЕ 1000, если нужно примерное количество.

Избегайте функций в условиях (например, НАЧИНАЕТСЯС() или МЕСЯЦ()).

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

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

Пример кода для подсчёта приходных накладных:

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

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

"ВЫБРАТЬ

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

|ИЗ

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

|ГДЕ

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

Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(ТекущаяДата()));

Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(ТекущаяДата()));

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

Количество = Результат.Выгрузить()[0].Количество;

Сообщить("Количество поступлений за месяц: " + Количество);

Этот код можно:

  • 📋 Вставить в модуль отчёта или обработки.
  • 📊 Использовать для заполнения регламентного отчёта (например, еженедельной сводки).
  • 🤖 Автоматизировать через регламентные задания (например, отправлять количество документов на почту каждый понедельник).

💡 Полезный совет: Если нужно посчитать документы по нескольким типам, используйте конструкцию ОБЪЕДИНИТЬ ВСЕ:

ВЫБРАТЬ

"Реализация" КАК ТипДокумента,

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

ИЗ

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

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ

"Поступление" КАК ТипДокумента,

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

ИЗ

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

5. Подсчёт через внешние обработки и расширения

Если в вашей конфигурации нет удобных инструментов для подсчёта, можно использовать внешние обработки или расширения. Это актуально для устаревших версий (1С 7.7, УТ 10.3) или сильно доработанных баз.

Где взять готовые решения:

  • 🌐 Инфостарт — здесь есть бесплатные обработки для подсчёта документов (например, "Универсальный отчёт по документам").
  • 📦 1С:ИТС — в разделе "Дополнения" иногда выкладывают полезные обработки.
  • 🛠 Свои наработки — если в компании есть программист , он может создать обработку под ваши задачи.

Пример внешней обработки для подсчёта:

Название обработки Источник Функционал
Универсальный анализ документов Инфостарт Подсчёт по типам, периодам, контрагентам с экспортом в Excel
Анализ движения документов 1С:ИТС Сравнение количества документов по месяцам, поиск аномалий
Мониторинг документооборота GitHub (открытые проекты) Визуализация количества документов по дням/неделям

⚠️ Внимание: Перед установкой внешних обработок сделайте резервную копию базы. Некоторые обработки могут содержать ошибки или конфликтовать с доработками вашей конфигурации.

6. Автоматизация через регламентные задания

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

  • 📅 Подсчитывать документы по расписанию (ежедневно/еженедельно).
  • 📧 Отправлять результаты на почту или в Telegram.
  • 📊 Сохранять историю изменений (например, динамику по месяцам).

Пример настройки в 1С:ERP 2.5:

  1. Перейдите в Администрирование → Регламентные задания.
  2. Создайте новое задание с типом "Выполнение кода".
  3. Вставьте код подсчёта (аналогичный из раздела 4) и добавьте отправку результата на почту:
// Код для регламентного задания

Количество = ПолучитьКоличествоДокументов(); // Ваша функция подсчёта

ТекстПисьма = "Количество документов на " + ТекущаяДата() + ": " + Количество;

ОтправитьПочту("manager@company.ru", "Отчёт по документам", ТекстПисьма);

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

Движение = Движения.Документооборот;

Движение.Дата = ТекущаяДата();

Движение.Количество = Количество;

Движение.Записать();

Затем можно построить график в отчёте "Анализ динамики".

💡

Регламентные задания экономят время, но требуют предварительной настройки прав доступа и тестирования кода.

7. Типичные ошибки и как их избежать

При подсчёте документов в пользователи часто сталкиваются с следующими проблемами:

Ошибка Причина Решение
Запрос выполняется слишком долго Отсутствие индексов или сложные условия Используйте в условиях только индексированные поля (Дата, Ссылка)
Неправильное количество в отчёте Не учтены права доступа или отборы Проверьте настройки отчёта в режиме "Все данные"
Ошибка "Поле не найдено" Опечатка в имени документа или реквизита Используйте Показать план запроса для проверки синтаксиса
Разные результаты в журнале и запросе В журнале могут быть непроведённые документы Добавьте в запрос условие Статус = 'Проведён'

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

1. Правильность указания периода (возможно, документы в другом месяце).

2. Права доступа (возможно, у вас нет прав на просмотр этих документов).

3. Статус документов (возможно, они не проведённые).

-->

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

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

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

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

В журнале документов добавьте отбор по полю Контрагент. В запросе используйте условие:

ГДЕ Контрагент = &Контрагент
Почему запрос считает медленно?

Скорее всего, в условиях используются неиндексированные поля. Замените их на Дата, Номер или Ссылка. Также поможет разбивка запроса на части по периодам.

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

В отчёте "Анализ документов" нажмите Ещё → Выгрузить и выберите формат Excel. Для запросов используйте:

Результат.Выгрузить().Записать("C:\Отчёт.xlsx");
Можно ли посчитать документы в 1С:7.7?

Да, но инструменты ограничены. Используйте журналы документов или пишите запросы на встроенном языке 7.7. Внешние обработки можно найти на старых версиях Инфостарта.