Имя: Пароль:
1C
1С v8
Соединение ВТ в пакетном запросе в СКД
0 volchara
 
26.07.16
23:45
Здравствуйте!
Первый пакет:

ВЫБРАТЬ
    СкидкиНаценкиНоменклатурыСрезПоследних.Номенклатура,
    Сумма(СкидкиНаценкиНоменклатурыСрезПоследних.ПроцентСкидкиНаценки) КАК ПроцентСкидкиНаценкиВсе,
    Сумма(СкидкиНаценкиПоЦеновымГруппамСрезПоследних.ПроцентСкидкиНаценки) КАК ПроцентСкидкиНаценкиПоГруппеВсе
ПОМЕСТИТЬ ВТ_СкидкиДляВсейНоменклатуры
ИЗ
    РегистрСведений.СкидкиНаценкиНоменклатуры.СрезПоследних(&КонецПериода, ) КАК СкидкиНаценкиНоменклатурыСрезПоследних
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СкидкиНаценкиПоЦеновымГруппам.СрезПоследних КАК СкидкиНаценкиПоЦеновымГруппамСрезПоследних
        ПО СкидкиНаценкиНоменклатурыСрезПоследних.Номенклатура.ЦеноваяГруппа = СкидкиНаценкиПоЦеновымГруппамСрезПоследних.ЦеноваяГруппа
ГДЕ
    (СкидкиНаценкиНоменклатурыСрезПоследних.ПолучательСкидки = &ПолучательСкидки
            ИЛИ СкидкиНаценкиНоменклатурыСрезПоследних.ПолучательСкидки = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка))
    И (СкидкиНаценкиНоменклатурыСрезПоследних.ДатаОкончания = &ПустаяДата
            ИЛИ СкидкиНаценкиНоменклатурыСрезПоследних.ДатаОкончания >= &КонецПериода)
    И СкидкиНаценкиНоменклатурыСрезПоследних.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
СГРУППИРОВАТЬ ПО
СкидкиНаценкиНоменклатурыСрезПоследних.Номенклатура
;


Получаем таблицу, в которой одна строка с пустым значением Номенклатура и какими-то значениями скидок, что означает что скидки назначены на весь перечень номенклатуры


Второй пакет

ВЫБРАТЬ
    ТоварыНаСкладахОстатки.КоличествоОстаток,
    ТоварыНаСкладахОстатки.Номенклатура,
    ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоРезерв
ПОМЕСТИТЬ ВТ_Остатки
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&КонецПериода, ) КАК ТоварыНаСкладахОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&КонецПериода, ) КАК ТоварыВРезервеНаСкладахОстатки
        ПО ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладахОстатки.Склад
            И ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
            И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры
            И ТоварыНаСкладахОстатки.СерияНоменклатуры = ТоварыВРезервеНаСкладахОстатки.СерияНоменклатуры
;



Тут мы вытягиваем остатки

Как все это дело "склеить" по справочнику Номенклатура, Чтобы полцчить таблицу вида
Номенклатура    Остаток    Скидка
напоминаю, в СКД?
1 volchara
 
27.07.16
09:32
up
2 vde69
 
27.07.16
09:35
точно так-же как и в обычном запросе....
3 volchara
 
27.07.16
09:55
(2) В первой таблице будет одна запись типа

<Пустая номенклатура>   4    15



во втором множество

Стул1      12.50
Стул2      22.75


........

Как эту запись натянуть на множество
2 + 2 = 3.9999999999999999999999999999999...