Имя: Пароль:
1C
1С v8
Подсчет количества элементов во всех справочниках
0 StormProff
 
01.11.12
14:14
Здравствуйте. В 7ке у меня так.

Для сч = 1 по Метаданные.Справочник() Цикл    
       Сп = Метаданные.Справочник(сч);        
       Спр = СоздатьОбъект(Сп.ПолныйИдентификатор());
       Спр.ВыбратьЭлементы();
       Пока Спр.ПолучитьЭлемент() = 1 Цикл
           // считаем количество
       КонецЦикла;    
КонецЦикла;


Ка это же сделать в 8ке? Мучаюсь, пока хватило ума только на это:

Для Каждого СписокСправочников Из Метаданные.Справочники Цикл
           
       Справочник = ???
       
       Пока Справочник.следующий() Цикл    
           Сообщить(Справочник.Наименование);
       КонецЦикла;
КонецЦикла;
1 Wobland
 
01.11.12
14:15
выбрать количество...
2 mikecool
 
01.11.12
14:15
300р
3 Fragster
 
гуру
01.11.12
14:15
Выбрать Количество(Ссылка) Из Справочник.Справочник
4 mikecool
 
01.11.12
14:16
ы, вон оно чего тебя фонтаны интересуют...
5 Агент Инфостарта
 
01.11.12
14:17
На инфостарте обработок по статистике базы как грязи.
6 mikecool
 
01.11.12
14:17
(0) кстате - в семерке в запросе была функция Счетчик и все решалось одним запросом
7 mikecool
 
01.11.12
14:19
ТекстЗапроса = "Выбрать Сумма(Кол) ИЗ ( "
Для Каждого СписокСправочников Из Метаданные.Справочники Цикл
 ТекстЗапроса = ТекстЗапроса + "ВЫБРАТЬ Количество(Ссылка) Как Кол ИЗ Справочник."+СписокСправочников.Имя <или Идентификатор> +
" Объединить ";
Конеццикла
потом отрезать справа "Объединить" и добавить ")"
выполнить запрос, получить число на выходе
8 mikecool
 
01.11.12
14:20
+7 писал от руки без проверки в зачет фотке
9 Bolik1979
 
01.11.12
14:24
(7) В УПП не прокатит с MSSQL 2005 :-)
Метаданные.Справочники.Количество() = 262
10 StormProff
 
01.11.12
14:24
(7) Спасибо, я пока ни один запрос не писала в 8ке) надо разобраться. без запроса не получится?)
11 mikecool
 
01.11.12
14:25
(9) ну тогда разбить на 2 части
12 mikecool
 
01.11.12
14:25
(10) это быстрее, чем считать по элементно
13 Heckfy
 
01.11.12
14:26
Я думаю ТЗ это подойдет:

Процедура КнопкаСформироватьНажатие(Кнопка)
   Для Каждого Спр Из Метаданные.Справочники Цикл
       Запрос=Новый Запрос;
       Запрос.Текст=
       "ВЫБРАТЬ
       |    КОЛИЧЕСТВО(*) КАК Кол
       |ИЗ
       |    Справочник."+Спр.Имя+" Справочник"
       ;
       РезультатЗапроса=Запрос.Выполнить().Выбрать();
       РезультатЗапроса.Следующий();
       
       Сообщить(Спр.Имя+"   "+РезультатЗапроса.Кол);
   КонецЦикла;
КонецПроцедуры
14 Heckfy
 
01.11.12
14:26
ТЗ=ТС
15 Wobland
 
01.11.12
14:26
(10) если получится (а это возможно и не сложно), то тебя нужно будет лечить розгами
16 StormProff
 
01.11.12
14:29
(13) Спасибо! отлично работает
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн