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