|
v7: не получает следующее значение из запроса | ☑ | ||
---|---|---|---|---|
0
manti
26.11.12
✎
12:41
|
почему то возвращает Запрос.Группировка(НомГруппировки)=0, как в 7 посмотреть что не так?
Процедура СформироватьТаблицу(Знач Запрос,Знач НомГруппировки ) Отступ = ""; Если НомГруппировки <> 1 Тогда Для КолСимвТабуляции = 1 По Номгруппировки Цикл Отступ = Отступ +" "; КонецЦикла; КонецЕсли; Пока Запрос.Группировка(НомГруппировки) = 1 Цикл Значение = Отступ + Запрос.ЗначениеУпорядочивания(номгруппировки); Выручка = Запрос.Выручка; Таб.ВывестиСекцию ("Строка"); //Таб.ВывестиСекцию ("Итого"); Если Номгруппировки <> колгруппировок Тогда СформироватьТаблицу(Запрос,НомГруппировки+1); КонецЕсли; КонецЦикла; КонецПроцедуры //******************************************* Процедура Сформировать() Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); Таб.ВывестиСекцию ( "Шапка"); Запрос = СоздатьОбъект ("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Запрос1) |Период с НачДата по КонДата; |Номенклатура = Регистр.Прибыль.Номенклатура; |Контрагент = Регистр.Прибыль.Контрагент; |Сумма = Регистр.Прибыль.Сумма; |Функция Прибыль = Сумма(Сумма); |"//}}ЗАПРОС ; КолГруппировок = 0; //КоличествоСтрок() Для Ном=1 По СЗ.РазмерСписка() Цикл Если СЗ.Пометка(Ном)=1 Тогда ТекстЗапроса = ТекстЗапроса + " |группировка "+СЗ.ПолучитьЗначение(Ном)+";"; КолГруппировок = КолГруппировок + 1; КонецЕсли; КонецЦикла; Если КолГруппировок=0 Тогда Предупреждение ("Нельзя построить отчет без группировок!",60); Возврат; КонецЕсли; Если Запрос.Выполнить (ТекстЗапроса)=0 Тогда Возврат; КонецЕсли; СформироватьТаблицу(Запрос, 1); Таб.ТолькоПросмотр(1) ; Таб.Опции(0,0,0,0) ; Таб.Показать("Таблица") ; КонецПроцедуры |
|||
1
zladenuw
26.11.12
✎
12:42
|
покажи весь запрос. после добавление сз
|
|||
2
ЧеловекДуши
26.11.12
✎
12:43
|
(1) Все в коде...
Походу автор не выбрал галочку по списку :) >>> Если СЗ.Пометка(Ном)=1 Тогда |
|||
3
Ёпрст
26.11.12
✎
12:44
|
(0) Прибыль - регистр остатковый, или оборотный ?
|
|||
4
manti
26.11.12
✎
12:55
|
(3) оборотный
(1) все что есть выложил) (2) галки поставил тоесть 2 группировки Номенклатура и Контрагент |
|||
5
miki
26.11.12
✎
12:55
|
(3)А как прибыль может быть остатком?
|
|||
6
zladenuw
26.11.12
✎
12:56
|
(4) какой все.
Ты программно дополняешь запрос. вот покажи его после дополнения. |
|||
7
1Сергей
26.11.12
✎
12:57
|
А зачем запрос передаёшь по значению?
|
|||
8
miki
26.11.12
✎
12:58
|
(7)+1
Только не запрос, а номер группировки ? |
|||
9
manti
26.11.12
✎
12:58
|
(6)
Для Ном=1 По СЗ.РазмерСписка() Цикл Если СЗ.Пометка(Ном)=1 Тогда ТекстЗапроса = ТекстЗапроса + " |группировка "+СЗ.ПолучитьЗначение(Ном)+";"; КолГруппировок = КолГруппировок + 1; КонецЕсли; КонецЦикла; програмно вроде тут |
|||
10
1Сергей
26.11.12
✎
13:00
|
колгруппировок не передаётся
|
|||
11
zladenuw
26.11.12
✎
13:00
|
(9). в отладчике перед запрос.выполнить. посмотри текст запроса. а еще лучше сюда
|
|||
12
ЧеловекДуши
26.11.12
✎
13:01
|
(9)Выведи так:
СООБЩИТЬ(""+ТекстЗапроса) Если Запрос.Выполнить (ТекстЗапроса)=0 Тогда Возврат; КонецЕсли; И покажи нам текст полученного запроса :) |
|||
13
ЧеловекДуши
26.11.12
✎
13:02
|
+ Хотя судя по запросу и коду, "А был ли мальчик?" :)
|
|||
14
ЧеловекДуши
26.11.12
✎
13:02
|
Может нет за заданный период данных...
|
|||
15
1Сергей
26.11.12
✎
13:03
|
У него "Если Номгруппировки <> колгруппировок Тогда" срабатывает, ибо колгруппировок он не передаёт. Т.е. по одной группировки пытается выводить вторую
|
|||
16
1Сергей
26.11.12
✎
13:04
|
(15)+ да, ещё и по значению передёт запрос. Каша получается
|
|||
17
miki
26.11.12
✎
13:04
|
(15)колгруппировок может быть глобальной для модуля
|
|||
18
Voronve
26.11.12
✎
13:05
|
Процедура СформироватьТаблицу(Знач Запрос,Знач НомГруппировки)
замени на Процедура СформироватьТаблицу(Запрос,НомГруппировки) |
|||
19
1Сергей
26.11.12
✎
13:08
|
(17) Не вижу ©
|
|||
20
miki
26.11.12
✎
13:17
|
(19)1с-ский транслятор написал бы, что
Если Номгруппировки <> колгруппировок <<?>>Тогда {(...)}: Переменная не определена (колгруппировок) |
|||
21
Ёпрст
26.11.12
✎
13:56
|
(5) у автора всё может быть
|
|||
22
manti
26.11.12
✎
14:19
|
(11),(12)
Значит по порядку запрос такой ТекстЗапроса = "//{{ЗАПРОС(Запрос1) Период с НачДата по КонДата; Номенклатура = Регистр.Прибыль.Номенклатура; Контрагент = Регистр.Прибыль.Контрагент; Сумма = Регистр.Прибыль.Сумма; Функция Прибыль = Сумма(Сумма); группировка Номенклатура; группировка Ко" (15) не работает уже в этом месте Пока Запрос.Группировка(НомГруппировки) = 1 |
|||
23
Ёпрст
26.11.12
✎
14:19
|
(22)
Сообщить(НомГруппировки); ? |
|||
24
Ёпрст
26.11.12
✎
14:20
|
+ Знач Запрос - это переделай на Запрос в параметрах функции
|
|||
25
manti
26.11.12
✎
14:21
|
группировка Ко"
странно почему то обрезает Контрагента, но даже если оставит одну группировку то не группировка не срабаотывает. Группировки выбираются из таблицы списка - контрагент и номенклатура соответственно |
|||
26
manti
26.11.12
✎
14:21
|
(24) тоже так сделал - не помогло
|
|||
27
1Сергей
26.11.12
✎
14:22
|
(22) у тебя весь запрос закоменчен чтоли?
|
|||
28
Ёпрст
26.11.12
✎
14:22
|
(25) зачет ага, может будешь всё же Число передавать, а не строку ? У тебя же потом номер группировки суммируется.
|
|||
29
Cthulhu
26.11.12
✎
14:23
|
(25): если из отладчика скопипастил - то не странно. отладчик обрезает отображаемые результаты.
|
|||
30
Ёпрст
26.11.12
✎
14:24
|
и вот это
Запрос.ЗначениеУпорядочивания(номгруппировки) тоже моветон. |
|||
31
manti
26.11.12
✎
14:25
|
(23)
Сообщить(НомГруппировки); выдает 1 |
|||
32
Ork
26.11.12
✎
14:30
|
Все не читал. Но осуждаю.
В результате выполнения запроса по-любому получится 2 (две) группировки. Как тогда понять вот это : "Пока Запрос.Группировка(НомГруппировки) = 1 Цикл"? Может ему все же нужно : Запрос.Получить(<ЗначениеГруппировки1>,...,<ЗначениеГруппировкиN>)? |
|||
33
Ёпрст
26.11.12
✎
14:30
|
(31) как тогда определяешь "неработоспособности" ?
В цикл обхода группировки заходит ? Уверен, что за выбранный период именно по этому регистру есть движения ? Так, есть че ? Запрос.Выполнить(ТекстЗапроса); Запрос.Выгрузить(ТекстЗапроса); ТекстЗапроса.ВыбратьСтроку(); |
|||
34
Ёпрст
26.11.12
✎
14:31
|
(32) нет, там всё нормально с этим
|
|||
35
manti
26.11.12
✎
17:05
|
(34) что то какая то непонять твориться. В пофигураторе встаю на эти строки, первый раз дает 1, во второй уже 0
|
|||
36
Ёпрст
26.11.12
✎
17:08
|
(35) смотри, нет ли реквизита с идентификатором НомГруппировки на форме ?
И это, в разы проще взять любой типовой отчет, хотя бы АнализПродпаж с ТиС и переписать его, добавив свой текст запроса, воткнуть сои группировки и МФ |
|||
37
manti
26.11.12
✎
18:00
|
блин парни, с регистром косяк был - в данных)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |