Подсчет количества документов в базе 1С за период
База данных - Статистика базы данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Эта обработка позволяет выполнить достаточно простую задачу – подсчитать количество документов в базе 1С.
В расчет попадают документы по следующим условиям:
1. У документа есть реквизит "Организация";
2. Документ не помечен на удаление;
3. Документ не устарел по мнению разработчиков 1С (имя документа начинается на "удалить")
Пользователю предлагается выбрать организацию и период и произвести расчет количества документов. Также можно посчитать документы по всем организациям, которые есть в базе данных.
Сам алгоритм подсчета документов достаточно простой. Я получаю перечень имен всех документов из метаданных, затем подставляю в шаблон запроса, текст которого динамически генерируется.
Для тех, кто не хочет тратить деньги на обработку, вот основной код, который используется для расчета количества документов. Этим циклом собирается большой запрос через "Объединить все", затем выполняется через "Выгрузить". Результат подставляется в табличную часть или выводится на печать.
Для Каждого Документ Из Метаданные.Документы Цикл
ИмяДок = Документ.Имя;
Синоним = Документ.Синоним;
Если НРег(Лев(ИмяДок,7)) = "удалить" Тогда
Продолжить;
КонецЕсли;
Если НЕ ОбщегоНазначения.ЕстьРеквизитОбъекта("Организация", Документ) Тогда
Продолжить;
КонецЕсли;
ИмяДок = Документ.Имя;
Текст = Текст + "ВЫБРАТЬ ТипЗначения("+ИмяДок+".Ссылка) КАК ТипДокумента, " + Символы.ПС+
"СУММА(1) КАК Количество "+ Символы.ПС +
"ИЗ Документ." + ИмяДок + " КАК "+ ИмяДок + Символы.ПС +
"ГДЕ " + ИмяДок + ".ПометкаУдаления = Ложь И " +Символы.ПС
+ ИмяДок+ ".Организация =&Организация И " + Символы.ПС
+ ИмяДок+".Дата >= &НачалоПериода И " + Символы.ПС
+ ИмяДок+".Дата <= &КонецПериода " + Символы.ПС
+"СГРУППИРОВАТЬ ПО ТИПЗНАЧЕНИЯ("+ИмяДок+".Ссылка) "+Символы.ПС
+"ОБЪЕДИНИТЬ ";
КонецЦикла;
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия КОРП, редакция 3.0, релизы 3.0.173.23
Вступайте в нашу телеграмм-группу Инфостарт