|
Объединить таблицы значений. | ☑ | ||
---|---|---|---|---|
0
lg2marvel
11.10.18
✎
16:20
|
Еще раз всем привет.
Есть 2 таблицы значений: тз1 и тз2. В обоих есть колонка Регистратор тз1 получаю запросом: ЗапросПродажи = Новый Запрос( "ВЫБРАТЬ | ПродажиОбороты.Регистратор КАК Регистратор, | ПродажиОбороты.ВидОперации КАК ВидОперации, | ПродажиОбороты.Склад КАК Склад, | ПродажиОбороты.СуммаОборот КАК СуммаСНДС, | ПродажиОбороты.СуммаНДСОборот КАК СуммаНДС, | ПродажиОбороты.СуммаОборот - ПродажиОбороты.СуммаНДСОборот КАК СуммаБезНДС |ИЗ | РегистрНакопления.Продажи.Обороты( | НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), | КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), | Регистратор, | Склад.Ссылка = &Склад | И Фирма.Ссылка = &Фирма) КАК ПродажиОбороты | |СГРУППИРОВАТЬ ПО | ПродажиОбороты.ВидОперации, | ПродажиОбороты.СуммаОборот, | ПродажиОбороты.СуммаНДСОборот, | ПродажиОбороты.Склад, | ПродажиОбороты.Регистратор"); тз2 получаю запросом: ЗапросВозвраты = Новый Запрос( "ВЫБРАТЬ | ВозвратТоваровПоставщику.Ссылка КАК Регистратор, | ВозвратТоваровПоставщику.Склад КАК Склад, | ВозвратТоваровПоставщикуТовары.Сумма КАК СуммаСНДС, | ВозвратТоваровПоставщикуТовары.СуммаНДС КАК СуммаНДС, | ЕСТЬNULL(СУММА(ВозвратТоваровПоставщикуТовары.Сумма), 0) - ЕСТЬNULL(СУММА(ВозвратТоваровПоставщикуТовары.СуммаНДС), 0) КАК СуммаБезНДС |ИЗ | Документ.ВозвратТоваровПоставщику КАК ВозвратТоваровПоставщику | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровПоставщику.Товары КАК ВозвратТоваровПоставщикуТовары | ПО (ВозвратТоваровПоставщикуТовары.Ссылка = ВозвратТоваровПоставщику.Ссылка) |ГДЕ | ВозвратТоваровПоставщику.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ) И КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ) | И ВозвратТоваровПоставщику.Проведен = ИСТИНА | И ВозвратТоваровПоставщику.Фирма = &Фирма | И ВозвратТоваровПоставщику.Склад = &Склад | |СГРУППИРОВАТЬ ПО | ВозвратТоваровПоставщику.Ссылка, | ВозвратТоваровПоставщику.Склад, | ВозвратТоваровПоставщикуТовары.Сумма, | ВозвратТоваровПоставщикуТовары.СуммаНДС"); Из 2-х запросов надо оба результата соединить в одну таблицу значений: ОписаниеСуммы = Новый ОписаниеТипов ("Число", Новый КвалификаторыЧисла(10, 2)); Массив = Новый Массив; Массив.Добавить(Тип("ДокументСсылка.РасходнаяНакладная")); Массив.Добавить(Тип("ДокументСсылка.ВозвратТоваровПоставщику")); тз.Колонки.Добавить("Регистратор",Новый ОписаниеТипов(Массив)); тз.Колонки.Добавить("СуммаСНДС",ОписаниеСуммы); тз.Колонки.Добавить("СуммаНДС",ОписаниеСуммы); тз.Колонки.Добавить("СуммаБезНДС",ОписаниеСуммы); тз = тз1.Скопировать(Отбор); Для Каждого стрТЗ из тз2 Цикл //Надеюсь работает НоваСтрока = тз.Добавить(); ЗаполнитьЗначенияСвойств(НоваСтрока,стрТЗ); КонецЦикла; ОткрытьЗначение(тз1); ОткрытьЗначение(тз2);ОткрытьЗначение(тз); Но при выводе тз поле Регистратор заполняется только элементами из тз1, а вместо тз2 пусто, хотя с цифрами все ок |
|||
1
Buster007
11.10.18
✎
16:21
|
объединить все
|
|||
2
Cool_Profi
11.10.18
✎
16:22
|
в отладчике что говорит?
Почмеу это в запросе не сделать? |
|||
3
Дмитрий
11.10.18
✎
16:24
|
не группируешь по регистратору
|
|||
4
lg2marvel
11.10.18
✎
16:29
|
(3) ну я же не могу написать так:
"ВЫБРАТЬ | ВозвратТоваровПоставщику.Ссылка КАК Регистратор, | ВозвратТоваровПоставщику.Склад КАК Склад, | ВозвратТоваровПоставщикуТовары.Сумма КАК СуммаСНДС, | ВозвратТоваровПоставщикуТовары.СуммаНДС КАК СуммаНДС, | ЕСТЬNULL(СУММА(ВозвратТоваровПоставщикуТовары.Сумма), 0) - ЕСТЬNULL(СУММА(ВозвратТоваровПоставщикуТовары.СуммаНДС), 0) КАК СуммаБезНДС |ИЗ | Документ.ВозвратТоваровПоставщику КАК ВозвратТоваровПоставщику | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровПоставщику.Товары КАК ВозвратТоваровПоставщикуТовары | ПО (ВозвратТоваровПоставщикуТовары.Ссылка = ВозвратТоваровПоставщику.Ссылка) |ГДЕ | ВозвратТоваровПоставщику.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ) И КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ) | И ВозвратТоваровПоставщику.Проведен = ИСТИНА | И ВозвратТоваровПоставщику.Фирма = &Фирма | И ВозвратТоваровПоставщику.Склад = &Склад | |СГРУППИРОВАТЬ ПО | Регистратор, | ВозвратТоваровПоставщику.Склад, | ВозвратТоваровПоставщикуТовары.Сумма, | ВозвратТоваровПоставщикуТовары.СуммаНДС"); (2) Видимо придется, что-то казалось что циклом проще |
|||
5
Cool_Profi
11.10.18
✎
16:32
|
(4) Кто тебе мешает твои оба запроса объеднить через ОБЪЕДИНИТЬ ВСЕ?
|
|||
6
lg2marvel
11.10.18
✎
16:33
|
(5) Они в разных функциях, если делать через ОБЪЕДИНИТЬ ВСЕ то надо писать отдальный запрос то будет не красиво
|
|||
7
evorle145
11.10.18
✎
16:38
|
(4) почему так не можешь написать?
Кстати, группировка у тебя странная, ты суммируешь по СуммаБезНДС, но при этом по полям СуммаНДС и суммаСНДС группируешь, хотя по логике надо суммировать. |
|||
8
Cool_Profi
11.10.18
✎
16:39
|
(6) Некарсиво на потолке спать - одеяло свалится и трусы видно будет.
А запросы пихай в МВТ и наслжадайся |
|||
9
lg2marvel
11.10.18
✎
16:41
|
(7) Ругается, Регистратор не обнаружено.
Да с суммами там действительно странная группировка - результат издевательств над запросом |
|||
10
lg2marvel
11.10.18
✎
16:42
|
Как правильно запрос к тз сделать?
Запрос = Новый Запрос( "ВЫБРАТЬ | Регистратор, | ВидОперации, | СуммаСНДС, | СуммаНДС, | СуммаБезНДС |ИЗ | тз1 |ОБЪЕДИНИТЬ ВСЕ |ВЫБРАТЬ | Регистратор, | ВидОперации, | СуммаСНДС, | СуммаНДС, | СуммаБезНДС |ИЗ | тз2"); так судя по всему нельзя? (ну да ругается тз1 не найдена) |
|||
11
Cool_Profi
11.10.18
✎
16:45
|
Запрос = Новый Запрос;
текст1 = "ВЫБРАТЬ | ПродажиОбороты.Регистратор КАК Регистратор, | ПродажиОбороты.ВидОперации КАК ВидОперации, | ПродажиОбороты.Склад КАК Склад, | ПродажиОбороты.СуммаОборот КАК СуммаСНДС, | ПродажиОбороты.СуммаНДСОборот КАК СуммаНДС, | ПродажиОбороты.СуммаОборот - ПродажиОбороты.СуммаНДСОборот КАК СуммаБезНДС |поместить вт1 |ИЗ | РегистрНакопления.Продажи.Обороты( | НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), | КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), | Регистратор, | Склад.Ссылка = &Склад | И Фирма.Ссылка = &Фирма) КАК ПродажиОбороты | |СГРУППИРОВАТЬ ПО | ПродажиОбороты.ВидОперации, | ПродажиОбороты.СуммаОборот, | ПродажиОбороты.СуммаНДСОборот, | ПродажиОбороты.Склад, | ПродажиОбороты.Регистратор"); запрос.Текст = текст1; Запрос.менеджерВнутреннихТаблиц = Новый МенеджерВнутреннихТаблиц; Запрос.Установитьпараметры.... Запрос.Выполнить(); Запрос.Текст = "тут второй запрос с помещением в вт2"); Запрос.Выполнить(); И дальше объединять. |
|||
12
lg2marvel
11.10.18
✎
16:54
|
(11) Спасибо, попробую
|
|||
13
lg2marvel
11.10.18
✎
17:26
|
Спасибо, что-то не сросрось с МВТ,
сделал так: Запрос = Новый Запрос; текст1 = "ВЫБРАТЬ | ПродажиОбороты.Регистратор КАК Регистратор, | ПродажиОбороты.ВидОперации КАК ВидОперации, | ПродажиОбороты.Склад КАК Склад, | ПродажиОбороты.СуммаОборот КАК СуммаСНДС, | ПродажиОбороты.СуммаНДСОборот КАК СуммаНДС, | ПродажиОбороты.СуммаОборот - ПродажиОбороты.СуммаНДСОборот КАК СуммаБезНДС |ИЗ | РегистрНакопления.Продажи.Обороты( | НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), | КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), | Регистратор, | Склад.Ссылка = &Склад | И Фирма.Ссылка = &Фирма) КАК ПродажиОбороты | |СГРУППИРОВАТЬ ПО | ПродажиОбороты.ВидОперации, | ПродажиОбороты.СуммаОборот, | ПродажиОбороты.СуммаНДСОборот, | ПродажиОбороты.Склад, | ПродажиОбороты.Регистратор | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВозвратТоваровПоставщику.Ссылка, | NULL, | ВозвратТоваровПоставщику.Склад, | СУММА(ВозвратТоваровПоставщикуТовары.Сумма), | СУММА(ВозвратТоваровПоставщикуТовары.СуммаНДС), | ЕСТЬNULL(СУММА(ВозвратТоваровПоставщикуТовары.Сумма), 0) - ЕСТЬNULL(СУММА(ВозвратТоваровПоставщикуТовары.СуммаНДС), 0) |ИЗ | Документ.ВозвратТоваровПоставщику КАК ВозвратТоваровПоставщику | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровПоставщику.Товары КАК ВозвратТоваровПоставщикуТовары | ПО (ВозвратТоваровПоставщикуТовары.Ссылка = ВозвратТоваровПоставщику.Ссылка) |ГДЕ | ВозвратТоваровПоставщику.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ) И КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ) | И ВозвратТоваровПоставщику.Проведен = ИСТИНА | И ВозвратТоваровПоставщику.Фирма = &Фирма | И ВозвратТоваровПоставщику.Склад = &Склад | |СГРУППИРОВАТЬ ПО | ВозвратТоваровПоставщику.Ссылка, | ВозвратТоваровПоставщику.Склад"; // Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = текст1; Запрос.УстановитьПараметр("Фирма", Фирма); Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода); Запрос.УстановитьПараметр("КонецПериода", КонецПериода); Запрос.УстановитьПараметр("Склад", Расшифровка.Склад); тз = Запрос.Выполнить().Выгрузить(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |