|
Требуется помощь в правильной выборке из запроса. | ☑ | ||
---|---|---|---|---|
0
capllary
18.09.14
✎
17:36
|
ввобщем есть запрос, в результате него выходит три значения, т.е. в форму вставляется последнее значение, в служебных сообщениях выходит 3 значения.
Мне надо чтобы первое значение было в одной ячейке формы (ОбластьДоходы.Параметры.Д21), второе во второй (ОбластьДоходы.Параметры.Д22) и третье в третей (ОбластьДоходы.Параметры.Д23). Помогите разобраться как это реализовать)) Во запрос с вытекающими: Субконто1 = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000001"); Субконто2 = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000006"); Субконто3 = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000002"); ТекстЗапроса = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт, | ХозрасчетныйОстаткиИОбороты.Субконто1, | ХозрасчетныйОстаткиИОбороты.Субконто2, | ХозрасчетныйОстаткиИОбороты.Субконто3 |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет В ИЕРАРХИИ (&Счет90), , Субконто1 В (&Субконто1, &Субконто2, &Субконто3)) КАК ХозрасчетныйОстаткиИОбороты |ИТОГИ ПО | ОБЩИЕ"; Запрос = Новый Запрос; Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода)); Запрос.УстановитьПараметр("Счет90", Счет90_01); Запрос.УстановитьПараметр("Субконто1", Субконто1); Запрос.УстановитьПараметр("Субконто2", Субконто2); Запрос.УстановитьПараметр("Субконто3", Субконто3); Запрос.Текст = ТекстЗапроса; РезультатЗапроса = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса.Следующий() Цикл Сообщить(РезультатЗапроса.СуммаОборотКт); ОбластьДоходы.Параметры.Д21 = ОбщегоНазначения.ФорматСумм(РезультатЗапроса.СуммаОборотКт); КонецЦикла; |
|||
1
capllary
18.09.14
✎
17:37
|
Не могу никак верную выборку написать.
|
|||
2
capllary
18.09.14
✎
17:40
|
В ячейке ОбластьДоходы.Параметры.Д21 почему то встает последнее значение из трех.
|
|||
3
capllary
18.09.14
✎
17:41
|
Язык запросов только начал изучать.
|
|||
4
Dmitriy_76
18.09.14
✎
17:41
|
а... где вывести ???
|
|||
5
barrgand
18.09.14
✎
17:41
|
(0)
к = 1; Пока РезультатЗапроса.Следующий() Цикл Сообщить(РезультатЗапроса.СуммаОборотКт); ОбластьДоходы.Параметры["Д2" + к] = ОбщегоНазначения.ФорматСумм(РезультатЗапроса.СуммаОборотКт); к = к + 1; КонецЦикла; |
|||
6
capllary
18.09.14
✎
17:44
|
(5) Почти в точку, только поле объекта Д24 не обнаружено.
|
|||
7
Балоун
18.09.14
✎
17:45
|
(6) ничего не трогай, сейчас тебе дадут исправленный код
|
|||
8
Dmitriy_76
18.09.14
✎
17:45
|
(6) ... итоги там еще
|
|||
9
Dmitriy_76
18.09.14
✎
17:46
|
отладчик сп..ли ?
|
|||
10
Dmitriy_76
18.09.14
✎
17:46
|
завтра пятницо
|
|||
11
barrgand
18.09.14
✎
17:47
|
(6)
к = 1; Пока РезультатЗапроса.Следующий() Цикл Если к = 4 Тогда Сообщить("я не думал что будет больше трех, ай-яй-яй"); Прервать; КонецЕсли; Сообщить(РезультатЗапроса.СуммаОборотКт); ОбластьДоходы.Параметры["Д2" + к] = ОбщегоНазначения.ФорматСумм(РезультатЗапроса.СуммаОборотКт); к = к + 1; КонецЦикла; |
|||
12
capllary
18.09.14
✎
17:49
|
(11) Почти, только почему то первая ячейка не заполнилась, а её значение сдвинулось на следующую ячейку.
|
|||
13
capllary
18.09.14
✎
17:53
|
(11) Как я понял Цикл пытается с 22 значения заполнять, а не с 21.
|
|||
14
Dmitriy_76
18.09.14
✎
17:54
|
(11) Гы... ИТОГИ ПО ОБЩИЕ...
|
|||
15
capllary
18.09.14
✎
17:54
|
(8) Не, там уже другие значения, но это уже новые запросы.
|
|||
16
capllary
18.09.14
✎
17:55
|
(14) А что тут такого забавного?
|
|||
17
Dmitriy_76
18.09.14
✎
17:56
|
(16) где обход результата запроса ?
|
|||
18
Dmitriy_76
18.09.14
✎
17:57
|
+ итоги убери а сделай группировку в запросе
|
|||
19
Балоун
18.09.14
✎
17:59
|
(16) Dmitriy_76 значет, что это, а ты нет
|
|||
20
barrgand
18.09.14
✎
17:59
|
(14) запрос не смотрел даже =)
(12) Что думаешь по поводу (8) (9)? |
|||
21
capllary
18.09.14
✎
18:00
|
(18) Так?
ВЫБРАТЬ СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотКт) КАК СуммаОборотКт, ХозрасчетныйОстаткиИОбороты.Субконто1, ХозрасчетныйОстаткиИОбороты.Субконто2, ХозрасчетныйОстаткиИОбороты.Субконто3 ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет В ИЕРАРХИИ (&Счет90), , Субконто1 В (&Субконто1, &Субконто2, &Субконто3)) КАК ХозрасчетныйОстаткиИОбороты СГРУППИРОВАТЬ ПО ХозрасчетныйОстаткиИОбороты.Субконто3, ХозрасчетныйОстаткиИОбороты.Субконто2, ХозрасчетныйОстаткиИОбороты.Субконто1 |
|||
22
capllary
18.09.14
✎
18:01
|
(20) Нет там никаких итогов.
|
|||
23
Балоун
18.09.14
✎
18:03
|
(22) даже по общие?
|
|||
24
capllary
18.09.14
✎
18:06
|
Блин, народ лучше почему цикл пропускает 21 ячейку...
|
|||
25
acanta
18.09.14
✎
18:08
|
к = 0
|
|||
26
capllary
18.09.14
✎
18:09
|
(25) неа, пробовал...
|
|||
27
acanta
18.09.14
✎
18:13
|
переименуй ячейки
|
|||
28
capllary
18.09.14
✎
18:20
|
(27) На какие значения и что это даст?
|
|||
29
capllary
18.09.14
✎
18:23
|
(27) Переименовал на 20,21,22, все равно сдвигает все пропускает первое значение.
|
|||
30
capllary
18.09.14
✎
19:01
|
Вобщем, нашел только одно решение, название строк сместить на одну вниз, соответственно третью на первое место + добавил на форме еще один параметр Д24, это для того чтобы все 3 значения считались, иначе выходило два значения (1 и 2)
в итого вот код: к = 1; Пока РезультатЗапроса.Следующий() Цикл Если к = 5 Тогда Прервать; КонецЕсли; Сообщить(РезультатЗапроса.СуммаОборотКт); ОбластьДоходы.Параметры["Д2" + к] = ОбщегоНазначения.ФорматСумм(РезультатЗапроса.СуммаОборотКт); к = к + 1; ОбластьДоходы.Параметры.Д21 = ОбщегоНазначения.ФорматСумм(РезультатЗапроса.СуммаОборотКт); КонецЦикла; |
|||
31
alle68
19.09.14
✎
01:47
|
(21) Зачем это?
ХозрасчетныйОстаткиИОбороты.Субконто2, ХозрасчетныйОстаткиИОбороты.Субконто3 А если оборота по "&Субконто1" не будет за период, будет работать? А группировка для чего? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |