|
Как перебрать записи регистра? | ☑ | ||
---|---|---|---|---|
0
PDV64
21.09.12
✎
11:28
|
Всем доброе утро!
Хочу обойти и вывести все записи регистра в обработке. Написал код, а внутрений цикл не работает - пишет об ошибке итерации при испонении. Может кто-л. навести на правильную мысль - как из это решить? Спасибо. ВыводитьСпециальныеСообщения=Истина;//Временное Для Каждого Регистр Из Документ.Движения Цикл Если ВыводитьСпециальныеСообщения Тогда Сообщить("Регистр - "+Регистр.Имя) КонецЕсли; //Статистика Для Каждого Док Из РегистрыНакопления[Регистр.Имя] Цикл Если ВыводитьСпециальныеСообщения Тогда Сообщить(Регистр.Регистратор) КонецЕсли; //Статистика КонецЦикла; КонецЦикла; |
|||
1
Skylark
21.09.12
✎
11:30
|
Даже не знаю, что и сказать...
|
|||
2
yanejsh
21.09.12
✎
11:31
|
запрос?
|
|||
3
Skylark
21.09.12
✎
11:31
|
Если тебе нужен отчет о движениях документа, посмотри любую типовую что ли
|
|||
4
Strogg
21.09.12
✎
11:33
|
Пятничная ветка!
|
|||
5
unregistered
21.09.12
✎
11:33
|
(3) У автора тут же сломается мозг.
Кто отвечать будет? |
|||
6
unregistered
21.09.12
✎
11:34
|
(0) Как ты думаешь что у тебя в переменной "Регистр" внутри цикла (в итераторе).
|
|||
7
PDV64
21.09.12
✎
11:34
|
Мне нужно посчитать, сколько доков определенного вида было проведено в определенном регистре.
|
|||
8
nrol
21.09.12
✎
11:34
|
Посмотри процедуру в любой типовой конфигурации "Движения по документу". Там именно перебор по всем регистрам и осуществляется.
|
|||
9
PDV64
21.09.12
✎
11:35
|
В нем имя регистра я отладчик запускал и смотрел
|
|||
10
PDV64
21.09.12
✎
11:36
|
в типовых все работает, только там регистр явно задан, а здесь Регистр - переменный
|
|||
11
PDV64
21.09.12
✎
11:36
|
вернее имя регистра переменное
|
|||
12
unregistered
21.09.12
✎
11:39
|
(9) Вот так прямо в отладчике и написано "Регистр - имя регистра."
Видимо у меня какой-то другой отладчик... |
|||
13
nrol
21.09.12
✎
11:40
|
ВЫБРАТЬ КОЛИЧЕСТВО(Регистратор) ИЗ Регистр
ГДЕ Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг |
|||
14
unregistered
21.09.12
✎
11:40
|
(7) >> нужно посчитать, сколько доков определенного вида было проведено в определенном регистре.
Код из (0) какое имеет отношение к поставленной задаче? В нём ты пляшешь от документа, а не от регистра... |
|||
15
vmv
21.09.12
✎
11:41
|
(13) ПРЕДАТЕЛЬ!
тс шел по пути истеного г-кодера, зачем сбил с пути!? |
|||
16
Живой Ископаемый
21.09.12
✎
11:41
|
ВЫБРАТЬ
ТИПЗНАЧЕНИЯ(ВзаиморасчетыСКонтрагентами.Регистратор) КАК Поле1, СУММА(1) КАК Поле2 ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами КАК ВзаиморасчетыСКонтрагентами СГРУППИРОВАТЬ ПО ТИПЗНАЧЕНИЯ(ВзаиморасчетыСКонтрагентами.Регистратор) |
|||
17
Живой Ископаемый
21.09.12
✎
11:42
|
2(13) Ему не количество различных документов,а количество различных ВИДОВ документов
|
|||
18
IronDemon
21.09.12
✎
11:43
|
(16) А вдруг у автора 8.0?
|
|||
19
Живой Ископаемый
21.09.12
✎
11:43
|
||||
20
Живой Ископаемый
21.09.12
✎
11:44
|
2(18) То тогда что? Мне его усыновить? Пусть обновится.
|
|||
21
PDV64
21.09.12
✎
11:46
|
у автора 8.2 приложение версия 14.537
|
|||
22
vmv
21.09.12
✎
11:47
|
(21) крутыш
|
|||
23
PDV64
21.09.12
✎
11:47
|
мне нужно количество записей в регистре, проведенных одним типом документа
|
|||
24
vmv
21.09.12
✎
11:50
|
ГДЕ
ТИПЗНАЧЕНИЯ(ТаблБдРег.Регистратор) = ТИП(Документ.Нокладньая) |
|||
25
vmv
21.09.12
✎
11:52
|
+(24) собрать все возможные варинаты типов документов в регистре можно (через метаданные, пакетный запрос, вложенный запрос), но вот чтобы проверять типы в запросе в множетсве различных типов - это стоит дорого
|
|||
26
PDV64
21.09.12
✎
11:53
|
В переменной Регистр - коллекция имен регистров из свойства Документ.Движения, не заморачивайтесь - это проверено, не включается цикл из-за ошибки итератора. не пнимаю, что неправильно в записи, если имя регистра задавать явно, то вложенный цикл тоже не работает.
Запрос мне будет более трудоемко, потому что нужно делать еще некоторые действия с самими записями. |
|||
27
PDV64
21.09.12
✎
11:54
|
vmv! - Вот - я это и пытаюсь сделать, что мне поправить?
|
|||
28
SanGvin
21.09.12
✎
11:56
|
(26) хех... НЕТУ итератора, автор! НЕТУ!!! тебе уже почти правильно написали в (13) как сделать запросам - так и делай ничего там сложного нет
|
|||
29
vmv
21.09.12
✎
11:56
|
(27) я не использую менеджеры регистров при чтении данных, ибо это абсурдно, а учить этому абсурдно вдвойне
|
|||
30
Живой Ископаемый
21.09.12
✎
11:58
|
http://screencast.com/t/vwM8uAnu
ВЫБРАТЬ ТИПЗНАЧЕНИЯ(ВзаиморасчетыСКонтрагентами.Регистратор) КАК ТипРегистратора, ВзаиморасчетыСКонтрагентами.Регистратор КАК Регистратор, 1 КАК Счетчик ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами КАК ВзаиморасчетыСКонтрагентами ИТОГИ СУММА(Счетчик) ПО ТипРегистратора, Регистратор |
|||
31
vmv
21.09.12
✎
11:59
|
вопрос знатокам
что быстрее ГДЕ Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг /или/ ГДЕ ТИПЗНАЧЕНИЯ(Регистратор) = ТИП(Документ.ПоступлениеТоваровУслуг) на первый взгляд 1-е, так не юзаються функции запроса, но все же? |
|||
32
SanGvin
21.09.12
✎
12:03
|
(31) первое быстрее раза в 2
|
|||
33
Живой Ископаемый
21.09.12
✎
12:04
|
2(32) На любой СУБД при любых объемах и настройках?
|
|||
34
PDV64
21.09.12
✎
12:06
|
Уважаемые коллеги,
запросом я уже все сделал, немного не так, но сойдет. Но это не единственная задача цикла. Мне нужно запустить обозначеный цикл. Может кто-то посоветовать как или указать в чем моя ошибка? |
|||
35
vmv
21.09.12
✎
12:07
|
ССЫЛКА Документ.ПоступлениеТоваровУслуг
для выполнения этого - запрос должен ведь все равно создать некий образ пустого типа и сравнить его в условии, т.е. фактически выйти на 2-й вариант. потому я и вопрошаю к знатокам) |
|||
36
vmv
21.09.12
✎
12:07
|
(34) прелюдия бесплатно, остальное за бабло чувак
|
|||
37
SanGvin
21.09.12
✎
12:09
|
(33) насчет раза в 2 - загнул, но и на файловом и на MS SQL щас проверил результат один примерно и тот же
http://www.tinyuploads.com/gallery/view/FddI94 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |