Быстрый подсчет элементов справочника

Опубликовал Brr (brr) в раздел Программирование - Практика программирования

Частенько бывает нужно подсчитать количество элементов в справочнике, чтобы показать пользователю прогресс выполнения обработки. Быстро это сделать позволяет следующая функция.

Частенько бывает нужно подсчитать количество элементов в справочнике, чтобы показать пользователю прогресс выполнения обработки. Быстро это сделать позволяет следующая функция.

На оригинальность не претендую.

 

 

Функция РазмерСправочника(ИмяСправочника)

   
Запрос = СоздатьОбъект("Запрос");

   
Запрос.Выполнить("

    |ТекЭлемент = Справочник."
+ИмяСправочника+".ТекущийЭлемент;

    |Функция Сч = Счётчик();"
);

    Возврат
Запрос.Сч;

КонецФункции//РазмерСправочника


Внимание! При расчете количества не учиттываются группы справочника!

 

 

 

См. также

Комментарии
1. Jurii (jmw) 59 19.10.10 07:04 Сейчас в теме
Как раз для маленьких справочников - не актуально, а для больших тратить несколько секунд и так затратно, а ещё и размер получать....
Вообще-то очень редко нужно получать размер всего справочника, особенно когда его размер превосходит 10К элементов.
2. Brr (brr) 172 19.10.10 10:21 Сейчас в теме
Запустил в циклах 10-100-1000 подсчетов справочника 100к элементов, среднее время 150 миллисекунд. При обработке больших объемов принято отображать процесс выполнения задачи.
3. docent (Docent) 27.10.10 14:43 Сейчас в теме
select count(0) from scxxxx (nolock)
рулит
4. Namer Worder (Paully) 24.11.10 17:40 Сейчас в теме
5. Ilyas Kopishev (apollo1982@mail.ru) 10.02.12 16:05 Сейчас в теме
а мне понравилось - хорошая возможность заранее оценить процесс.
6. Alex Sad (Downkey) 16.03.13 07:23 Сейчас в теме
Хороший способ, мне такой способ очень помог.
7. Vladimir Gricenko (Gavroch.v) 16.03.13 23:34 Сейчас в теме
8. Артем (nexochyka) 07.10.14 21:38 Сейчас в теме
9. Xer shi (Xershi) 225 09.07.15 12:58 Сейчас в теме
Для справочника товаров на 1000 элементов выдал меньше чем прошелся счетчик через
 СпрНоменклатура.ВыбратьЭлементы();
10. Brr (brr) 172 10.07.15 10:48 Сейчас в теме
(9) Xershi, Проверил, действительно, группы почему-то не учитываются запросом.