Имя: Пароль:
1C
1С v8
Получить общее количество записей в регистре сведеней
,
0 lucifer
 
30.07.12
14:17
Выборка = РегистрыСведений.ФизЛицо.Выбрать();
//макс = ???
Пока Выборка.Следующий() Цикл

КонецЦикла;

хочу прикрутить прогрессбар к моему циклу Пока .....
для чего нужно знать общее кол-во записей в регистре, как это узнать?
1 Wobland
 
30.07.12
14:17
запросом
2 Wobland
 
30.07.12
14:18
а что за регистр такой интересный?
3 lucifer
 
30.07.12
14:18
(1) а по другому не как?
4 Wobland
 
30.07.12
14:19
(3) а смысл?
5 lucifer
 
30.07.12
14:19
регистр периодический, там же нужно насколько я понимаю период указать, а мне нужно вообще все записи
6 Wobland
 
30.07.12
14:19
(5) а если не указвать?
7 lucifer
 
30.07.12
14:20
(4) в смысле?
я ж пишу, нужно прикрутить индекатор, что бы видно было что обработка работает а не весит
8 Reset
 
30.07.12
14:23
индИкатор

Выбрать Количество(0) Как Количество из РегистрСведений.ФизЛицо
9 Reset
 
30.07.12
14:23
+вИсит
10 Heckfy
 
30.07.12
14:25
(7) А как ты максимальное значение для индикатора получишь??? Может лучше состояние использовать?
ЗЫ: Тише, про запрос ни слова. Человек с задумкой на будущее код пишет. Что бы было что оптимизировать потом.
11 Wobland
 
30.07.12
14:28
(7) сколько весит?
12 lucifer
 
30.07.12
14:41
(10) > А как ты максимальное значение для индикатора получишь???

я это и хочу сделать, запросом я и сам знал что можно, просто думал мож метод есть какой, что бы в одну строчку кода уложиться
13 lucifer
 
30.07.12
14:43
(10) не совсем понятно что значит "максимальное значение для индикатора"
максимальное значение для индикатора = 100 (% естественно)
а в цикле так:
прогресс = текущийсчетчикинтераций / колвозаписей * 100;
14 Wobland
 
30.07.12
14:45
(13) тебе самому будет удобней работать не от 0 до 100, а от 0 до СколькоТоТам. проценты сам бар посчитает
15 Wobland
 
30.07.12
14:45
сведеней, интераций, индекатор, весит.. прикольная раскладка клавиатуры
16 hhhh
 
30.07.12
14:46
(12) ну так там и есть в одну строчку, читай (8).
17 Heckfy
 
30.07.12
14:47
(13) Так не кошерно. Зная колвозаписей лучше

Индикатор.МаксимальноЗначение=Колвозаписей;
Пока цикл
Индикатор=Индикатор.Значение+1;
КонецЦикла;

ЗЫ:За синтаксис прошу прощения. СП под рукой нету.
18 lucifer
 
30.07.12
14:47
(14) в смысле так:
прогресс = текущийсчетчикитераций;
или я тебя не понял.
(15) ну уж какая есть )))
19 lucifer
 
30.07.12
14:48
(17) ааа ок, не знал
20 lucifer
 
30.07.12
14:49
а может ответите по другому вопросу, как сделать что бы цикл не вис, а то то зависает и только в конце обработки отвисает (цикл работает в процедуре &Насервере)
21 Vladal
 
30.07.12
14:50
(10) Щто? Автор Болгеноса здесь?
22 Wobland
 
30.07.12
14:51
(20) отдавать иногда управление клиенту, чтоб он просра.... прорисовался
23 lucifer
 
30.07.12
14:53
(22) почему-то процедуру объявленную &Наклиенте 1с не видит, пишет что не найдена
24 Wobland
 
30.07.12
14:53
(23) засада прям
25 Spieluhr
 
30.07.12
14:57
(0) Открою секретный прием получения общего количества записей таблицы

ВЫБРАТЬ
   Количество(*)
ИЗ
   РегистрСведений.ФизЛицо
26 lucifer
 
30.07.12
14:59
(25) в следующий раз тему начиная читать сверху вниз
27 lucifer
 
30.07.12
14:59
+(25) ну или все сообщения в теме, а не выборочно
28 hhhh
 
30.07.12
15:00
(26) еще более секретный прием - без запроса:

Набор = РегистрыСведений.ФизЛицо.СоздатьНаборЗаписей();
Набор.Прочитать();
Количество = Набор.Количество();
29 lucifer
 
30.07.12
15:02
(28) ооо, это я и хотел увидеть )) сенькс
30 cViper
 
30.07.12
15:03
ВыборкаИзРезультатаЗапроса (QueryResultSelection)
Элементы коллекции:

Произвольный
Возможно обращение к полям выборки посредством оператора [...]. В качестве аргумента передается индекс (нумерация с 0) или имя поля выборки.

Свойства:

<Имя поля> (<Field name>)

Методы:

Владелец (Owner)
Выбрать (Choose)
Группировка (Group)
Количество (Count)
НайтиСледующий (FindNext)
Получить (Get)
Сбросить (Reset)
Следующий (Next)
СледующийПоЗначениюПоля (NextByFieldValue)
ТипЗаписи (RecordType)
Уровень (Level)

Описание:

Объект этого типа возвращается методом Выбрать у объекта типа РезультатЗапроса и представляет собой специализированный способ перебора записей запроса.

Доступность:

Сервер, толстый клиент, внешнее соединение.
См. также:

РезультатЗапроса, метод Выбрать
ВыборкаИзРезультатаЗапроса, метод Выбрать
31 cViper
 
30.07.12
15:03
ВыборкаИзРезультатаЗапроса (QueryResultSelection)
Количество (Count)
Синтаксис:

Количество()
Возвращаемое значение:

Тип: Число.

Описание:

Получает количество записей в выборке из результата запроса.

Доступность:

Сервер, толстый клиент, внешнее соединение.
32 dauster
 
30.07.12
15:21
(25) +100000
(28) Неправильный подход. Представим ситуацию, когда в регистре миллионы записей - все они при таком коде будут грузится в память, что во-первых будет очень долго, а во-вторых память может банально кончится.
33 cViper
 
30.07.12
15:23
(0) Вы вообще (0) читали?
34 cViper
 
30.07.12
15:23
(32) Вы вообще (0) читали?
35 dauster
 
30.07.12
15:25
(34) что мешает сделать запрос перед тем, как открыть выборку?
цель озвучена - получить общее количество записей в регистре, код в (25) - этому удовлетворяет.
в (28) - откровенная ерунда для данной цели.
36 cViper
 
30.07.12
15:29
(35) Человек в (0) может выразился не так. По факту ему надо количество строк в выборке, а не в регистре.
37 Vladal
 
30.07.12
15:34
(36) Выборка.Пустая(), Выборка.Выгрузить(ТЗ), ТЗ.Количество?
38 dauster
 
30.07.12
15:39
(36) Тогда ответ напрашивается сам собой. Человеку просто надо использовать правильный инструмент для своих задач.
В его случае изначально нужно использовать запрос, а не выборку и не мучаться.
Будет и быстро и просто.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн