|
запрос по ОЛЕ из 77 к 8.2 | ☑ | ||
---|---|---|---|---|
0
арах
15.03.12
✎
14:36
|
в 8.2 делается так :
Запрос.Текст = "ВЫБРАТЬ | Реализация.Номер как НомерДок, | Реализация.Дата как ДатаДок, | Реализация.Контрагент, | Реализация.Договор, | Реализация.Товары.( | Номенклатура, | Характеристика, | КоличествоУпаковок, | Количество, | Цена, | Сумма, | СтавкаНДС, | СуммаНДС, | СуммаСНДС | ) КАК товары | |ИЗ | Документ.РеализацияТоваровУслуг КАК Реализация Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл для каждого стр из выборка.товары цикл номен= стр.номенклатура; конеццикла; конеццикла; вопрос как туже выборку сделать по ОЛЕ в 77 из этогоже запроса? |
|||
1
nicxxx
15.03.12
✎
14:46
|
Запрос = База.NewObject("Запрос");
Запрос.Текст = "ВЫБРАТЬ | Док.Ссылка, | Док.Номер, | Док.Дата, | Док.Организация.Код КАК Организация, | Док.СкладОтправитель.Код КАК СкладОтправитель, | Док.СкладПолучатель.Код КАК СкладПолучатель |ИЗ | Документ.ПеремещениеТоваров КАК Док |ГДЕ | Док.Дата = &ДатаНач |"; Запрос.УстановитьПараметр("ДатаНач",Дата(2012,01,01)); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий()<>0 Цикл Док = Выборка.Ссылка; ... КонецЦикла; |
|||
2
арах
15.03.12
✎
14:46
|
(1)нет тут конкретно вопрос обхода табличной части
|
|||
3
andrewks
15.03.12
✎
14:48
|
(2) можно вопрос? нахрена такой запрос тогда, если ты потом собрался ТЧ отдельно обходить? или ты хочешь сделать совсем виртуозно, и зафигачить ещё один запрос в цикле?
|
|||
4
Rovan
гуру
15.03.12
✎
14:48
|
(1) делай запрос сразу к ТЧ
| выбрать |Реализация.Ссылка, |Реализация.Ссылка.дата, ... |из | Документ.РеализацияТоваровУслуг КАК Реализация |
|||
5
арах
15.03.12
✎
14:50
|
(3)(4) хочу сделать 1 запрос чтобы не делать еще один запрос к тч в цикле
|
|||
6
арах
15.03.12
✎
14:52
|
в 8.2 все гуд работает:) а вот как сделать в 77 которая не знает цикла "для каждого"
|
|||
7
nicxxx
15.03.12
✎
14:53
|
ну какая разница, обход Таб Части или документов?
вот так работает: Пока Выборка.Следующий()<>0 Цикл |
|||
8
andrewks
15.03.12
✎
14:53
|
(5) ну так и делай один запрос
|
|||
9
арах
15.03.12
✎
14:55
|
ну делаю я такой запрос как написано в (0) обходится шапка.... а как добраться до строк???
|
|||
10
Staffa
15.03.12
✎
14:56
|
(9) тебе говорят, выборку строк тоже в запрос засандаль
|
|||
11
nicxxx
15.03.12
✎
14:56
|
ВЫБРАТЬ
Реализация.Номер как НомерДок, Реализация.Дата как ДатаДок, Реализация.Контрагент, Реализация.Договор, Товары.Номенклатура Товары.ХХХХХХ ИЗ Документ.РеализацияТоваровУслуг КАК Реализация Левое соединение Документ.РеализацияТоваровУслуг.Товары КАК Товары ПО Товары.Ссылка=Реализация.Ссылка |
|||
12
viktor_vv
15.03.12
✎
14:57
|
(9) Предопределенная группировка СтрокаДокумента.
|
|||
13
Rovan
гуру
15.03.12
✎
14:58
|
(11) а мой вариант без соединений !
|
|||
14
nicxxx
15.03.12
✎
15:00
|
(13) думаешь, без соединений лучше? имхо, субд все равно сделает join 2-х таблиц
|
|||
15
арах
15.03.12
✎
15:03
|
(12) ето че?
(11) не то ! получится куча строк потом их в выборке сортировать..... надо именно как в (0) чтоб строка содержала вложенную таблицу товары и моно было потом в выборке пробежаться по этой таблице.... как еще объяснить не знаю:) |
|||
16
andrewks
15.03.12
✎
15:04
|
блеать...
у любой коллекции элементов есть индекс. открой для себя, наконец, СП! |
|||
17
viktor_vv
15.03.12
✎
15:07
|
(15) А, тормознул. Подумал тебе к 77 запрос семерочный надо.
|
|||
18
арах
15.03.12
✎
15:07
|
(16) а подробнее? как написать цикл по вложенной табличке?:)
|
|||
19
арах
15.03.12
✎
15:16
|
блин самбы разобрался бы еслиб в 77 был нормальный отладчик:) а так она сволочь даже не хочет выборка.товары в ТЗ выгружать :(
|
|||
20
арах
15.03.12
✎
15:22
|
нету идей?
|
|||
21
Рэйв
15.03.12
✎
15:25
|
тз = Запрос.Выполнить().Выгрузить();
Кол= тз.Количество(); Для н=0 По Кол-1 Цикл Стр=тз.Получить(н); // дальше все поля запроса получаешь через точку от Стр КонецЦикла; |
|||
22
арах
15.03.12
✎
15:30
|
(21) это чтоб пробежаться по основной выборке? а как пробежаться по таблице товаров в строке выборки?
|
|||
23
Рэйв
15.03.12
✎
15:34
|
(22)Как вариант.
Выбирай ссылки только. А цикле обращайся к таб частям и пробегай сколько хочешь |
|||
24
Rovan
гуру
15.03.12
✎
16:27
|
(22) тогда двумя отдельными запросами
|
|||
25
арах
16.03.12
✎
08:54
|
(22)эх... ниужто нельзя без второго запроса добраться до вложенной таблицы? в 8.2 же можно легко....
|
|||
26
nicxxx
17.03.12
✎
08:55
|
использовать Группировку в запросе и иерархическую выборку. понятно о чем я?
|
|||
27
experimentator76
17.03.12
✎
09:29
|
(0)примени Выбрать() к Товары вместо Для Каждого
|
|||
28
арах
19.03.12
✎
14:09
|
(27) спасибо, один светлый ум:)
стоко народу тупило... а все просто : Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий()<> 0 Цикл контр = выборка.Контрагент; строкиТорг = выборка.товары.Выбрать(); Пока строкиТорг.Следующий() <> 0 Цикл номен= строкиТорг.номенклатура; конеццикла; конеццикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |