|
Пакетный запрос,объединение | ☑ | ||
---|---|---|---|---|
0
jonik_joker
12.11.13
✎
13:18
|
Всем привет. Помогите разобраться: есть запрос
ВЫБРАТЬ ОборотыДенежныхСредствОстаткиИОбороты.СуммаПриход, ОборотыДенежныхСредствОстаткиИОбороты.СуммаРасход, ОборотыДенежныхСредствОстаткиИОбороты.Инвойс, ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.ВнутреннийНомер КАК НомерЗаказ, ЗаявкаНаПоставкуУсловиеОплаты.Ссылка КАК Заявка, ОборотыДенежныхСредствОстаткиИОбороты.Период ИЗ Документ.ЗаявкаНаПоставку.УсловиеОплаты КАК ЗаявкаНаПоставкуУсловиеОплаты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОборотыДенежныхСредств.ОстаткиИОбороты(, , Регистратор, , ) КАК ОборотыДенежныхСредствОстаткиИОбороты ПО ЗаявкаНаПоставкуУсловиеОплаты.Ссылка = ОборотыДенежныхСредствОстаткиИОбороты.Заявка ГДЕ (&Клиент = ЗНАЧЕНИЕ(Справочник.Клиенты.ПустаяСсылка) ИЛИ ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Клиент = &Клиент) И (&Грузополучатель = ЗНАЧЕНИЕ(Справочник.Клиенты.ПустаяСсылка) ИЛИ ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Грузополучатель = &Грузополучатель) И ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца И ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.ПометкаУдаления = ЛОЖЬ И ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Проведен = ИСТИНА И ЗаявкаНаПоставкуУсловиеОплаты.ВариантОплаты = &ВариантОплаты ИТОГИ ПО Заявка в результате получаю вот такую таблицу http://uploads.ru/eikJX.png а хотелось бы вот так http://uploads.ru/jJSLr.png |
|||
1
jonik_joker
12.11.13
✎
13:19
|
пробовал ч\з объединить. Код:
ВЫБРАТЬ ОборотыДенежныхСредствОстаткиИОбороты.СуммаПриход, ОборотыДенежныхСредствОстаткиИОбороты.Инвойс, ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.ВнутреннийНомер КАК НомерЗаказ, ЗаявкаНаПоставкуУсловиеОплаты.Ссылка КАК Заявка, ОборотыДенежныхСредствОстаткиИОбороты.Период ИЗ Документ.ЗаявкаНаПоставку.УсловиеОплаты КАК ЗаявкаНаПоставкуУсловиеОплаты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОборотыДенежныхСредств.ОстаткиИОбороты(, , Регистратор, , ) КАК ОборотыДенежныхСредствОстаткиИОбороты ПО ЗаявкаНаПоставкуУсловиеОплаты.Ссылка = ОборотыДенежныхСредствОстаткиИОбороты.Заявка ГДЕ (&Клиент = ЗНАЧЕНИЕ(Справочник.Клиенты.ПустаяСсылка) ИЛИ ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Клиент = &Клиент) И (&Грузополучатель = ЗНАЧЕНИЕ(Справочник.Клиенты.ПустаяСсылка) ИЛИ ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Грузополучатель = &Грузополучатель) И ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца И ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.ПометкаУдаления = ЛОЖЬ И ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Проведен = ИСТИНА И ЗаявкаНаПоставкуУсловиеОплаты.ВариантОплаты = &ВариантОплаты ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ОборотыДенежныхСредствОстаткиИОбороты.СуммаРасход, ОборотыДенежныхСредствОстаткиИОбороты.Инвойс, ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.ВнутреннийНомер, ЗаявкаНаПоставкуУсловиеОплаты.Ссылка, ОборотыДенежныхСредствОстаткиИОбороты.Период ИЗ Документ.ЗаявкаНаПоставку.УсловиеОплаты КАК ЗаявкаНаПоставкуУсловиеОплаты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОборотыДенежныхСредств.ОстаткиИОбороты(, , Регистратор, , ) КАК ОборотыДенежныхСредствОстаткиИОбороты ПО ЗаявкаНаПоставкуУсловиеОплаты.Ссылка = ОборотыДенежныхСредствОстаткиИОбороты.Заявка ГДЕ (&Клиент = ЗНАЧЕНИЕ(Справочник.Клиенты.ПустаяСсылка) ИЛИ ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Клиент = &Клиент) И (&Грузополучатель = ЗНАЧЕНИЕ(Справочник.Клиенты.ПустаяСсылка) ИЛИ ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Грузополучатель = &Грузополучатель) И ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца И ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.ПометкаУдаления = ЛОЖЬ И ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Проведен = ИСТИНА И ЗаявкаНаПоставкуУсловиеОплаты.ВариантОплаты = &ВариантОплаты ИТОГИ ПО Заявка результат http://uploads.ru/UKZ3T.png |
|||
2
jonik_joker
12.11.13
✎
13:21
|
ч\з пакетный
ВЫБРАТЬ ОборотыДенежныхСредствОстаткиИОбороты.СуммаПриход, ОборотыДенежныхСредствОстаткиИОбороты.Инвойс, ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.ВнутреннийНомер КАК НомерЗаказ, ЗаявкаНаПоставкуУсловиеОплаты.Ссылка КАК Заявка, ОборотыДенежныхСредствОстаткиИОбороты.Период ПОМЕСТИТЬ Приход ИЗ Документ.ЗаявкаНаПоставку.УсловиеОплаты КАК ЗаявкаНаПоставкуУсловиеОплаты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОборотыДенежныхСредств.ОстаткиИОбороты(, , Регистратор, , ) КАК ОборотыДенежныхСредствОстаткиИОбороты ПО ЗаявкаНаПоставкуУсловиеОплаты.Ссылка = ОборотыДенежныхСредствОстаткиИОбороты.Заявка ГДЕ (&Клиент = ЗНАЧЕНИЕ(Справочник.Клиенты.ПустаяСсылка) ИЛИ ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Клиент = &Клиент) И (&Грузополучатель = ЗНАЧЕНИЕ(Справочник.Клиенты.ПустаяСсылка) ИЛИ ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Грузополучатель = &Грузополучатель) И ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца И ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.ПометкаУдаления = ЛОЖЬ И ЗаявкаНаПоставкуУсловиеОплаты.Ссылка.Проведен = ИСТИНА И ЗаявкаНаПоставкуУсловиеОплаты.ВариантОплаты = &ВариантОплаты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОборотыДенежныхСредствОстаткиИОбороты.СуммаРасход, Приход.СуммаПриход, Приход.Заявка КАК Заявка, Приход.Инвойс КАК Инвойс, Приход.НомерЗаказ, Приход.Период ИЗ РегистрНакопления.ОборотыДенежныхСредств.ОстаткиИОбороты(, , Регистратор, , ) КАК ОборотыДенежныхСредствОстаткиИОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ Приход КАК Приход ПО ОборотыДенежныхСредствОстаткиИОбороты.Заявка = Приход.Заявка ИТОГИ ПО Заявка результат http://uploads.ru/cIaqi.png |
|||
3
Wobland
12.11.13
✎
13:21
|
пока ты сам не опишешь словами свои картинки, ничего у тебя не выйдет
|
|||
4
jonik_joker
12.11.13
✎
13:36
|
(3),в документе ЗаявкаНаПоставку есть ТабЧ,которая содержит инфу по счетам(Инвойсам). Соответственно регистрируется это все в регистре накоплений ОборотыДенежныхСредств. Инвойс может быть оплачен(Приход,соот-но нужна СуммаПриход) и неоплачен(Расход,соот-но нужна СуммаРасход). В заявке может быть как оплаченные так и неоплаченные Инвойсы.
|
|||
5
jonik_joker
12.11.13
✎
13:37
|
нужно вывести в отчет инфу по каждому инвойсу входящему в заявку.
|
|||
6
WildSery
12.11.13
✎
14:32
|
На любой вопрос могу дать любой ответ.
ГДЕ НЕ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ РегистрНакопления.ОборотыДенежныхСредств.ОстаткиИОбороты(, , Регистратор, , ) КАК ОборотыДенежныхСредствОстаткиИОбороты2 ГДЕ ОборотыДенежныхСредствОстаткиИОбороты2.Заявка = ОборотыДенежныхСредствОстаткиИОбороты.Заявка И ОборотыДенежныхСредствОстаткиИОбороты2.СуммаПриход = ОборотыДенежныхСредствОстаткиИОбороты.СуммаРасход И НЕ ОборотыДенежныхСредствОстаткиИОбороты2.Инвойс = ЗНАЧЕНИЕ(.ПустаяСсылка)) |
|||
7
jonik_joker
12.11.13
✎
15:26
|
(6),эммм,можно пояснить что такое
ГДЕ НЕ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ? |
|||
8
mikecool
12.11.13
✎
15:29
|
(7) кусок условия запроса
|
|||
9
Wobland
12.11.13
✎
15:31
|
+(8) причёи, синтаксически неверный кусок условия запроса
|
|||
10
Wobland
12.11.13
✎
15:31
|
(9) сторно
|
|||
11
WildSery
12.11.13
✎
15:46
|
(7) Когда я впервые увидел такую возможность использования подобия корелированного подзапроса в 1С, кофем поперхнулся.
Процитированное значит "вложенный запрос не должен вернуть ни одной записи" |
|||
12
jonik_joker
12.11.13
✎
16:19
|
окей, (6) забываем. Какие тогда варианты решения? пакетные запросы,объединение?
|
|||
13
WildSery
13.11.13
✎
10:41
|
(12) а чего (6) не нравится? забавно получилось, по-моему.
Ну, если ты такой скучный, делай так. ( ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 0 КАК СуммаПриход, -ОборотыДенежныхСредствОстаткиИОбороты.СуммаПриход КАК СуммаРасход, ЗНАЧЕНИЕ(.ПустаяСсылка) КАК Инвойс ИЗ РегистрНакопления.ОборотыДенежныхСредств.ОстаткиИОбороты(, , Регистратор, , ) КАК ОборотыДенежныхСредствОстаткиИОбороты ГДЕ ... И НЕ ОборотыДенежныхСредствОстаткиИОбороты.Инвойс = ЗНАЧЕНИЕ(.ПустаяСсылка) а дальше группировка с суммированием. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |