|   |   | 
| 
 | Соединение 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) Зачем тут вложенный запрос, если запрос всего один. Поле для группировки это признак склада = либо Ростов, либо Шахты.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |