|
Почему в РезультатеЗапроса - пусто? | ☑ | ||
---|---|---|---|---|
0
ILove1C
05.11.19
✎
14:56
|
Вот запрос и код процедуры.
&НаСервере Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Запрос = новый Запрос( "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ХозрасчетныйОбороты.Субконто2 КАК Склад, | ХозрасчетныйОбороты.Субконто1 КАК Номенклатура, | ХозрасчетныйОбороты.СуммаОборотДт КАК СуммаОборотДт, | ХозрасчетныйОбороты.КоличествоОборотДт КАК КоличествоОборотДт |ИЗ | РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Период, Счет В ИЕРАРХИИ (&СчетДТ), &Субконто, | Субконто2 В ИЕРАРХИИ (&Склады), , ) КАК ХозрасчетныйОбороты |СГРУППИРОВАТЬ ПО | ХозрасчетныйОбороты.Субконто2, | ХозрасчетныйОбороты.Субконто1, | ХозрасчетныйОбороты.СуммаОборотДт, | ХозрасчетныйОбороты.КоличествоОборотДт"); МенеджерЗаписи = РегистрыСведений.Трансп_РегистрСведений.СоздатьМенеджерЗаписи(); //сообщить(строка(ПланыСчетов.Хозрасчетный.НайтиПоКоду("10"))); МенеджерЗаписи.Машина = Запись.Машина; МенеджерЗаписи.Период = Запись.Период; МенеджерЗаписи.НормаНа100 = Запись.НормаНа100; МенеджерЗаписи.Пробег = Запись.Пробег; МенеджерЗаписи.НормРасход = (Запись.Пробег / 100) * Запись.НормаНа100; Запрос.УстановитьПараметр("НачалоПериода", Запись.Период); Запрос.УстановитьПараметр("КонецПериода", Запись.Период+86400); Запрос.УстановитьПараметр("СчетДТ", ПланыСчетов.Хозрасчетный.НайтиПоКоду("10")); Запрос.УстановитьПараметр("Склады", Запись.Машина); Массив = новый Массив; массив.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура); массив.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады); Запрос.УстановитьПараметр("Субконто", Массив); //РезультатЗапроса = Запрос.Выполнить().Выбрать(); РезультатЗапроса = Запрос.Выполнить().Выгрузить(); МенеджерЗаписи.Перерасход = РезультатЗапроса.КоличествоОборотДт / Запись.Пробег * 100; МенеджерЗаписи.Записать(); КонецПроцедуры Расчёт ведётся в регистре сведений. На строке МенеджерЗаписи.Перерасход = РезультатЗапроса.КоличествоОборотДт / Запись.Пробег * 100; ничего не происходит и не выводится результат в регистре на форме списка. |
|||
1
Beduin
05.11.19
✎
15:02
|
У тебя запись в регистре в любом случае, не зависимо от запроса.
|
|||
2
D_E_S_131
05.11.19
✎
15:02
|
А почему должно что-то происходить?
|
|||
3
sqr4
05.11.19
✎
15:03
|
РезультатЗапроса - таблица значения. ВОт это РезультатЗапроса.КоличествоОборотДт колонка таблицы значений, а че число как тебе видится.
|
|||
4
sqr4
05.11.19
✎
15:04
|
Если РезультатЗапроса.Количество() > 0 Тогда
МенеджерЗаписи.Перерасход = РезультатЗапроса.Итог("КоличествоОборотДт") / Запись.Пробег * 100; КонецЕсли; |
|||
5
sqr4
05.11.19
✎
15:05
|
да и ЗАпись.Пробег лучше проверить на ноль
|
|||
6
ILove1C
05.11.19
✎
15:05
|
(3) МенеджерЗаписи помогает сделать вывод на форму списка. Однако, никаких ошибок или вывода результата в колонке не видно.
|
|||
7
D_E_S_131
05.11.19
✎
15:08
|
Не только лишь все знают про "Отладчик"...
|
|||
8
ILove1C
05.11.19
✎
15:09
|
(4) спасибо, сработало!
|
|||
9
dezss
05.11.19
✎
16:27
|
хм...сперва выгрузим в ТЗ, потом посчитаем итог...а почему это сразу в запросе не сделать, а то как-то неоптимальненько))))
|
|||
10
sqr4
05.11.19
✎
16:31
|
(9) до "оптимальненько", ТСу пока далековато)
|
|||
11
dezss
05.11.19
✎
16:37
|
(10) На самом деле, запрос может же выдавать неправильные значения.
Там же группировка по всем полям, а если есть несколько записей с одинаковыми СуммаОборотДт и КоличествоОборотДт? |
|||
12
dezss
05.11.19
✎
16:39
|
(11) Хотя там обороты по периоду...вроде не должно такого случиться.
|
|||
13
sqr4
05.11.19
✎
16:40
|
(11) запрос не читал, надеюсь учебная задача, а проверяющий объяснит как надо)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |