Имя: Пароль:
1C
1С v8
Подскажите по Запросу
0 Kamushkin
 
27.08.13
11:11
В отчет ВедомостьТоварыНаСкладах(УниверсальныйОтчет), понадобилось добавить колонку со значением Точки заказа, сделал через вложенный запрос, связь с основным запросом по полям Номенклатура и Склад.
Теперь нужно добавить колонку с общим значением точки заказа для номенклатуры, без привязки к складу, то есть сумма всех точек заказа для каждой номенклатуры.
Подскажите как это реализовать, пробовал еще один вложенный запрос делать но без связи по складу, чтоб сумму получить, сумма есть но, стали удваиваться остальные поля в отчете.
Заранее благодарен за подсказку.
1 viktor_vv
 
27.08.13
11:21
Покажи вот этот кусок.

"пробовал еще один вложенный запрос делать но без связи по складу"

а то не совсем понятно че это он двоит остальное, по идее должен двоить как раз сумму точки заказа.
2 Kamushkin
 
27.08.13
11:29
Весь запрос:

ТекстЗапроса =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ИсточникДанных.Склад КАК Склад,
    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Склад) КАК СкладПредставление,
    |    ИсточникДанных.Номенклатура КАК Номенклатура,
    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Номенклатура) КАК НоменклатураПредставление,
    |    ИсточникДанных.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.ХарактеристикаНоменклатуры) КАК ХарактеристикаНоменклатурыПредставление,
    |    ИсточникДанных.СерияНоменклатуры КАК СерияНоменклатуры,
    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.СерияНоменклатуры) КАК СерияНоменклатурыПредставление,
    |    ИсточникДанных.Качество КАК Качество,
    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Качество) КАК КачествоПредставление,
    |    ИсточникДанных.Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения,
    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Номенклатура.БазоваяЕдиницаИзмерения) КАК БазоваяЕдиницаИзмеренияПредставление,
    |    ИсточникДанных.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    |    ИсточникДанных.КоличествоПриход КАК КоличествоПриход,
    |    ИсточникДанных.КоличествоРасход КАК КоличествоРасход,
    |    ИсточникДанных.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    |    ИсточникДанных.КоличествоОборот КАК КоличествоОборот,
    |    ИсточникДанных.КоличествоНачальныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницОтчетовНачальныйОстаток,
    |    ИсточникДанных.КоличествоПриход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницОтчетовПриход,
    |    ИсточникДанных.КоличествоРасход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницОтчетовРасход,
    |    ИсточникДанных.КоличествоКонечныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницОтчетовКонечныйОстаток,
    |    ИсточникДанных.КоличествоОборот * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницОтчетовОборот,
    |    ИсточникДанных.КоличествоНачальныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕдНачальныйОстаток,
    |    ИсточникДанных.КоличествоПриход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕдПриход,
    |    ИсточникДанных.КоличествоРасход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕдРасход,
    |    ИсточникДанных.КоличествоКонечныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕдКонечныйОстаток,
    |    ИсточникДанных.КоличествоОборот * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕдОборот,
    |    ИсточникДанных.Регистратор КАК Регистратор,
    |    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Регистратор) КАК РегистраторПредставление,
    |    ИсточникДанных.Период КАК Период,
    |    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ДЕНЬ) КАК ПериодДень,
    |    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, НЕДЕЛЯ) КАК ПериодНеделя,
    |    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ДЕКАДА) КАК ПериодДекада,
    |    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, МЕСЯЦ) КАК ПериодМесяц,
    |    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, КВАРТАЛ) КАК ПериодКвартал,
    |    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
    |    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ГОД) КАК ПериодГод,
    |    ВложенныйЗапрос.ЗначениеТочкиЗаказа КАК ЗначениеТочкиЗаказа,
    |    ВложенныйЗапрос1.ЗначениеТочкиЗаказа2 КАК ЗначениеТочкиЗаказа2
    |{ВЫБРАТЬ
    |    Склад.*,
    |    Номенклатура.*,
    |    ХарактеристикаНоменклатуры.*,
    |    СерияНоменклатуры.*,
    |    Качество.*,
    |    БазоваяЕдиницаИзмерения.*,
    |    КоличествоНачальныйОстаток,
    |    КоличествоПриход,
    |    КоличествоРасход,
    |    КоличествоКонечныйОстаток,
    |    КоличествоОборот,
    |    КоличествоЕдиницОтчетовНачальныйОстаток,
    |    КоличествоЕдиницОтчетовПриход,
    |    КоличествоЕдиницОтчетовРасход,
    |    КоличествоЕдиницОтчетовКонечныйОстаток,
    |    КоличествоЕдиницОтчетовОборот,
    |    КоличествоБазовыхЕдНачальныйОстаток,
    |    КоличествоБазовыхЕдПриход,
    |    КоличествоБазовыхЕдРасход,
    |    КоличествоБазовыхЕдКонечныйОстаток,
    |    КоличествоБазовыхЕдОборот,
    |    Регистратор.* КАК Регистратор,
    |    Период КАК Период,
    |    ПериодДень,
    |    ПериодНеделя,
    |    ПериодДекада,
    |    ПериодМесяц,
    |    ПериодКвартал,
    |    ПериодПолугодие,
    |    ПериодГод,
    |    ЗначениеТочкиЗаказа,
    |    ЗначениеТочкиЗаказа2}
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, , {(Склад).* КАК Склад, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (СерияНоменклатуры).* КАК СерияНоменклатуры, (Качество).* КАК Качество, (Номенклатура.БазоваяЕдиницаИзмерения).* КАК БазоваяЕдиницаИзмерения}) КАК ИсточникДанных
    |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |            ЗначенияТочкиЗаказаСрезПоследних.Номенклатура КАК Номенклатура,
    |            ЗначенияТочкиЗаказаСрезПоследних.Склад КАК Склад,
    |            ЗначенияТочкиЗаказаСрезПоследних.ЗначениеТочкиЗаказа КАК ЗначениеТочкиЗаказа,
    |            ЗначенияТочкиЗаказаСрезПоследних.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
    |        ИЗ
    |            РегистрСведений.ЗначенияТочкиЗаказа.СрезПоследних КАК ЗначенияТочкиЗаказаСрезПоследних) КАК ВложенныйЗапрос
    |        ПО ИсточникДанных.ХарактеристикаНоменклатуры = ВложенныйЗапрос.ХарактеристикаНоменклатуры
    |            И ИсточникДанных.Номенклатура = ВложенныйЗапрос.Номенклатура
    |            И ИсточникДанных.Склад = ВложенныйЗапрос.Склад
    |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |            СУММА(ЗначенияТочкиЗаказаСрезПоследних.ЗначениеТочкиЗаказа) КАК ЗначениеТочкиЗаказа2,
    |            ЗначенияТочкиЗаказаСрезПоследних.Склад КАК Склад2,
    |            ЗначенияТочкиЗаказаСрезПоследних.Номенклатура КАК Номенклатура2,
    |            ЗначенияТочкиЗаказаСрезПоследних.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры2
    |        ИЗ
    |            РегистрСведений.ЗначенияТочкиЗаказа.СрезПоследних КАК ЗначенияТочкиЗаказаСрезПоследних
    |        
    |        СГРУППИРОВАТЬ ПО
    |            ЗначенияТочкиЗаказаСрезПоследних.Склад,
    |            ЗначенияТочкиЗаказаСрезПоследних.Номенклатура,
    |            ЗначенияТочкиЗаказаСрезПоследних.ХарактеристикаНоменклатуры) КАК ВложенныйЗапрос1
    |        ПО ИсточникДанных.Номенклатура = ВложенныйЗапрос1.Номенклатура2
    |            И ИсточникДанных.ХарактеристикаНоменклатуры = ВложенныйЗапрос1.ХарактеристикаНоменклатуры2
    |{ГДЕ
    |    ИсточникДанных.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    |    ИсточникДанных.КоличествоПриход КАК КоличествоПриход,
    |    ИсточникДанных.КоличествоРасход КАК КоличествоРасход,
    |    ИсточникДанных.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    |    ИсточникДанных.КоличествоОборот КАК КоличествоОборот,
    |    (ИсточникДанных.КоличествоНачальныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК КоличествоЕдиницОтчетовНачальныйОстаток,
    |    (ИсточникДанных.КоличествоПриход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК КоличествоЕдиницОтчетовПриход,
    |    (ИсточникДанных.КоличествоРасход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК КоличествоЕдиницОтчетовРасход,
    |    (ИсточникДанных.КоличествоКонечныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК КоличествоЕдиницОтчетовКонечныйОстаток,
    |    (ИсточникДанных.КоличествоОборот * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК КоличествоЕдиницОтчетовОборот,
    |    (ИсточникДанных.КоличествоНачальныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоБазовыхЕдНачальныйОстаток,
    |    (ИсточникДанных.КоличествоПриход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоБазовыхЕдПриход,
    |    (ИсточникДанных.КоличествоРасход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоБазовыхЕдРасход,
    |    (ИсточникДанных.КоличествоКонечныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоБазовыхЕдКонечныйОстаток,
    |    (ИсточникДанных.КоличествоОборот * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоБазовыхЕдОборот,
    |    ИсточникДанных.Регистратор.* КАК Регистратор,
    |    ИсточникДанных.Период КАК Период,
    |    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ДЕНЬ)) КАК ПериодДень,
    |    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, НЕДЕЛЯ)) КАК ПериодНеделя,
    |    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ДЕКАДА)) КАК ПериодДекада,
    |    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, МЕСЯЦ)) КАК ПериодМесяц,
    |    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, КВАРТАЛ)) КАК ПериодКвартал,
    |    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ПОЛУГОДИЕ)) КАК ПериодПолугодие,
    |    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ГОД)) КАК ПериодГод,
    |    ВложенныйЗапрос.ЗначениеТочкиЗаказа КАК ЗначениеТочкиЗаказа,
    |    ВложенныйЗапрос1.ЗначениеТочкиЗаказа2 КАК ЗначениеТочкиЗаказа2}
    |{УПОРЯДОЧИТЬ ПО
    |    Склад.*,
    |    Номенклатура.*,
    |    ХарактеристикаНоменклатуры.*,
    |    СерияНоменклатуры.*,
    |    Качество.*,
    |    БазоваяЕдиницаИзмерения.*,
    |    КоличествоНачальныйОстаток,
    |    КоличествоПриход,
    |    КоличествоРасход,
    |    КоличествоКонечныйОстаток,
    |    КоличествоОборот,
    |    КоличествоЕдиницОтчетовНачальныйОстаток,
    |    КоличествоЕдиницОтчетовПриход,
    |    КоличествоЕдиницОтчетовРасход,
    |    КоличествоЕдиницОтчетовКонечныйОстаток,
    |    КоличествоЕдиницОтчетовОборот,
    |    КоличествоБазовыхЕдНачальныйОстаток,
    |    КоличествоБазовыхЕдПриход,
    |    КоличествоБазовыхЕдРасход,
    |    КоличествоБазовыхЕдКонечныйОстаток,
    |    КоличествоБазовыхЕдОборот,
    |    Регистратор.*,
    |    Период,
    |    ПериодДень,
    |    ПериодНеделя,
    |    ПериодДекада,
    |    ПериодМесяц,
    |    ПериодКвартал,
    |    ПериодПолугодие,
    |    ПериодГод,
    |    ЗначениеТочкиЗаказа,
    |    ЗначениеТочкиЗаказа2}
    |ИТОГИ
    |    СУММА(КоличествоНачальныйОстаток),
    |    СУММА(КоличествоПриход),
    |    СУММА(КоличествоРасход),
    |    СУММА(КоличествоКонечныйОстаток),
    |    СУММА(КоличествоОборот),
    |    СУММА(КоличествоЕдиницОтчетовНачальныйОстаток),
    |    СУММА(КоличествоЕдиницОтчетовПриход),
    |    СУММА(КоличествоЕдиницОтчетовРасход),
    |    СУММА(КоличествоЕдиницОтчетовКонечныйОстаток),
    |    СУММА(КоличествоЕдиницОтчетовОборот),
    |    СУММА(КоличествоБазовыхЕдНачальныйОстаток),
    |    СУММА(КоличествоБазовыхЕдПриход),
    |    СУММА(КоличествоБазовыхЕдРасход),
    |    СУММА(КоличествоБазовыхЕдКонечныйОстаток),
    |    СУММА(КоличествоБазовыхЕдОборот),
    |    СУММА(ЗначениеТочкиЗаказа),
    |    СУММА(ЗначениеТочкиЗаказа2)
    |ПО
    |    ОБЩИЕ
    |{ИТОГИ ПО
    |    Склад.*,
    |    Номенклатура.*,
    |    ХарактеристикаНоменклатуры.*,
    |    СерияНоменклатуры.*,
    |    Качество.*,
    |    БазоваяЕдиницаИзмерения.*,
    |    Регистратор.*,
    |    Период,
    |    ПериодДень,
    |    ПериодНеделя,
    |    ПериодДекада,
    |    ПериодМесяц,
    |    ПериодКвартал,
    |    ПериодПолугодие,
    |    ПериодГод,
    |    ЗначениеТочкиЗаказа,
    |    ЗначениеТочкиЗаказа2}";
3 IШаман
 
27.08.13
11:31
Делай через объеденить.
4 Kamushkin
 
27.08.13
11:36
(3) не срастается что-то через объединить и потом, я может чего не понимаю но по-моему объединить в данном случае не подойдет
5 viktor_vv
 
27.08.13
11:36
Во втором вложенном зачем группируешь до склада, если по нему не соединяешь ?

    |        СГРУППИРОВАТЬ ПО
    |            ЗначенияТочкиЗаказаСрезПоследних.Склад,
    |            ЗначенияТочкиЗаказаСрезПоследних.Номенклатура,

Отсюда и двоит наверное.
А лучше через (3) делай.
6 viktor_vv
 
27.08.13
11:39
(5)+ Вернее во ВложенныйЗапрос1.
7 viktor_vv
 
27.08.13
11:42
Но в таком варианте будет двоить ТочкуЗаказа. Там бы Максимум() подошел, но в универсальном как-то даже не знаю как его прилепить туда.
Может в итогах для ЗначениеТочкиЗаказа2 попробуй.

Максимум(ЗначениеТочкиЗаказа2), если так можно.
8 Kamushkin
 
27.08.13
11:49
(5) Спасибо, добрый человек! убрал из группировки склад и все получилось (7) не двоит Точку заказа, все ок
9 Kamushkin
 
27.08.13
11:51
интересно, а как через объединить это делается, строки ведь лишние появятся из второго запроса
10 viktor_vv
 
27.08.13
11:54
(9) Появятся, их подавлять при выводе придется.
11 viktor_vv
 
27.08.13
11:57
(8) А если группировки выбрать Номенклатура ->> Склад тоже не двоит ?
12 Kamushkin
 
27.08.13
12:16
(11) проверил, не двоит
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший