Администрирование · 12 мин
Как узнать количество документов в 1С
Как узнать количество документов в 1С: подсчёт через список, консоль запросов, обработку и встроенный язык. Пошаговые инструкции для разных конфигураций.
Подсчёт количества документов в базе 1С — типовая задача, которая возникает при оценке объёма данных перед свёрткой, переносом в новую базу, проверкой корректности обмена или просто при аудите учёта. Способ решения зависит от того, кто выполняет задачу: обычный пользователь, бухгалтер с правами на отчёты или администратор с доступом к конфигуратору.
В 1С нет единой кнопки «показать число документов», поэтому используют несколько рабочих приёмов: подсчёт строк в динамическом списке, стандартные и универсальные отчёты, консоль запросов, встроенный язык и специальные обработки. Каждый вариант имеет ограничения по точности, скорости и требуемым правам.
Ниже разобраны все основные способы — от самого простого, доступного любому пользователю, до программного подсчёта по всем видам документов сразу. Выбирайте метод под свою конфигурацию (УТ, ERP, БП, ЗУП) и уровень доступа.
Подсчёт через список документов — самый простой способ
Если нужно узнать количество документов одного вида (например, всех «Реализаций товаров и услуг»), откройте журнал документов и воспользуйтесь динамическим списком. В большинстве типовых конфигураций на управляемых формах количество записей можно увидеть двумя путями.
Первый путь — выделить все строки: кликните в список, нажмите Ctrl+A, и в нижней части окна (или в строке состояния) появится информация о числе выделенных строк. Второй путь — вывести список в табличный документ: меню «Ещё» → «Вывести список», в диалоге отметьте нужные колонки и нажмите «ОК». В полученном табличном документе число строк будет равно числу документов, а в заголовке или при выделении видно точное количество.
Важно учитывать, что список показывает документы с учётом установленных отборов. Если в журнале настроен фильтр по периоду, организации или контрагенту, вы увидите количество только отфильтрованных документов, а не всех в базе. Перед подсчётом сбросьте отборы или, наоборот, настройте их осознанно — например, чтобы посчитать документы только за конкретный год.
В тонком клиенте и веб-клиенте динамический список может подгружать данные порциями, поэтому Ctrl+A иногда выделяет не все записи сразу. Если база большая, надёжнее использовать вывод списка в табличный документ или отчёт.
- 1Откройте журнал нужного вида документов
- 2Снимите или настройте отборы (период, организация)
- 3Нажмите «Ещё» → «Вывести список»
- 4Отметьте минимум одну колонку и сформируйте табличный документ
- 5Посмотрите число строк в результате
Подсчёт через стандартные и универсальные отчёты
Во многих конфигурациях есть отчёты, которые опосредованно показывают количество документов. Например, «Оборотно-сальдовая ведомость» или «Анализ субконто» в 1С:Бухгалтерии позволяют оценить число проводок, но не документов напрямую. Для точного подсчёта лучше подходит универсальный отчёт.
В конфигурациях на БСП (Библиотека стандартных подсистем) — УТ 11, ERP, КА, ЗУП, БП 3.0 — есть «Универсальный отчёт» (раздел «Администрирование» → «Печатные формы, отчёты и обработки» или «Отчёты» → «Универсальный отчёт»). В нём выберите тип объекта «Документ», конкретный вид документа, установите период и в настройках добавьте группировку или показатель «Количество». Отчёт выведет список документов, а итог по строкам даст их число.
Способ удобен тем, что не требует прав разработчика и работает в пользовательском режиме. Ограничение: универсальный отчёт считает документы одного вида за один раз, и для сводной картины по всей базе придётся повторять операцию для каждого вида.
Подсчёт через консоль запросов
Консоль запросов — штатный инструмент разработчика и администратора, который позволяет быстро посчитать документы любого вида с произвольными условиями. Консоль входит в состав «Инструменты разработчика» (подсистема ИТР) либо скачивается как отдельная внешняя обработка с диска ИТС.
Запрос для подсчёта предельно прост: выбирается количество записей из таблицы документа. Например, для документа «Реализация товаров и услуг» запрос вернёт одно число — количество всех документов этого вида в базе, включая помеченные на удаление.
ВЫБРАТЬ
КОЛИЧЕСТВО(*) КАК КоличествоДокументов
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
НЕ РеализацияТоваровУслуг.ПометкаУдаленияУсловие «НЕ ПометкаУдаления» исключает помеченные на удаление документы — уберите его, если нужен полный подсчёт. Для подсчёта только проведённых документов добавьте отбор по полю «Проведен». Период ограничивается условием по полю «Дата».
Чтобы получить количество по всем видам документов сразу, одним запросом не обойтись — потребуется либо объединение (ОБЪЕДИНИТЬ ВСЕ) запросов по каждой таблице, либо программный перебор метаданных, о котором ниже.
Программный подсчёт по всем видам документов
Когда нужна сводная таблица «вид документа — количество» по всей базе, применяют перебор метаданных на встроенном языке. Код выполняется в консоли кода (внешняя обработка) или через «Файл» → «Открыть» в режиме предприятия при наличии прав на запуск внешних обработок.
Логика проста: для каждого объекта метаданных из коллекции «Документы» формируется запрос с подсчётом количества записей, результат выводится в таблицу значений. На больших базах такой перебор может занять заметное время — десятки секунд или минуты, потому что по каждой таблице выполняется отдельный запрос.
Для Каждого ДокументМетаданные Из Метаданные.Документы Цикл
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ КОЛИЧЕСТВО(*) КАК Количество ИЗ Документ." + ДокументМетаданные.Имя;
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Сообщить(ДокументМетаданные.Синоним + ": " + Выборка.Количество);
КонецЕсли;
КонецЦикла;Такой подсчёт часто используют перед свёрткой базы или миграцией, чтобы сопоставить объёмы данных «до» и «после». Результат удобно выгрузить в табличный документ и сохранить как файл для сравнения.
Готовые обработки и подсчёт в файловой базе напрямую
Существуют типовые обработки, которые показывают статистику базы: количество документов, справочников, записей регистров по каждому виду. На диске ИТС и в составе «Инструментов разработчика» есть обработки анализа данных, а для конфигураций на БСП часто используют отчёт «Анализ прав доступа» и смежные инструменты администратора. Конкретный состав зависит от версии конфигурации.
Для файловых баз (1Cv8.1CD) иногда предлагают оценивать размер таблиц по размеру файла, но это не даёт точного числа документов: файл содержит все таблицы, индексы и свободное место. Ориентироваться на размер файла можно только для грубой оценки роста базы, а не для подсчёта документов.
В клиент-серверном варианте (SQL Server, PostgreSQL) администратор может посчитать строки напрямую в таблицах СУБД. Это допустимо только для чтения и требует знания структуры хранения: имена таблиц в СУБД не совпадают с именами в конфигураторе, их сопоставление получают функцией «ПолучитьСтруктуруХраненияБазыДанных()». Прямые запросы к СУБД — крайняя мера; штатные средства 1С безопаснее.
Сравнение способов подсчёта
Подходит пользователю без специальных прав; считает один вид документов с учётом отборов; на больших списках может подгружать данные порциями
Работает в пользовательском режиме, даёт точный итог по одному виду документов за период; требует наличия отчёта в конфигурации
Гибкие условия (проведённые, помеченные, период); нужны права и сама обработка консоли
Единственный способ получить свод по всем видам документов сразу; требует прав разработчика и времени на больших базах
Быстро на больших объёмах, но рискованно и требует знания структуры хранения; только для чтения
Частые ошибки и как проверить результат
Самая распространённая ошибка — забыть про помеченные на удаление документы. Список в режиме предприятия обычно показывает их с перечёркнутой иконкой, и они входят в общее число строк. Если цель — посчитать «живые» документы, исключайте помеченные отбором или условием в запросе.
Вторая ошибка — путать количество документов с количеством проводок или строк табличных частей. Один документ «Реализация» может содержать десятки строк и формировать несколько проводок; подсчёт по регистру бухгалтерии даст совсем другое число, чем подсчёт по таблице документа.
Третья ошибка — неучтённые отборы в журнале. Если список открыт с фильтром по организации или периоду, полученное число не отражает объём всей базы. Всегда проверяйте панель отборов перед подсчётом.
Как проверить результат
Список и запрос по одному виду документов дают одинаковое число
Числа расходятся — проверьте отборы и условие на пометку удаления
Известно, входят ли помеченные на удаление в итог
Неясно, что именно посчитано
Период подсчёта явно задан и зафиксирован
Число получено без указания периода и настроек отбора
Выбор способа под вашу задачу
Если вы бухгалтер или менеджер без прав администратора, используйте список документов или универсальный отчёт — этого достаточно для ответа на вопрос «сколько у нас счетов-фактур за квартал». Если вы администратор, готовящий базу к свёртке или переносу, применяйте перебор метаданных и сохраняйте сводную таблицу для последующей сверки.
Как выбрать действие
Что важно запомнить
Для разового подсчёта достаточно списка документов или универсального отчёта. Для гибких условий используйте консоль запросов, а для полной картины по базе — перебор метаданных. Всегда фиксируйте, учитываются ли помеченные на удаление документы и какие отборы действовали при подсчёте.
Частые вопросы
Как посчитать только проведённые документы?
В консоли запросов добавьте условие «ГДЕ Проведен» (или «Проведен = ИСТИНА»). В динамическом списке журнала настройте отбор по полю «Проведён», если оно доступно в настройках отбора, либо отсортируйте и оцените по служебной колонке состояния. В универсальном отчёте поле «Проведён» добавляется в отборы через настройки варианта.
Входят ли помеченные на удаление документы в количество строк списка?
Да, динамический список по умолчанию показывает и помеченные документы — они отображаются с перечёркнутой пиктограммой и учитываются при выделении всех строк. Чтобы исключить их, установите отбор «Пометка удаления = Нет» или добавьте соответствующее условие в запрос.
Можно ли узнать количество документов без прав администратора?
Да. Способы через журнал документов и универсальный отчёт доступны обычному пользователю, если у него есть право просмотра соответствующих документов. Недоступны будут только консоль запросов, внешние обработки и программный перебор метаданных.
Почему число в списке не совпадает с числом из запроса?
Чаще всего причина в действующих отборах журнала (период, организация, контрагент) или в разном отношении к помеченным на удаление документам. Сравнивайте результаты при одинаковых условиях: снимите все отборы в списке и выполните запрос без условий — числа должны совпасть.
Как посчитать документы за конкретный период?
В журнале установите отбор по периоду через кнопку настройки периода. В запросе добавьте условие вида «Дата МЕЖДУ &НачалоПериода И &КонецПериода» и передайте параметры. В универсальном отчёте период задаётся стандартным полем выбора периода в шапке отчёта.
Опасно ли запускать обработки подсчёта на рабочей базе?
Запросы на чтение (КОЛИЧЕСТВО, выборка данных) не изменяют базу и безопасны, но на больших объёмах создают нагрузку и могут замедлить работу пользователей — лучше выполнять их в нерабочее время. Опасны только обработки, которые что-то записывают или удаляют; любую стороннюю обработку сначала проверяйте на копии базы.