|
Объясните зачем такой запрос нужен? | ☑ | ||
---|---|---|---|---|
0
YF
13.05.13
✎
11:17
|
Есть типовая конфигурация: Учет в управляющих компаниях ЖКХ, ТСЖ и ЖСК.
В ней процедура: Процедура ОбновитьЗадолженность(ЛС) Запрос = Новый Запрос; Запрос.УстановитьПараметр("Организация", Объект.Организация); Запрос.УстановитьПараметр("ЛицевойСчет", Объект.ЛицевойСчет); Запрос.УстановитьПараметр("ДатаНачала", НачалоМесяца(Объект.ПериодВзысканияС)); Запрос.УстановитьПараметр("ДатаОкончания", КонецМесяца(Объект.ПериодВзысканияПо)); МассивВидовНачислений = Новый Массив; МассивВидовНачислений.Добавить(Перечисления.КВП_ВидыНачисленияОстатки.Начисление); МассивВидовНачислений.Добавить(Перечисления.КВП_ВидыНачисленияОстатки.Пени); Запрос.УстановитьПараметр("МассивВидовНачислений", МассивВидовНачислений); Запрос.Текст = "ВЫБРАТЬ | КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.МесяцНачисления, | КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.ВидНачисления, | СУММА(КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.СуммаНачисленияОстаток) КАК СуммаНачисленияОстаток |ПОМЕСТИТЬ врОстатки |ИЗ | РегистрНакопления.КВП_ВзаиморасчетыПоЛицевымСчетам.Остатки( | &ДатаОкончания, | Организация = &Организация | И ЛицевойСчет = &ЛицевойСчет | И ВидНачисления В (&МассивВидовНачислений)) КАК КВП_ВзаиморасчетыПоЛицевымСчетамОстатки |ГДЕ | КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.МесяцНачисления МЕЖДУ &ДатаНачала И &ДатаОкончания | |СГРУППИРОВАТЬ ПО | КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.МесяцНачисления, | КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.ВидНачисления |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | врОстатки.ВидНачисления, | СУММА(врОстатки.СуммаНачисленияОстаток) КАК СуммаОстаток |ИЗ | врОстатки КАК врОстатки | |СГРУППИРОВАТЬ ПО | врОстатки.ВидНачисления"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.ВидНачисления = Перечисления.КВП_ВидыНачисленияОстатки.Начисление Тогда Объект.СуммаЗадолженности = Выборка.СуммаОстаток; ИначеЕсли Выборка.ВидНачисления = Перечисления.КВП_ВидыНачисленияОстатки.Пени Тогда Объект.Пени = Выборка.СуммаОстаток; КонецЕсли; КонецЦикла; КонецПроцедуры Выбираем данные, складываем в виртуальную таблицу, затем выбираем уже из нее ... Зачем складывать в виртуальную таблицу? |
|||
1
mikecool
13.05.13
✎
11:18
|
я против этого
|
|||
2
YF
13.05.13
✎
11:19
|
(1) Я тоже, вот ищу сакральный смысл действа
|
|||
3
1Сергей
13.05.13
✎
11:20
|
задел на будующее
|
|||
4
NewManIn1C
13.05.13
✎
11:20
|
а дальше нигде нет запроса, который выбирает данные по месяцу начисления из виртуальной таблицы?
|
|||
5
ptiz
13.05.13
✎
11:20
|
Либо сначала задумывали группировку по МесяцНачисления, либо... фиг знает.
|
|||
6
viktor_vv
13.05.13
✎
11:23
|
(4) Насколько я понимаю, для использования этой временной таблицы в других запросах надо было бы определить МенеджерВременныхТаблиц.
Тут вроде его нету. |
|||
7
YF
13.05.13
✎
11:24
|
Выложил полностью текст процедуры
|
|||
8
acsent
13.05.13
✎
11:26
|
это последствия использования рекомендаций от 1с: используйте временные таблицы.
...Заставь дурака богу молиться ... |
|||
9
YF
13.05.13
✎
11:29
|
Вот есть там условие в ГДЕ по полю, которого во втором запросе уже нет, т.е. МесяцНачисления
Может Где нельзя использовать по полям не в ходящим в группировки ... Но вроде же нет ... блин, чешу репу |
|||
10
Лефмихалыч
13.05.13
✎
11:33
|
(0) а чо, других проблем нет что ли? ИЛи этот запрос тебе блокирует все, включая двер в серверную?
|
|||
11
YF
13.05.13
✎
11:46
|
(10) Нет, просто переписываю эту процедуру, вот и обратил внимание
|
|||
12
fisher
13.05.13
✎
11:57
|
(0) Да что угодно могло быть. Например, итоговый запрос изначально был сложнее. Позже кастрировали. Да мало ли...
Вроде ж уже не мальчик, подобной фигней заморачиваться. |
|||
13
Bober
13.05.13
✎
11:59
|
(0) исправить текст на
ВЫБРАТЬ КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.ВидНачисления как ВидНачисления, КВП_ВзаиморасчетыПоЛицевымСчетамОстатки.СуммаНачисленияОстаток КАК СуммаОстаток ИЗ РегистрНакопления.КВП_ВзаиморасчетыПоЛицевымСчетам.Остатки( | &ДатаОкончания, | Организация = &Организация | И ЛицевойСчет = &ЛицевойСчет | И ВидНачисления В (&МассивВидовНачислений) и МесяцНачисления МЕЖДУ &ДатаНачала И &ДатаОкончания ) КАК КВП_ВзаиморасчетыПоЛицевымСчетамОстатки и спать спокойно |
|||
14
Aprobator
13.05.13
✎
12:00
|
(0) ужас, а не запрос.
|
|||
15
zahar140382
13.05.13
✎
12:00
|
Это не виртуальная таблица, а временная(врОстатки
) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |