К статье
Практический материал

Отчеты и Аналитика · 10 мин

Как посчитать количество проводок в 1С

Как посчитать количество проводок в 1С: оборотно-сальдовая ведомость, анализ счета, запросы в консоли, поиск по базе. Пошаговые инструкции и проверка результата.

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

Выбор способа зависит от того, что именно нужно посчитать: проводки по конкретному счёту, все движения за период, записи определённого документа или общий объём регистра бухгалтерии в базе. Ниже разобраны рабочие методы для типовых конфигураций (1С:Бухгалтерия 8, 1С:ERP, 1С:Комплексная автоматизация) и для режима управляемого приложения.

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

Что считать проводкой и где они хранятся

В конфигурациях на платформе 1С:Предприятие 8 бухгалтерские проводки хранятся в регистре бухгалтерии. В типовой бухгалтерии это регистр «Хозрасчётный», в некоторых отраслевых решениях добавляются собственные регистры (налоговый, управленческий, МСФО). Каждая запись регистра — это отдельная проводка либо часть проводки, если используется признак корреспонденции.

Важно понимать различие между режимами хранения. В регистре с поддержкой корреспонденции одна проводка «Дт 26 — Кт 70» — это одна запись. В регистре без корреспонденции та же хозяйственная операция хранится двумя записями: отдельно по дебету и отдельно по кредиту. Поэтому при подсчёте через запрос сначала уточните структуру конкретного регистра, иначе получите число вдвое больше ожидаемого.

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

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

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

Откройте «Оборотно-сальдовую ведомость по счёту» (раздел «Отчёты»), укажите счёт и период, в настройках добавьте группировку по документам или по корсчетам. По числу строк в отчёте можно оценить количество операций. Отчёт «Анализ счета» с детализацией по корреспондирующим счетам показывает, сколько корреспонденций прошло по каждой паре счетов.

Отчёт «Обороты между счетами» (в 1С:Бухгалтерии 8) выводит таблицу корреспонденций за период: каждая непустая ячейка — это вид проводок между двумя счетами. Для подсчёта именно строк движений удобнее «Карточка счета» — она показывает каждую проводку отдельной строкой с документом-регистратором.

Подсчёт через карточку счёта
  1. 1
    Откройте Отчёты → Карточка счета и укажите счёт и период
  2. 2
    Сформируйте отчёт — каждая строка это одна проводка по счёту
  3. 3
    Сохраните отчёт в табличный документ (Ещё → Сохранить) и посмотрите число строк
  4. 4
    Для проводок по конкретному документу откройте документ и нажмите «Дт/кт» — откроется список его проводок

Способ 2. Просмотр проводок конкретного документа

Если нужно узнать, сколько проводок сформировал один документ, программировать не требуется. В журнале документов выделите проведённый документ и нажмите кнопку «Дт/кт» (или «Показать проводки») на командной панели. Откроется таблица движений по регистру бухгалтерии — количество строк в ней и есть количество проводок документа.

Через меню «Ещё → Показать движения» (или клавиши Ctrl+Shift+D в ряде конфигураций) можно увидеть движения документа по всем регистрам сразу: бухгалтерии, накопления, сведений. Это удобно, когда нужно оценить полный «след» документа в базе, а не только бухгалтерские записи.

Обратите внимание: отмена проведения документа удаляет его проводки, а ручная операция (документ «Операция» в бухгалтерии) хранит проводки прямо в себе. При подсчёте за период оба типа записей учитываются в регистре одинаково.

Способ 3. Консоль запросов для точного подсчёта

Когда нужно точное число проводок за период, по набору счетов или по всей базе, используют консоль запросов (типовая есть в «1С:Консоль отчётов», также широко распространены внешние консоли с подсистемой «Инструменты разработчика»). Запрос обращается напрямую к таблице регистра бухгалтерии.

Пример запроса для подсчёта записей регистра «Хозрасчётный» за период:

SELECT

КОЛИЧЕСТВО(*) КАК КоличествоПроводок

ИЗ

РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный

ГДЕ

Хозрасчетный.Период МЕЖДУ &НачалоПериода И &КонецПериода

Для подсчёта с группировкой по регистраторам (сколько проводок у каждого документа) запрос меняется на группировку по полю «Регистратор» с итогом КОЛИЧЕСТВО(*). Так можно найти документы с аномально большим числом движений — частый признак ошибок обмена или некорректной обработки.

bsl
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ КОЛИЧЕСТВО(*) КАК Количество ИЗ РегистрБухгалтерии.Хозрасчетный ГДЕ Период МЕЖДУ &Начало И &Конец";
Запрос.УстановитьПараметр("Начало", НачалоМесяца(ТекущаяДатаСеанса()));
Запрос.УстановитьПараметр("Конец", КонецМесяца(ТекущаяДатаСеанса()));
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
	Сообщить("Проводок за месяц: " + Выборка.Количество);
КонецЕсли;

Способ 4. Консоль кода и оценка объёма регистра

Консоль кода подходит, когда запроса недостаточно — например, нужно посчитать проводки с условием по аналитике или сравнить с числом документов. Код выполняется на сервере, поэтому в файловой базе и в клиент-серверном варианте результат одинаков, отличается только скорость.

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

Как проверить результат и не ошибиться в подсчёте

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

Вторая ловушка — итоги и виртуальные таблицы. Запрос к виртуальной таблице «Обороты» возвращает агрегированные данные, а не отдельные проводки; для подсчёта записей обращайтесь к основной таблице регистра, а не к виртуальным.

Третий момент — периодичность и границы периода. В запросе с условием «МЕЖДУ» конечная дата включается с началом дня; чтобы захватить весь последний день, используйте КонецДня() или конструкцию «Период <= &КонецПериода» с концом дня в параметре.

Контрольные точки

Как проверить результат

Число записей запросом против карточки счёта
Норма

Число строк карточки по одному счёту не превышает общего числа записей регистра за период

Тревожный признак

Карточка показывает больше строк, чем записей в регистре — значит, в запросе неверный период или регистр

Границы периода
Норма

Проводки последнего дня периода входят в выборку

Тревожный признак

Документы конца периода «теряются» — конечная дата задана без времени

Регистраторы без проводок
Норма

Документы, не формирующие движений, отсутствуют в выборке

Тревожный признак

В выборке есть документы с нулём проводок — смешаны таблицы документов и регистра

Типичные ошибки и ограничения

Часто под «количеством проводок» путают количество документов, количество записей регистра и количество хозяйственных операций. Это три разные метрики: один документ «Поступление товаров» может создать несколько проводок, а документ без движений по регистру бухгалтерии — ни одной. Перед подсчётом договоритесь, какая метрика нужна.

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

Типичные ошибки
01
Подсчёт по виртуальной таблице «Обороты» вместо основной таблицы регистра — получаются агрегаты, а не число проводок
02
Игнорирование отбора по организации — итог суммирует проводки всех юрлиц базы
03
Неверная граница периода — проводки последнего дня не попадают в выборку
04
Сравнение суммы карточек счетов с числом записей регистра — одна проводка учитывается в двух карточках
05
Запуск тяжёлого запроса без периода в рабочее время на клиент-серверной базе — нагрузка на СУБД

Часто задаваемые вопросы

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

Запросом КОЛИЧЕСТВО(*) к таблице регистра бухгалтерии без условия по периоду. На больших клиент-серверных базах такой запрос может выполняться долго; альтернатива — посмотреть число строк таблицы регистра средствами СУБД.

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

Да, частично: через отчёты «Карточка счета», «Анализ счета» и «Обороты между счетами». Точный счётчик записей они не показывают, но по числу строк в сохранённом табличном документе можно оценить объём по конкретному счёту.

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

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

Учитываются ли помеченные на удаление документы в подсчёте проводок?

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

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

Запросом к регистру бухгалтерии с соединением к таблице субконто или с условием по полям Субконто1–Субконто3. В типовых отчётах ту же задачу решают отбором по значению субконто в настройках отчёта.

Скорость подсчёта отличается в файловой и клиент-серверной базе?

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

Итог

Что важно запомнить

Проводка — это запись регистра бухгалтерии, а не документ. Для быстрой оценки используйте типовые отчёты «Карточка счета» и «Анализ счета», для точного числа — запрос КОЛИЧЕСТВО(*) к основной таблице регистра с периодом и отбором по организации. Проверяйте границы периода и не сравнивайте метрики, полученные разными способами.