|
Соединение 2х запросов | ☑ | ||
---|---|---|---|---|
0
prilforreal
02.06.21
✎
15:24
|
Доброго времени суток!!! Спустя 2 года отдыха от 1С решил вернуться к 1С, времени прошло не мало, для восстановления скила нужно время, надеюсь на вашу помощь, товарищи!)
Пишу отчет в обычной форме, хочу соединить в макете 2 таблицы из 2х запросов, после чего сравнить данные и расчитать отклонения, в макете все должно выглядеть так: https://postimg.cc/kRCd7cSF Но если с одним запросом все просто получается, то как прикрутить туда второй я не могу вспомнить и разобраться, подскажите как быть! Код: Процедура КнопкаСформироватьНажатие(Кнопка) ТабДок = Новый ТабличныйДокумент; ТабДок.ТолькоПросмотр = Истина; Макет = ЭтотОбъект.ПолучитьМакет("Макет"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВыдачаТовараТабличнаяЧасть1.Товар КАК Товар, | ВыдачаТовараТабличнаяЧасть1.Ссылка КАК Ссылка, | СУММА(ВыдачаТовараТабличнаяЧасть1.Количество) КАК Количество, | СУММА(ВыдачаТовараТабличнаяЧасть1.Закупка) КАК Закупка, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена) КАК Цена, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена - ВыдачаТовараТабличнаяЧасть1.Закупка) КАК ПрибыльЕд, | СУММА((ВыдачаТовараТабличнаяЧасть1.Цена - ВыдачаТовараТабличнаяЧасть1.Закупка) * ВыдачаТовараТабличнаяЧасть1.Количество) КАК ПрибыльСум, | СУММА(ВыдачаТовараТабличнаяЧасть1.Количество * ВыдачаТовараТабличнаяЧасть1.Цена) КАК Сумма |ИЗ | Документ.ВыдачаТовара.ТабличнаяЧасть1 КАК ВыдачаТовараТабличнаяЧасть1 |ГДЕ | ВыдачаТовараТабличнаяЧасть1.Ссылка.Проведен = ИСТИНА | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Склад.Наименование ПОДОБНО ""Основной Шахты"" | |СГРУППИРОВАТЬ ПО | ВыдачаТовараТабличнаяЧасть1.Товар, | ВыдачаТовараТабличнаяЧасть1.Ссылка | |УПОРЯДОЧИТЬ ПО | Товар |ИТОГИ ПО | Товар ИЕРАРХИЯ" ; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВыдачаТовараТабличнаяЧасть1.Товар КАК ТоварРост, | ВыдачаТовараТабличнаяЧасть1.Ссылка КАК СсылкаРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Количество) КАК КоличествоРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Закупка) КАК ЗакупкаРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена) КАК ЦенаРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена - ВыдачаТовараТабличнаяЧасть1.Закупка) КАК ПрибыльЕдРост, | СУММА((ВыдачаТовараТабличнаяЧасть1.Цена - ВыдачаТовараТабличнаяЧасть1.Закупка) * ВыдачаТовараТабличнаяЧасть1.Количество) КАК ПрибыльСумРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Количество * ВыдачаТовараТабличнаяЧасть1.Цена) КАК СуммаРост |ИЗ | Документ.ВыдачаТовара.ТабличнаяЧасть1 КАК ВыдачаТовараТабличнаяЧасть1 |ГДЕ | ВыдачаТовараТабличнаяЧасть1.Ссылка.Проведен = ИСТИНА | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Склад.Наименование ПОДОБНО ""Основной Ростов"" | |СГРУППИРОВАТЬ ПО | ВыдачаТовараТабличнаяЧасть1.Товар, | ВыдачаТовараТабличнаяЧасть1.Ссылка | |УПОРЯДОЧИТЬ ПО | ТоварРост |ИТОГИ ПО | ТоварРост ИЕРАРХИЯ" ; Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода)); Запрос.УстановитьПараметр("НачПериода", НачПериода); РезультатЗапроса = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьЗаголовок.Параметры.Нач = НачПериода; ОбластьЗаголовок.Параметры.Кон = КонПериода; ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); ИтогПрибыльСум=0; ИтогПрибыльСумРост=0; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ИтогПрибыльСум=ВыборкаДетальныеЗаписи.Цена-ВыборкаДетальныеЗаписи.Закупка; ИтогПрибыльСум=ВыборкаДетальныеЗаписи.ЦенаРост-ВыборкаДетальныеЗаписи.ЗакупкаРост; ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень()); КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ОбластьПодвал.Параметры.ИтогПрибыльСум=ИтогПрибыльСум; ОбластьПодвал.Параметры.ИтогПрибыльСумРост=ИтогПрибыльСумРост; ТабДок.Вывести(ОбластьПодвал); ТабДок.Показать("ОтклоненияВыдачаТоваров"); КонецПроцедуры |
|||
1
mikecool
02.06.21
✎
15:27
|
Объединить
|
|||
2
kumena
02.06.21
✎
15:29
|
Ну как там, в других языках?
|
|||
3
prilforreal
02.06.21
✎
15:37
|
(2) kumena Высокие весьма требования там
|
|||
4
prilforreal
02.06.21
✎
15:44
|
(1) Объединил таким образом, в ответ ругается на синтаксис
{ВнешнийОтчет.ОтклоненияВыдачаТоваров.Форма.ФормаОтчета.Форма(68)}: Ошибка при вызове метода контекста (Выполнить) РезультатЗапроса = Запрос.Выполнить(); по причине: {(26, 1)}: Синтаксическая ошибка "ОБЪЕДИНИТЬ" <<?>>ОБЪЕДИНИТЬ "ВЫБРАТЬ | ВыдачаТовараТабличнаяЧасть1.Товар КАК Товар, | ВыдачаТовараТабличнаяЧасть1.Ссылка КАК Ссылка, | СУММА(ВыдачаТовараТабличнаяЧасть1.Количество) КАК Количество, | СУММА(ВыдачаТовараТабличнаяЧасть1.Закупка) КАК Закупка, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена) КАК Цена, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена - ВыдачаТовараТабличнаяЧасть1.Закупка) КАК ПрибыльЕд, | СУММА((ВыдачаТовараТабличнаяЧасть1.Цена - ВыдачаТовараТабличнаяЧасть1.Закупка) * ВыдачаТовараТабличнаяЧасть1.Количество) КАК ПрибыльСум, | СУММА(ВыдачаТовараТабличнаяЧасть1.Количество * ВыдачаТовараТабличнаяЧасть1.Цена) КАК Сумма |ИЗ | Документ.ВыдачаТовара.ТабличнаяЧасть1 КАК ВыдачаТовараТабличнаяЧасть1 |ГДЕ | ВыдачаТовараТабличнаяЧасть1.Ссылка.Проведен = ИСТИНА | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Склад.Наименование ПОДОБНО ""Основной Шахты"" | |СГРУППИРОВАТЬ ПО | ВыдачаТовараТабличнаяЧасть1.Товар, | ВыдачаТовараТабличнаяЧасть1.Ссылка | |УПОРЯДОЧИТЬ ПО | Товар |ИТОГИ ПО | Товар ИЕРАРХИЯ | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | ВыдачаТовараТабличнаяЧасть1.Товар КАК ТоварРост, | ВыдачаТовараТабличнаяЧасть1.Ссылка КАК СсылкаРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Количество) КАК КоличествоРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Закупка) КАК ЗакупкаРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена) КАК ЦенаРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена - ВыдачаТовараТабличнаяЧасть1.Закупка) КАК ПрибыльЕдРост, | СУММА((ВыдачаТовараТабличнаяЧасть1.Цена - ВыдачаТовараТабличнаяЧасть1.Закупка) * ВыдачаТовараТабличнаяЧасть1.Количество) КАК ПрибыльСумРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Количество * ВыдачаТовараТабличнаяЧасть1.Цена) КАК СуммаРост |ИЗ | Документ.ВыдачаТовара.ТабличнаяЧасть1 КАК ВыдачаТовараТабличнаяЧасть1 |ГДЕ | ВыдачаТовараТабличнаяЧасть1.Ссылка.Проведен = ИСТИНА | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Склад.Наименование ПОДОБНО ""Основной Ростов"" | |СГРУППИРОВАТЬ ПО | ВыдачаТовараТабличнаяЧасть1.Товар, | ВыдачаТовараТабличнаяЧасть1.Ссылка | |УПОРЯДОЧИТЬ ПО | ТоварРост |ИТОГИ ПО | ТоварРост ИЕРАРХИЯ" ; |
|||
5
palpetrovich
02.06.21
✎
16:15
|
(4) итоги, если они нужны - в конце только
ну и алиасы, кроме как в первом запросе, типа " КАК ТоварРост" - вообще не нужны как-бы :) |
|||
6
Chameleon1980
02.06.21
✎
18:18
|
автору же разницу нужно. зачем объединить?
оба запроса в вт с разными алиасами и потом соединить и посчитать разницу |
|||
7
prilforreal
03.06.21
✎
08:13
|
(6) Так и хочу сделать, не получается правильно объединить, синтаксис хромает
|
|||
8
prilforreal
03.06.21
✎
11:09
|
Получилось нормально сделать объединение, но заполняется только одна половина таблицы, помогите понять в чем дело
https://postimg.cc/dkYk71LR - фото выгрузки таблицы Процедура КнопкаСформироватьНажатие(Кнопка) ТабДок = Новый ТабличныйДокумент; ТабДок.ТолькоПросмотр = Истина; Макет = ЭтотОбъект.ПолучитьМакет("Макет"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВыдачаТовараТабличнаяЧасть1.Товар КАК Товар, | ВыдачаТовараТабличнаяЧасть1.Ссылка КАК Ссылка, | СУММА(ВыдачаТовараТабличнаяЧасть1.Количество) КАК Количество, | СУММА(ВыдачаТовараТабличнаяЧасть1.Закупка) КАК Закупка, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена) КАК Цена, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена - ВыдачаТовараТабличнаяЧасть1.Закупка) КАК ПрибыльЕд, | СУММА((ВыдачаТовараТабличнаяЧасть1.Цена - ВыдачаТовараТабличнаяЧасть1.Закупка) * ВыдачаТовараТабличнаяЧасть1.Количество) КАК ПрибыльСум, | СУММА(ВыдачаТовараТабличнаяЧасть1.Количество * ВыдачаТовараТабличнаяЧасть1.Цена) КАК Сумма |ИЗ | Документ.ВыдачаТовара.ТабличнаяЧасть1 КАК ВыдачаТовараТабличнаяЧасть1 |ГДЕ | ВыдачаТовараТабличнаяЧасть1.Ссылка.Проведен = ИСТИНА | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Склад.Наименование ПОДОБНО ""Основной Шахты"" | |СГРУППИРОВАТЬ ПО | ВыдачаТовараТабличнаяЧасть1.Товар, | ВыдачаТовараТабличнаяЧасть1.Ссылка | |УПОРЯДОЧИТЬ ПО | Товар |ИТОГИ ПО | Товар ИЕРАРХИЯ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВыдачаТовараТабличнаяЧасть1.Товар КАК ТоварРост, | ВыдачаТовараТабличнаяЧасть1.Ссылка.Ссылка КАК СсылкаРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Количество) КАК КоличествоРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Закупка) КАК ЗакупкаРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена) КАК ЦенаРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена - ВыдачаТовараТабличнаяЧасть1.Закупка) КАК ПрибыльЕдРост, | СУММА((ВыдачаТовараТабличнаяЧасть1.Цена - ВыдачаТовараТабличнаяЧасть1.Закупка) * ВыдачаТовараТабличнаяЧасть1.Количество) КАК ПрибыльСумРост, | СУММА(ВыдачаТовараТабличнаяЧасть1.Количество * ВыдачаТовараТабличнаяЧасть1.Цена) КАК СуммаРост |ИЗ | Документ.ВыдачаТовара.ТабличнаяЧасть1 КАК ВыдачаТовараТабличнаяЧасть1 |ГДЕ | ВыдачаТовараТабличнаяЧасть1.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Склад.Наименование ПОДОБНО ""Основной Ростов"" | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Проведен = ИСТИНА | |СГРУППИРОВАТЬ ПО | ВыдачаТовараТабличнаяЧасть1.Товар, | ВыдачаТовараТабличнаяЧасть1.Ссылка.Ссылка | |УПОРЯДОЧИТЬ ПО | ТоварРост |ИТОГИ ПО | ТоварРост ИЕРАРХИЯ" ; Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода)); Запрос.УстановитьПараметр("НачПериода", НачПериода); РезультатЗапроса = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьЗаголовок.Параметры.Нач = НачПериода; ОбластьЗаголовок.Параметры.Кон = КонПериода; ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); //ИтогПрибыльСум=0; //ИтогПрибыльСумРост=0; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл //ИтогПрибыльСум=ВыборкаДетальныеЗаписи.Цена-ВыборкаДетальныеЗаписи.Закупка; //ИтогПрибыльСумРост=ВыборкаДетальныеЗаписи.ЦенаРост-ВыборкаДетальныеЗаписи.ЗакупкаРост; ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень()); КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); //ОбластьПодвал.Параметры.ИтогПрибыльСум=ИтогПрибыльСум; //ОбластьПодвал.Параметры.ИтогПрибыльСумРост=ИтогПрибыльСумРост; ТабДок.Вывести(ОбластьПодвал); ТабДок.Показать("ОтклоненияВыдачаТоваров"); КонецПроцедуры |
|||
9
prilforreal
03.06.21
✎
11:16
|
В идеале нужно по очереди выгружать строки чтобы соответствовали строки товаров в одном и втором столбце
|
|||
10
Zmich
03.06.21
✎
11:34
|
(8). Используй вложенные запросы. Вкратце, примерно так:
Запрос.Текст = " |ВЫБРАТЬ | ВложенныйЗапрос.Товар КАК Товар, | СУММА(ВложенныйЗапрос.Количество) КАК Количество, | СУММА(ВложенныйЗапрос.КоличествоРост) КАК КоличествоРост |ИЗ | (ВЫБРАТЬ | ВыдачаТовараТабличнаяЧасть1.Товар КАК Товар, | ВыдачаТовараТабличнаяЧасть1.Количество КАК Количество, | 0 КАК КоличествоРост | ИЗ | Документ.ВыдачаТовара.ТабличнаяЧасть1 КАК ВыдачаТовараТабличнаяЧасть1 // добавляешь по аналогии все остальные параметры, ресурсы; добавляешь условия | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ВыдачаТовараТабличнаяЧасть2.Ссылка КАК Ссылка, | 0 КАК Количество, | ВыдачаТовараТабличнаяЧасть2.Количество КАК КоличествоРост | ИЗ | Документ.ВыдачаТовара.ТабличнаяЧасть1 КАК ВыдачаТовараТабличнаяЧасть2 // ... | ) КАК ВложенныйЗапрос |СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.Товар"; |
|||
11
prilforreal
03.06.21
✎
13:16
|
Все равно никак не пойму, почему левая таблица не заполняется, у них же все параметры разные
|
|||
12
prilforreal
15.06.21
✎
13:39
|
В общем все получилось, вот текст запроса)
Макет = ЭтотОбъект.ПолучитьМакет("Макет"); Запрос = Новый Запрос("ВЫБРАТЬ | ИтоговаяВыдача.ЗакупкаРостов КАК ЗакупкаРостов, | ИтоговаяВыдача.ЦенаРостов КАК ЦенаРостов, | ИтоговаяВыдача.СкладРостов КАК СкладРостов, | ИтоговаяВыдача.СуммаРостов КАК СуммаРостов, | ИтоговаяВыдача.СуммаЗакупкиРостов КАК СуммаЗакупкиРостов, | ИтоговаяВыдача.ПрибыльРостов КАК ПрибыльРостов, | ИтоговаяВыдача.ПрибыльЗаЕдиницуРостов КАК ПрибыльЗаЕдиницуРостов, | ИтоговаяВыдача.ЗакупкаШахты КАК ЗакупкаШахты, | ИтоговаяВыдача.ЦенаШахты КАК ЦенаШахты, | ИтоговаяВыдача.СкладШахты КАК СкладШахты, | ИтоговаяВыдача.СуммаШахты КАК СуммаШахты, | ИтоговаяВыдача.СуммаЗакупкиШахты КАК СуммаЗакупкиШахты, | ИтоговаяВыдача.ПрибыльШахты КАК ПрибыльШахты, | ИтоговаяВыдача.ПрибыльЗаЕдиницуШахты КАК ПрибыльЗаЕдиницуШахты, | ИтоговаяВыдача.Отклонение КАК Отклонение, | ИтоговаяВыдача.ПроцентОтклонения КАК ПроцентОтклонения, | Товары.Ссылка КАК Товар, | ИтоговаяВыдача.КоличествоШахты КАК КоличествоШахты, | ИтоговаяВыдача.КоличествоРостов КАК КоличествоРостов, | ИтоговаяВыдача.ПроцентОтклоненияЕд КАК ПроцентОтклоненияЕд, | ИтоговаяВыдача.ОтклонениеЕд КАК ОтклонениеЕд |ИЗ | (ВЫБРАТЬ | ВыдачаРостов.ЗакупкаРостов КАК ЗакупкаРостов, | ВыдачаРостов.ЦенаРостов КАК ЦенаРостов, | ВыдачаРостов.СкладРостов КАК СкладРостов, | ВыдачаРостов.СуммаРостов КАК СуммаРостов, | ВыдачаРостов.СуммаЗакупкиРостов КАК СуммаЗакупкиРостов, | ВыдачаРостов.ПрибыльРостов КАК ПрибыльРостов, | ВыдачаРостов.ПрибыльЗаЕдиницуРостов КАК ПрибыльЗаЕдиницуРостов, | ВыдачаШахты.ЗакупкаШахты КАК ЗакупкаШахты, | ВыдачаШахты.ЦенаШахты КАК ЦенаШахты, | ВыдачаШахты.СкладШахты КАК СкладШахты, | ВыдачаШахты.СуммаШахты КАК СуммаШахты, | ВыдачаШахты.СуммаЗакупкиШахты КАК СуммаЗакупкиШахты, | ВыдачаШахты.ПрибыльШахты КАК ПрибыльШахты, | ВыдачаШахты.ПрибыльЗаЕдиницуШахты КАК ПрибыльЗаЕдиницуШахты, | ВЫБОР | КОГДА ВыдачаШахты.ТоварШахты ЕСТЬ NULL | ТОГДА ВыдачаРостов.ТоварРостов | ИНАЧЕ ВыдачаШахты.ТоварШахты | КОНЕЦ КАК Товар, | ВыдачаШахты.ПрибыльШахты - ВыдачаРостов.ПрибыльРостов КАК Отклонение, | (ВыдачаШахты.ПрибыльШахты - ВыдачаРостов.ПрибыльРостов) / ВыдачаРостов.ПрибыльРостов * 100 КАК ПроцентОтклонения, | ВыдачаШахты.КоличествоШахты КАК КоличествоШахты, | ВыдачаРостов.КоличествоРостов КАК КоличествоРостов, | ВыдачаШахты.ПрибыльЗаЕдиницуШахты - ВыдачаРостов.ПрибыльЗаЕдиницуРостов КАК ОтклонениеЕд, | (ВыдачаШахты.ПрибыльЗаЕдиницуШахты - ВыдачаРостов.ПрибыльЗаЕдиницуРостов) / ВыдачаРостов.ПрибыльЗаЕдиницуРостов * 100 КАК ПроцентОтклоненияЕд | ИЗ | (ВЫБРАТЬ | ВыдачаТовараТабличнаяЧасть1.Товар КАК ТоварШахты, | СУММА(ВыдачаТовараТабличнаяЧасть1.Количество) КАК КоличествоШахты, | СРЕДНЕЕ(ВыдачаТовараТабличнаяЧасть1.Закупка) КАК ЗакупкаШахты, | СРЕДНЕЕ(ВыдачаТовараТабличнаяЧасть1.Цена) КАК ЦенаШахты, | ВыдачаТовараТабличнаяЧасть1.Ссылка.Склад КАК СкладШахты, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена * ВыдачаТовараТабличнаяЧасть1.Количество) КАК СуммаШахты, | СУММА(ВыдачаТовараТабличнаяЧасть1.Закупка * ВыдачаТовараТабличнаяЧасть1.Количество) КАК СуммаЗакупкиШахты, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена * ВыдачаТовараТабличнаяЧасть1.Количество - ВыдачаТовараТабличнаяЧасть1.Закупка * ВыдачаТовараТабличнаяЧасть1.Количество) КАК ПрибыльШахты, | СУММА((ВыдачаТовараТабличнаяЧасть1.Цена * ВыдачаТовараТабличнаяЧасть1.Количество - ВыдачаТовараТабличнаяЧасть1.Закупка * ВыдачаТовараТабличнаяЧасть1.Количество) / ВыдачаТовараТабличнаяЧасть1.Количество) КАК ПрибыльЗаЕдиницуШахты | ИЗ | Документ.ВыдачаТовара.ТабличнаяЧасть1 КАК ВыдачаТовараТабличнаяЧасть1 | ГДЕ | ВыдачаТовараТабличнаяЧасть1.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Проведен = ИСТИНА | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Склад.Код = ""00001"" | И НЕ ВыдачаТовараТабличнаяЧасть1.Товар В ИЕРАРХИИ (&Отстойник) | | СГРУППИРОВАТЬ ПО | ВыдачаТовараТабличнаяЧасть1.Товар, | ВыдачаТовараТабличнаяЧасть1.Ссылка.Склад) КАК ВыдачаШахты | ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ВыдачаТовараТабличнаяЧасть1.Товар КАК ТоварРостов, | СУММА(ВыдачаТовараТабличнаяЧасть1.Количество) КАК КоличествоРостов, | СРЕДНЕЕ(ВыдачаТовараТабличнаяЧасть1.Закупка) КАК ЗакупкаРостов, | СРЕДНЕЕ(ВыдачаТовараТабличнаяЧасть1.Цена) КАК ЦенаРостов, | ВыдачаТовараТабличнаяЧасть1.Ссылка.Склад КАК СкладРостов, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена * ВыдачаТовараТабличнаяЧасть1.Количество) КАК СуммаРостов, | СУММА(ВыдачаТовараТабличнаяЧасть1.Закупка * ВыдачаТовараТабличнаяЧасть1.Количество) КАК СуммаЗакупкиРостов, | СУММА(ВыдачаТовараТабличнаяЧасть1.Цена * ВыдачаТовараТабличнаяЧасть1.Количество - ВыдачаТовараТабличнаяЧасть1.Закупка * ВыдачаТовараТабличнаяЧасть1.Количество) КАК ПрибыльРостов, | СУММА((ВыдачаТовараТабличнаяЧасть1.Цена * ВыдачаТовараТабличнаяЧасть1.Количество - ВыдачаТовараТабличнаяЧасть1.Закупка * ВыдачаТовараТабличнаяЧасть1.Количество) / ВыдачаТовараТабличнаяЧасть1.Количество) КАК ПрибыльЗаЕдиницуРостов | ИЗ | Документ.ВыдачаТовара.ТабличнаяЧасть1 КАК ВыдачаТовараТабличнаяЧасть1 | ГДЕ | ВыдачаТовараТабличнаяЧасть1.Ссылка.Дата МЕЖДУ &НачПериода И &КонПериода | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Проведен = ИСТИНА | И ВыдачаТовараТабличнаяЧасть1.Ссылка.Склад.Код = ""00008"" | И НЕ ВыдачаТовараТабличнаяЧасть1.Товар В ИЕРАРХИИ (&Отстойник) | | СГРУППИРОВАТЬ ПО | ВыдачаТовараТабличнаяЧасть1.Товар, | ВыдачаТовараТабличнаяЧасть1.Ссылка.Склад) КАК ВыдачаРостов | ПО ВыдачаШахты.ТоварШахты = ВыдачаРостов.ТоварРостов) КАК ИтоговаяВыдача | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Товары КАК Товары | ПО ИтоговаяВыдача.Товар = Товары.Ссылка |" +?(Товар=0,"УПОРЯДОЧИТЬ ПО Товар",?(Товар=1,"УПОРЯДОЧИТЬ ПО Отклонение УБЫВ",?(Товар=2,"УПОРЯДОЧИТЬ ПО Отклонение",?(Товар=3,"УПОРЯДОЧИТЬ ПО ОтклонениеЕд УБЫВ",?(Товар=4,"УПОРЯДОЧИТЬ ПО ОтклонениеЕд","")))))+ " |ИТОГИ | СРЕДНЕЕ(ЗакупкаРостов), | СУММА(СуммаРостов) / СУММА(КоличествоРостов) КАК ЦенаРостов, | СУММА(СуммаРостов), | СУММА(СуммаЗакупкиРостов), | СУММА(ПрибыльРостов), | СУММА(ПрибыльРостов) / СУММА(КоличествоРостов) КАК ПрибыльЗаЕдиницуРостов, | СРЕДНЕЕ(ЗакупкаШахты), | СУММА(СуммаШахты) / СУММА(КоличествоШахты) КАК ЦенаШахты, | СУММА(СуммаШахты), | СУММА(СуммаЗакупкиШахты), | СУММА(ПрибыльШахты), | СУММА(ПрибыльШахты) / СУММА(КоличествоШахты) КАК ПрибыльЗаЕдиницуШахты, | СУММА(ПрибыльШахты) - СУММА(ПрибыльРостов) КАК Отклонение, | ВЫБОР | КОГДА СУММА(ПрибыльРостов) = 0 | ТОГДА 0 | ИНАЧЕ (СУММА(ПрибыльШахты) - СУММА(ПрибыльРостов)) / СУММА(ПрибыльРостов) * 100 | КОНЕЦ КАК ПроцентОтклонения, | СУММА(КоличествоШахты), | СУММА(КоличествоРостов), | СУММА(ПрибыльШахты) / СУММА(КоличествоШахты) - СУММА(ПрибыльРостов) / СУММА(КоличествоРостов) КАК ОтклонениеЕд, | ВЫБОР | КОГДА СУММА(КоличествоШахты) = 0 | ТОГДА 0 | ИНАЧЕ ВЫБОР | КОГДА СУММА(КоличествоРостов) = 0 | ТОГДА 0 | ИНАЧЕ (СУММА(ПрибыльШахты) / СУММА(КоличествоШахты) - СУММА(ПрибыльРостов) / СУММА(КоличествоРостов)) / (СУММА(ПрибыльРостов) / СУММА(КоличествоРостов)) * 100 | КОНЕЦ | КОНЕЦ КАК ПроцентОтклоненияЕд |ПО | Товар ИЕРАРХИЯ |АВТОУПОРЯДОЧИВАНИЕ"); |
|||
13
polosov
15.06.21
✎
13:42
|
(3) Это что, в 1С идут самые больные и немощные?
|
|||
14
Mikeware
15.06.21
✎
14:02
|
(13) ну типа того. "тупой ленивый жадный франч"©, "закон соболя-БЖ", и т.п.
|
|||
15
Said_We
15.06.21
✎
16:07
|
(0) Зачем два запроса?
Хотя бы так.... " И (ВыдачаТовараТабличнаяЧасть1.Ссылка.Склад.Наименование ПОДОБНО ""Основной Ростов"" ИЛИ ВыдачаТовараТабличнаяЧасть1.Ссылка.Склад.Наименование ПОДОБНО ""Основной Шахты"") А вообще условие "...Наименование ПОДОБНО ..." - не хорошее. Наименование склада поменяли и усё. |
|||
16
Said_We
15.06.21
✎
16:25
|
(10) Зачем тут вложенный запрос, если запрос всего один. Поле для группировки это признак склада = либо Ростов, либо Шахты.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |