|
v7: Запрос в отчете 1С 7.7 | ☑ | ||
---|---|---|---|---|
0
lirt82
06.04.15
✎
05:32
|
в отчете есть запрос по двум документам, но в одном доке нужно взять из его таб части 2 реквизита (ВыигрышиТираж и Выигрыши), код ниже но возникает ошибка. Подскажите как исправить.
Запрос3 = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать7) |Период с ВыбНачПериода по ВыбКонПериода; |ТМЦ = Документ.ОтчетРеализатораТиражМомент.ТМЦ, Документ.ОтчетАгентов.Лотерея; |Выигрыши1 = Документ.ОтчетРеализатораТиражМомент.ВыигрышиТираж, Документ.ОтчетАгентов.Выигрыши; |Выгрыши2 = Документ.ОтчетРеализатораТиражМомент.Выигрыши; |ЧьяИгра = Документ.ОтчетРеализатораТиражМомент.ТМЦ.ЧьяИгра, Документ.ОтчетАгентов.Лотерея.ЧьяИгра; |Функция Выигрыши1Сумма = Сумма(Выигрыши1); |Функция Выгрыши2Сумма = Сумма(Выгрыши2); |Группировка ТМЦ без групп; |Условие(ЧьяИгра = ВыбЧьяИгра); |Условие(ТМЦ в ТирМомент); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос3.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока Запрос3.Группировка(1) = 1 Цикл Сумма3 = Сумма3 + Запрос3.Выигрыши1Сумма + Запрос3.Выигрыши2Сумма ; КонецЦикла; Сумма3 = Сумма3 + Запрос3.Выигрыши1Сумма + Запрос3.Выигрыши2Сумма ; {C:\USERS\ Поле агрегатного объекта не обнаружено (Выигрыши2Сумма) |
|||
1
Wobland
06.04.15
✎
05:34
|
Выгрыши2Сумма
|
|||
2
Wobland
06.04.15
✎
05:34
|
(1) в тексте запрроса
|
|||
3
lirt82
06.04.15
✎
05:39
|
(2) в какую строку запроса?
|
|||
4
Wobland
06.04.15
✎
05:42
|
(3) ну надо как-то внимательней относиться к текстам запросов...
|
|||
5
lirt82
06.04.15
✎
05:45
|
если в одну строку построить напрм.
|Выигрыши = Документ.ОтчетРеализатораТиражМомент.ВыигрышиТираж, Документ.ОтчетАгентов.Выигрыши, Документ.ОтчетРеализатораТиражМомент.Выигрыши; тогда 2-ой реквизит не видит (т.е. не считает) |
|||
6
VladZ
06.04.15
✎
05:45
|
(0) Сам читаешь, что пишешь?
"Функция Выгрыши2Сумма = Сумма(Выгрыши2);" Прочитай эту строку три раза... Для просветления. |
|||
7
lirt82
06.04.15
✎
06:10
|
окей, сделал так
Запрос3 = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать7) |Период с ВыбНачПериода по ВыбКонПериода; |ТМЦ = Документ.ОтчетРеализатораТиражМомент.ТМЦ, Документ.ОтчетАгентов.Лотерея; |Выигрыши1 = Документ.ОтчетРеализатораТиражМомент.ВыигрышиТираж, Документ.ОтчетАгентов.Выигрыши, Документ.ОтчетРеализатораТиражМомент.Выигрыши; |ЧьяИгра = Документ.ОтчетРеализатораТиражМомент.ТМЦ.ЧьяИгра, Документ.ОтчетАгентов.Лотерея.ЧьяИгра; |Функция Выигрыши1Сумма = Сумма(Выигрыши1); |Группировка ТМЦ без групп; |Условие(ЧьяИгра = ВыбЧьяИгра); |Условие(ТМЦ в ТирМомент); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос3.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока Запрос3.Группировка(1) = 1 Цикл Сумма3 = Сумма3 + Запрос3.Выигрыши1Сумма; КонецЦикла; теперь считает реквизит (ВыигрышиТираж), а (Выигрыши) - нет. |
|||
8
lirt82
06.04.15
✎
06:13
|
(6) Конструктор запросов так сделал, не я:-)
|
|||
9
VladZ
06.04.15
✎
06:18
|
(8) Конструктор в 7.7 убогий. Пиши руками. Это во-первых. А во-вторых, "Выгрыши2" руками задается в запросе. Разве нет? :)
|
|||
10
ЧеловекДуши
06.04.15
✎
06:18
|
(0) В черных запросах, "На языке 1С", забудь про вложенность. Чем проще запрос, тем лучше. Остальное допинаешь в Цикле.
Все ровно 1С 7.7 подтянет всю таблицу к тебе на ПК ;) |
|||
11
ЧеловекДуши
06.04.15
✎
06:19
|
(9) Ха... Лучше писать на прямых запросах, через 1С++ :)
|
|||
12
lirt82
06.04.15
✎
06:19
|
(9) да
|
|||
13
ЧеловекДуши
06.04.15
✎
06:19
|
(7) Да не липи ты все в одном запросе. 7.7 так не умеет.
Все в разных двух. Это тебе не 8.ххх, в скоросте не выйграешь :) |
|||
14
lirt82
06.04.15
✎
06:58
|
(13) СПАСИБО, сделал 2 разных, сработала:-)
тему можно закрывать |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |