Имя: Пароль:
1C
 
как можно узнать количество элементов во всех справочниках?
Ø
0 L
 
21.02.05
09:51
можно ли это сделать не перебирая все элементы?
1 Денис2
 
21.02.05
09:55
Можно.
для сч = 1 по метаданные.Справочник() цикл
  ид = MDW.GetMetadataID(метаданные.Справочник(сч)));
  тз = "Select count(*) from SC"+ид+" with (NOLOCK)";
  rq.prepare(тз,0,0);
  rq.open();
  rq.movenext();
  кол = rq.GetLong(0);
  сообщить("В справочнике "+метаданные.Справочник(сч).Идентификатор+" "+кол+" записей");
конецЦикла;
2 L
 
21.02.05
09:58
забыл написать, база на dbf
3 Денис2
 
21.02.05
10:00
Тогда для каждого SC*.dbf любым способом посчитать количество записей :-)
4 L
 
21.02.05
10:04
а как это лучше сделать? (быстрее).
5 pvase
 
21.02.05
10:05
Используй драйвера VoxPro и можешь выполнять запрос, такой как в (1).
ЗЫ
Советую использовать 1с++.
6 корум
 
21.02.05
10:36
(0) Авы таки сходите на Проклаб и там спосите, что такое БазоПузоМер ;о)
7 Денис2
 
21.02.05
10:43
(6) типа этот пузобазометр не перебирает справочники :-))
8 Napalm
 
21.02.05
10:44
Стандартными методами через запрос:
|зСпр = Справочник.ИмяСпр.ТекущийЭлемент;
|Функция СчЁтчик(зСпр);
9 Napalm
 
21.02.05
10:47
Сорри в прошлом сообщении ошибочка закралась
Лучше даже вот так:
...
|зКод= зСпр.Справочнк.Код
...
|Функция зКолво = СчЁтчик(зКод);
10 Денис2
 
21.02.05
10:51
(8)(9) Если ДБФ, то запрос _не_будет_ быстее перебора :-)
11 Napalm
 
21.02.05
10:52
Перебор всех справочников в конфе стандартными методами:
КовоСпр = Метаданные.Справочник();
Для Индекс=1 По КолвоСпр Цикл
 ИдСпр = СокрЛП(Метаданные.Справчоник(Индекс).Идентификатор);
КонгецЦикла
12 vS
 
21.02.05
10:54
быстро только через 1С++, или ODBC
13 Napalm
 
21.02.05
10:55
 уменя все БД на SQL, с дбф практически не работал:))