Подсчет документов в 1С:Предприятие — одна из самых частых задач, с которыми сталкиваются и бухгалтеры, и программисты, и администраторы систем. Нужно ли узнать, сколько счетов-фактур выписано за месяц? Или посчитать количество реализаций по конкретному контрагенту? А может, требуется проверить, сколько документов «Заказ покупателя» осталось не проведенными? В этой статье разберем все возможные способы — от элементарных (доступных любому пользователю) до профессиональных (с использованием языка 1С:Предприятие).

Важно понимать, что метод подсчета зависит от цели: для оперативного контроля подойдут стандартные отчеты, для автоматизации — программный код, а для сложного анализа — запросы с группировками. Мы рассмотрим варианты для всех версий платформы (8.2, 8.3) и популярных конфигураций: 1С:Бухгалтерия, 1С:Управление торговлей, 1С:Зарплата и управление персоналом, 1С:ERP.

Если вы не программист, не пугайтесь терминов вроде «запрос» или «обработка» — мы дадим пошаговые инструкции с картинками и примерами. А для разработчиков приведём готовые коды, которые можно сразу использовать в своих конфигурациях.

1. Подсчет документов через стандартные отчеты 1С

Самый простой способ — воспользоваться встроенными отчетами. Он не требует знаний программирования и доступен любому пользователю с правами на просмотр данных.

В большинстве конфигураций (например, 1С:Бухгалтерия 3.0 или 1С:УТ 11) есть отчет Анализ документов или Журнал документов. Чтобы им воспользоваться:

  • 📊 Откройте раздел Отчеты в главном меню.
  • 🔍 Выберите Журнал документов или Анализ документов (название может отличаться в зависимости от конфигурации).
  • 📅 Укажите период, тип документа (например, «Реализация товаров и услуг») и при необходимости — дополнительные фильтры (контрагент, организация, ответственный).
  • 📈 В результате вы получите таблицу с количеством документов внизу отчета или в сводке.

Преимущество метода: быстро и без риска ошибок. Недостаток — ограниченная гибкость. Например, нельзя посчитать документы по сложному условию (например, «только те, где сумма больше 100 000 руб. и статус «Оплачено»»).

💡

Если в отчете нет колонки с количеством, нажмите правой кнопкой на заголовок таблицы и выберите «Настройки». Добавьте поле «Количество» или «Итоги».

2. Использование журнала документов для оперативного подсчета

Журналы документов — это «живые» списки, которые обновляются в реальном времени. Они удобны, когда нужно быстро посчитать документы по одному типу (например, сколько «Поступлений» было за сегодня).

Инструкция:

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

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

  • 🔎 Нажмите Ещё → Фильтр.
  • 📌 В поле «Проводка» выберите «Проведен» (или «Не проведен», если нужны черновики).
  • 🔢 Количество отфильтрованных документов появится внизу окна.
📊 Какой способ подсчета документов в 1С вы используете чаще?
Стандартные отчеты
Журналы документов
Запросы
Программный код
Другой вариант

3. Подсчет документов с помощью запросов (для программистов)

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

  • 📄 Количество документов по нескольким типам одновременно (например, «Реализации» + «Возвраты»).
  • 📊 Документы с определенными реквизитами (например, где «СуммаДокумента > 50000»).
  • 🔄 Динамику по периодам (например, «сколько документов создавалось каждый месяц»).

Пример кода для подсчета всех документов типа РеализацияТоваровУслуг за текущий месяц:

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

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

"ВЫБРАТЬ

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

|ИЗ

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

|ГДЕ

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

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

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

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

КоличествоДокументов = Результат.Выбрать().Количество;

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

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

"ВЫБРАТЬ

| '' КАК ТипДокумента,

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

|ИЗ

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

|ГДЕ

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

|

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

|

|ВЫБРАТЬ

| '' КАК ТипДокумента,

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

|ИЗ

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

|ГДЕ

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

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

Для группировки добавьте в запрос поле Док.Контрагент и используйте СГРУППИРОВАТЬ ПО:

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

"ВЫБРАТЬ

| Док.Контрагент КАК Контрагент,

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

|ИЗ

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

|ГДЕ

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

|СГРУППИРОВАТЬ ПО

| Док.Контрагент";

4. Программный подсчет документов (методы объекта)

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

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

Выборка = Документы.ЗаказПокупателя.Выбрать();

Количество = 0;

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

Если НЕ Выборка.ЭтотОбъект.Проведен() Тогда

Количество = Количество + 1;

КонецЕсли;

КонецЦикла;

Для подсчета по дате и организации:

Выборка = Документы.РеализацияТоваровУслуг.Выбрать();

Количество = 0;

НачалоПериода = НачалоДня(ТекущаяДата());

КонецПериода = КонецДня(ТекущаяДата());

Организация = Справочники.Организации.НайтиПоНаименованию("ООО Ромашка");

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

Если Выборка.Дата >= НачалоПериода

И Выборка.Дата <= КонецПериода

И Выборка.Организация = Организация Тогда

Количество = Количество + 1;

КонецЕсли;

КонецЦикла;

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

🔹 Корректность дат (начало/конец периода)

🔹 Существование справочников (например, "Организация")

🔹 Обработку исключений (если документов нет)

-->

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

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

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

  1. Создайте новую внешнюю обработку в 1С:Предприятие (меню Файл → Новый → Внешняя обработка).
  2. Добавьте на форму поля для ввода:
    • 📅 Период (начало/конец)
    • 📄 Типы документов (многозначное поле со списком)
    • 🏢 Организация (необязательно)
  • В модуле обработки напишите код, аналогичный примеру из раздела «Программный подсчет», но с учетом параметров с формы.
  • Добавьте кнопку Посчитать и поле для вывода результата.
  • Готовые обработки для подсчета документов можно найти на портале Infostart или в каталоге 1С:ИТС (раздел «Дополнения и обработки»). Например, обработка «Универсальный подсчет документов» позволяет гибко настраивать фильтры и выгружать результаты в Excel.

    💡

    Внешние обработки удобны для пользователей без прав на изменение конфигурации. Они работают в режиме 1С:Предприятие и не требуют перезапуска базы.

    6. Подсчет документов в отчетах с помощью СКД (Система Компоновки Данных)

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

    Пример создания отчета в СКД для подсчета документов по месяцам:

    1. В конфигураторе создайте новый отчет (Файл → Новый → Отчет).
    2. В конструкторе схемы компоновки данных добавьте набор данных — Запрос.
    3. Напишите запрос (аналогично примеру из раздела 3), но с группировкой по месяцам:
      ВЫБРАТЬ
      

      МЕСЯЦ(Док.Дата) КАК Месяц,

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

      ИЗ

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

      ГДЕ

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

      СГРУППИРОВАТЬ ПО

      МЕСЯЦ(Док.Дата)

    4. В настройках отчета добавьте параметры НачалоПериода и КонецПериода.
    5. На закладке Настройки выберите тип диаграммы (например, гистограмма).
    6. Преимущества СКД:

      • 📊 Гибкая настройка внешнего вида отчета (группировки, сортировки, условное оформление).
      • 📥 Экспорт в Excel, PDF, HTML.
      • 🔄 Возможность сохранять настройки пользователя.
      💡

      Чтобы ускорить работу отчета, добавьте в запрос индексируемые поля (например, Дата или Ссылка).

      7. Особенности подсчета в разных конфигурациях 1С

      В зависимости от конфигурации (1С:Бухгалтерия, 1С:УТ, 1С:ЗУП и др.) могут отличаться:

      • 📂 Название документов (например, в 1С:ERP вместо «Реализация» может быть «Заказ клиента» + «Реализация»).
      • 🔧 Доступные реквизиты для фильтрации (например, в 1С:ЗУП важны поля «Сотрудник», «Подразделение»).
      • 📈 Стандартные отчеты (в 1С:УТ есть отчет «Анализ продаж», где можно посчитать документы по номенклатуре).

      В таблице ниже — примеры типичных документов и полей для фильтрации в популярных конфигурациях:

      Конфигурация Типичные документы Поля для фильтрации Стандартный отчет для подсчета
      1С:Бухгалтерия 3.0 Счет-фактура, Поступление (акты, накладные), Платежное поручение Контрагент, Организация, СтатьяДвиженияДенежныхСредств Журнал документов, Анализ счетов-фактур
      1С:Управление торговлей 11 Реализация, Заказ покупателя, Возврат от покупателя Склад, Номенклатура, Менеджер Анализ продаж, Ведомость по товарам
      1С:Зарплата и управление персоналом Начисление зарплаты, Больничный лист, Приказ о приеме Сотрудник, Подразделение, Вид начисления Анализ зарплаты, Кадровый учет
      1С:ERP 2.0 Заказ клиента, Производственный заказ, Акт выполненных работ Проект, Бизнес-процесс, Статья затрат Монитор бизнес-процессов, Анализ продаж
      💡

      В 1С:ERP для подсчета документов по бизнес-процессам используйте отчет «Монитор бизнес-процессов» — он показывает количество документов на каждом этапе.

      8. Частые ошибки и как их избежать

      При подсчете документов в 1С легко допустить ошибки, которые приведут к некорректным данным. Рассмотрим типичные проблемы и способы их решения.

      Ошибка 1: Неучтенные права доступа

      Если запрос или обработка возвращает меньше документов, чем есть на самом деле, проверьте:

      • 🔐 Права пользователя на чтение документов (раздел Администрирование → Пользователи).
      • 📌 Роли, назначенные пользователю (например, роль «Бухгалтер» может не видеть документы других организаций).

      Ошибка 2: Неправильный период

      Часто забывают учесть время в датах. Например, если указать Дата = ТекущаяДата(), то документы, созданные после полуночи, не попадут в выборку. Правильно:

      Дата МЕЖДУ НачалоДня(ТекущаяДата()) И КонецДня(ТекущаяДата())

      Ошибка 3: Игнорирование помеченных на удаление

      По умолчанию запросы не возвращают помеченные на удаление документы. Если они нужны, добавьте условие:

      ГДЕ НЕ Док.ПометкаУдаления

      или (если нужны все, включая удаленные):

      ГДЕ ИСТИНА

      Ошибка 4: Долгая работа запроса

      Если запрос выполняется больше 30 секунд:

      • 🛠 Проверьте индексы на полях, используемых в условиях (Дата, Ссылка).
      • 📉 Упростите запрос: разбейте на несколько простых или используйте временные таблицы.
      • 🕒 Ограничьте период (например, вместо «за весь год» берите «за квартал»).
      💡

      Всегда тестируйте запросы на небольшом периоде данных, прежде чем запускать их на больших объемах.

      ⚠️ Внимание: В некоторых конфигурациях (например, 1С:УТ 10.3) есть ограничения на количество строк в результате запроса. Если документов больше 100 000, используйте постраничную выборку или обработку данными пакетами.

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

      FAQ: Ответы на частые вопросы

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

      Используйте стандартные отчеты или журналы документов (раздел 1 или 2 этой статьи). Если нужна гибкость, попросите администратора установить внешнюю обработку для подсчета (раздел 5).

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

      Да. В запросе или фильтре журнала документов укажите нужные организации через запятую или используйте условие Док.Организация В (&СписокОрганизаций), где &СписокОрганизаций — массив ссылок на организации.

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

      В стандартных отчетах нажмите Ещё → Выгрузить и выберите формат Excel. Для программного экспорта используйте объект ЗаписьXML или ТабличныйДокумент.Записать():

      Таблица = Новый ТабличныйДокумент;
      

      Таблица.Вывести(РезультатЗапроса);

      Таблица.Записать("C:\Отчет.xlsx", ТипФайлаТабличногоДокумента.XLSX);

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

      Журналы документов используют предварительно подготовленные данные (кешируют итоги), а запросы обрабатывают «сырые» данные из базы. Для ускорения запросов:

      • Добавьте индексы на поля, используемые в условиях.
      • Используйте временные таблицы для сложных выборок.
      • Ограничьте количество возвращаемых полей (берите только COUNT(*) или нужные реквизиты).
    Как посчитать документы в 1С:УНФ (Упрощенка)?

    В 1С:Упрощенка используйте отчет Журнал операций или Журнал документов. Для программного подсчета подходят те же методы, что и для других конфигураций, но учитывайте, что в УНФ нет некоторых реквизитов (например, «Склад» или «Менеджер»).