Имя: Пароль:
1C
1С v8
Сравнение двух таблиц
,
0 progaoff
 
10.07.15
10:09
Есть запрос, он вычисляет количество бесплатного материала, но нужно вычислить  сумму затрат так как материал этот не бесплатный и его будут потом докупать. В регистре цена на него установлена, как теперь по данным первого запроса вычислить цену на материал и вывести общую сумму.
ВЫБРАТЬ
    ДанныеДляНачисленияЗП.Материал,
    СУММА(ДанныеДляНачисленияЗП.МатериалКоличество) КАК МатериалКоличество
    
ИЗ
    Справочник.МатериалыДляАкции КАК МатериалыДляАкции
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДанныеДляНачисленияЗП КАК ДанныеДляНачисленияЗП
        ПО (ДанныеДляНачисленияЗП.Материал = МатериалыДляАкции.Номенклатура)
ГДЕ
    ДанныеДляНачисленияЗП.Период МЕЖДУ &ДатаНач И &ДатаКон
    И ДанныеДляНачисленияЗП.Организация = &Организация
      
СГРУППИРОВАТЬ ПО
    ДанныеДляНачисленияЗП.Материал
1 Ёпрст
 
10.07.15
10:11
Взять ВТ обороты или останки регистра и обычный селект.
2 Ёпрст
 
10.07.15
10:11
и никаких соединений и выборки со справочника.
3 progaoff
 
10.07.15
10:15
дело в том что товар не весь а определенный, он у меня в системе в другом справочнике еще есть и я выборку делаю именно по тому товару что у меня в справочнике.
4 Ёпрст
 
10.07.15
10:17
(3)это ничего не меняет.
5 ЧеловекДуши
 
10.07.15
10:21
(0) >>> ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДанныеДляНачисленияЗП КАК ДанныеДляНачисленияЗП
   И
>>> ДанныеДляНачисленияЗП.Период МЕЖДУ &ДатаНач И &ДатаКон

Приведут только к тому, что выберутся только те материалы, которые есть в регистре...
..Вам точно нужно так?...

Тогда зачем тут "Справочник.МатериалыДляАкции КАК МатериалыДляАкции" ?
...Может проще сразу из регистра получить материалы? :)
6 progaoff
 
10.07.15
10:23
Мне нужны только материалы которые участвуют в акции и по ним сумма
7 progaoff
 
10.07.15
10:24
в этом запросе получаю количество этого материала
8 progaoff
 
10.07.15
10:49
ВЫБРАТЬ
    СУММА(ДанныеДляНачисленияЗП.МатериалКоличество) * ЦеныНоменклатурыСрезПоследних.Цена КАК МатериалКоличество,
    ЦеныНоменклатурыСрезПоследних.Цена,
    ДанныеДляНачисленияЗП.Материал
ИЗ
    РегистрНакопления.ДанныеДляНачисленияЗП КАК ДанныеДляНачисленияЗП
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.МатериалыДляАкции КАК МатериалыДляАкции
        ПО ДанныеДляНачисленияЗП.Материал = МатериалыДляАкции.Номенклатура
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
        ПО ДанныеДляНачисленияЗП.Материал = ЦеныНоменклатурыСрезПоследних.Номенклатура
ГДЕ
    ДанныеДляНачисленияЗП.Период МЕЖДУ &ДатаНач И &ДатаКон
    И ДанныеДляНачисленияЗП.Организация = &Организация
    
СГРУППИРОВАТЬ ПО
    ЦеныНоменклатурыСрезПоследних.Цена,
    ДанныеДляНачисленияЗП.Материал
Получилось вот как то так, но еще один вопрос, у каждой позиции две единицы измерения, миллилитры и штука, как сделать что бы округлило до штуки
9 Остап Сулейманович
 
10.07.15
10:52
(8) У каждой единицы измерения должен быть коэффициент кратности по отношению к "базовой". Вот на него нужно умножить и получишь все в базовых единицах.
10 progaoff
 
10.07.15
10:54
Нужно только в мл.
11 progaoff
 
10.07.15
10:55
а регистр хранит две цены, за штуку и за мл
12 Simod
 
10.07.15
11:00
Отбор по периоду, материалам по акции и организации необходимо перенести в параметры виртуальной таблицы "Обороты" рег.накопления. И не придется делать группировку.
13 progaoff
 
10.07.15
11:04
а с единицами что делать?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший