Имя: Пароль:
1C
1С v8
Универсальный отчет
0 Collector
 
08.10.12
17:24
Добрый день!
Подскажите, что я делаю не так при попытке добавить ресурс в универсальный отчет получаю ошибку:

{Отчет.УниверсальныйОтчет.МодульОбъекта(2736)}: Ошибка при вызове метода контекста (Добавить)
                   МассивВыбранныеПоляПоказатели.Добавить(ПостроительОтчета.ВыбранныеПоля.Добавить(Показатель.Имя));
по причине:
Поле не найдено. "Вес"


Вот текст запроса:

ТекстЗапроса = "ВЫБРАТЬ
   |    РекЗаказ.Номенклатура,
   |    РекЗаказ.Заказы КАК Заказы,
   |    РекЗаказ.Продажи КАК Продажи,
   |    РекЗаказ.СкоростьЗаказ КАК СкоростьЗаказ,
   |    РекЗаказ.СкоростьПродаж КАК СкоростьПродаж,
   |    РекЗаказ.Остаток КАК Остаток,
   |    РекЗаказ.РекПоПродажам КАК РекПоПродажам,
   |    РекЗаказ.РекПоЗаказам КАК РекПоЗаказам,
   |    ЕСТЬNULL(РекЗаказ.ОстТовараДни, РекЗаказ.Остаток) КАК ОстТовараДни
   |    //ПОЛЯ_СВОЙСТВА
   |    //ПОЛЯ_КАТЕГОРИИ
   |{ВЫБРАТЬ
   |    Номенклатура.*,
   |    Заказы,
   |    Продажи,
   |    СкоростьЗаказ,
   |    СкоростьПродаж,
   |    Остаток,
   |    РекПоПродажам,
   |    РекПоЗаказам,
   |    ОстТовараДни
   |    //ПСЕВДОНИМЫ_СВОЙСТВА
   |    //ПСЕВДОНИМЫ_КАТЕГОРИИ          
   |}
   |ИЗ
   |    (ВЫБРАТЬ
   |        ТоварыОрганизацийОстатки.Номенклатура КАК Номенклатура,
   |        ЗаказыПокупателейОбороты.КоличествоПриход КАК Заказы,
   |        ПродажиОбороты.КоличествоОборот КАК Продажи,
   |        ЗаказыПокупателейОбороты.КоличествоПриход / &ДнейПериод КАК СкоростьЗаказ,
   |        ПродажиОбороты.КоличествоОборот / &ДнейПериод КАК СкоростьПродаж,
   |        ТоварыОрганизацийОстатки.КоличествоОстаток КАК Остаток,
   |        ВЫБОР
   |            КОГДА ПродажиОбороты.КоличествоОборот / &ДнейПериод * &СтрахДни + ПродажиОбороты.КоличествоОборот / &ДнейПериод * &ДнейДоПоставки + ПродажиОбороты.КоличествоОборот / &ДнейПериод * &ДнейДоСледПоставки > ТоварыОрганизацийОстатки.КоличествоОстаток
   |                ТОГДА ПродажиОбороты.КоличествоОборот / &ДнейПериод * &СтрахДни + ПродажиОбороты.КоличествоОборот / &ДнейПериод * &ДнейДоПоставки + ПродажиОбороты.КоличествоОборот / &ДнейПериод * &ДнейДоСледПоставки - ТоварыОрганизацийОстатки.КоличествоОстаток
   |            ИНАЧЕ 0
   |        КОНЕЦ КАК РекПоПродажам,
   |        ВЫБОР
   |            КОГДА ЗаказыПокупателейОбороты.КоличествоПриход / &ДнейПериод * &СтрахДни + ЗаказыПокупателейОбороты.КоличествоПриход / &ДнейПериод * &ДнейДоПоставки + ЗаказыПокупателейОбороты.КоличествоПриход / &ДнейПериод * &ДнейДоСледПоставки > ТоварыОрганизацийОстатки.КоличествоОстаток
   |                ТОГДА ЗаказыПокупателейОбороты.КоличествоПриход / &ДнейПериод * &СтрахДни + ЗаказыПокупателейОбороты.КоличествоПриход / &ДнейПериод * &ДнейДоПоставки + ЗаказыПокупателейОбороты.КоличествоПриход / &ДнейПериод * &ДнейДоСледПоставки - ТоварыОрганизацийОстатки.КоличествоОстаток
   |            ИНАЧЕ 0
   |        КОНЕЦ КАК РекПоЗаказам,
   |        ВЫБОР
   |            КОГДА ТоварыОрганизацийОстатки.КоличествоОстаток <= 0
   |                ТОГДА 0
   |            ИНАЧЕ ТоварыОрганизацийОстатки.КоличествоОстаток / ПродажиОбороты.КоличествоОборот * &ДнейПериод
   |        КОНЕЦ КАК ОстТовараДни,
   |        ТоварыОрганизацийОстатки.Организация КАК Организация,
   |        ТоварыОрганизацийОстатки.Склад КАК Склад,
   |        ТоварыОрганизацийОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |        ТоварыОрганизацийОстатки.СерияНоменклатуры КАК СерияНоменклатуры
   |    ИЗ
   |        РегистрНакопления.ТоварыОрганизаций.Остатки(&ДатаОст, ) КАК ТоварыОрганизацийОстатки
   |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, , ) КАК ПродажиОбороты
   |            ПО ТоварыОрганизацийОстатки.Номенклатура = ПродажиОбороты.Номенклатура
   |                И ТоварыОрганизацийОстатки.ХарактеристикаНоменклатуры = ПродажиОбороты.ХарактеристикаНоменклатуры
   |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.Обороты(&ДатаНач, &ДатаКон, , ) КАК ЗаказыПокупателейОбороты
   |            ПО ТоварыОрганизацийОстатки.Номенклатура = ЗаказыПокупателейОбороты.Номенклатура
   |                И ТоварыОрганизацийОстатки.ХарактеристикаНоменклатуры = ЗаказыПокупателейОбороты.ХарактеристикаНоменклатуры) КАК РекЗаказ
   |    //СОЕДИНЕНИЯ
   |{ГДЕ
   |    РекЗаказ.Номенклатура.*,
   |    РекЗаказ.Организация.*,
   |    РекЗаказ.Склад.*,
   |    РекЗаказ.Заказы,
   |    РекЗаказ.Продажи,
   |    РекЗаказ.СкоростьЗаказ,
   |    РекЗаказ.СкоростьПродаж,
   |    РекЗаказ.Остаток,
   |    РекЗаказ.РекПоПродажам,
   |    РекЗаказ.РекПоЗаказам,
   |    РекЗаказ.ОстТовараДни,
   |    РекЗаказ.ХарактеристикаНоменклатуры.*,
   |    РекЗаказ.СерияНоменклатуры.*
   |    //УСЛОВИЯ_СВОЙСТВА
   |    //УСЛОВИЯ_КАТЕГОРИИ
   |}
   |
//    |СГРУППИРОВАТЬ ПО
//    |    РекЗаказ.Номенклатура
   |{УПОРЯДОЧИТЬ ПО
   |    Номенклатура.*,
   |    РекЗаказ.Организация.*,
   |    РекЗаказ.ХарактеристикаНоменклатуры.*,
   |    РекЗаказ.СерияНоменклатуры.*,
   |    РекЗаказ.Склад.*
   |    //ПСЕВДОНИМЫ_СВОЙСТВА
   |    //ПСЕВДОНИМЫ_КАТЕГОРИИ
   |}
   |ИТОГИ
   |    СУММА(Заказы),
   |    СУММА(Продажи),
   |    СУММА(СкоростьЗаказ),
   |    СУММА(СкоростьПродаж),
   |    СУММА(Остаток),
   |    СУММА(РекПоПродажам),
   |    СУММА(РекПоЗаказам),
   |    СРЕДНЕЕ(ОстТовараДни)
   |    //ИТОГИ_СВОЙСТВА
   |    //ИТОГИ_КАТЕГОРИИ
   |
   |ПО
   |    Номенклатура
   |{ИТОГИ ПО
   |    Номенклатура.*,
   |    РекЗаказ.Организация.*,
   |    РекЗаказ.Склад.*
   |    //ПСЕВДОНИМЫ_СВОЙСТВА
   |    //ПСЕВДОНИМЫ_КАТЕГОРИИ
   |}";

//Добавляю ресурсы:

УниверсальныйОтчет.ДобавитьПолеРесурс("Заказы",                 "Заказы * Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Кол-во в заказах");
   УниверсальныйОтчет.ДобавитьПолеРесурс("Продажи",              "Продажи * Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Кол-во в продажах");
   УниверсальныйОтчет.ДобавитьПолеРесурс("СкоростьЗаказ",              "СкоростьЗаказ * Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Скорость заказов");
   УниверсальныйОтчет.ДобавитьПолеРесурс("СкоростьПродаж",              "СкоростьПродаж  * Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Скорость реализаций");
   УниверсальныйОтчет.ДобавитьПолеРесурс("Остаток",               "Остаток * Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Текущий остаток");
   УниверсальныйОтчет.ДобавитьПолеРесурс("РекПоПродажам",          "РекПоПродажам * Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Заказ по продажам");
   УниверсальныйОтчет.ДобавитьПолеРесурс("РекПоЗаказам",           "РекПоЗаказам * Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Заказ по заказам");
   УниверсальныйОтчет.ДобавитьПолеРесурс("ОстТовара",              "ОстТовараДни * Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Остаток товара в днях");
   УниверсальныйОтчет.ДобавитьПолеРесурс("Вес",     "Остаток * РекЗаказ.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * РекЗаказ.Номенклатура.ЕдиницаХраненияОстатков.Вес", "Вес");
//Добавляю показатели:

УниверсальныйОтчет.ДобавитьПоказатель("Заказы",                    "Кол-во в заказах",      Ложь, "ЧЦ=15; ЧДЦ=2", "Данные","Данные");
   УниверсальныйОтчет.ДобавитьПоказатель("Продажи",                    "Кол-во в продажах",      Ложь, "ЧЦ=15; ЧДЦ=2", "Данные","Данные");
   УниверсальныйОтчет.ДобавитьПоказатель("СкоростьЗаказ",             "Скорость заказов",     Ложь, "ЧЦ=15; ЧДЦ=1", "Данные","Данные");
   УниверсальныйОтчет.ДобавитьПоказатель("СкоростьПродаж",             "Скорость реализаций",   Ложь, "ЧЦ=15; ЧДЦ=1", "Данные","Данные");
   УниверсальныйОтчет.ДобавитьПоказатель("Остаток",                "Текущий остаток",          Ложь, "ЧЦ=15; ЧДЦ=2", "Данные","Данные");
   УниверсальныйОтчет.ДобавитьПоказатель("РекПоПродажам",             "Заказ по продажам",      Ложь, "ЧЦ=15; ЧДЦ=1", "Данные","Данные");
   УниверсальныйОтчет.ДобавитьПоказатель("РекПоЗаказам",             "Заказ по заказам",      Ложь, "ЧЦ=15; ЧДЦ=1", "Данные","Данные");
   УниверсальныйОтчет.ДобавитьПоказатель("ОстТовараДни",             "Остаток товара в днях", Ложь, "ЧЦ=15; ЧДЦ=1", "Данные","Данные");
   УниверсальныйОтчет.ДобавитьПоказатель("Вес",               "Вес",                               Ложь,,"Данные",);

//При попытке вывести вес получаем ошибку, но если я делаю то же самое в отчете продажи:

УниверсальныйОтчет.ДобавитьПолеРесурс("Вес",     "КоличествоОборот * Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * Номенклатура.ЕдиницаХраненияОстатков.Вес", "Вес");
УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоЕдиницОтчетов", "КоличествоОборот * Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / Номенклатура.ЕдиницаДляОтчетов.Коэффициент", "Количество (в ед. отчетов)");
   УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоБазовыхЕд",     "КоличествоОборот * Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Количество (в базовых единицах)");

//....

УниверсальныйОтчет.ДобавитьПоказатель("КоличествоОборот",, Ложь);
   УниверсальныйОтчет.ДобавитьПоказатель("КоличествоЕдиницОтчетов", "Количество (в ед. отчетов)",        Ложь, "ЧЦ=15; ЧДЦ=3");
   УниверсальныйОтчет.ДобавитьПоказатель("КоличествоБазовыхЕд",     "Количество (в базовых единицах)", Истина, "ЧЦ=15; ЧДЦ=3");
   УниверсальныйОтчет.ДобавитьПоказатель("НДСОборот",               "НДС",                               Ложь);
   УниверсальныйОтчет.ДобавитьПоказатель("СуммаСкидки",             "Сумма скидки в " + ВалютаУпр,     Истина, "ЧЦ=15; ЧДЦ=2");
   УниверсальныйОтчет.ДобавитьПоказатель("ПроцентСкидки",           "% скидки",                        Истина, "ЧЦ=15; ЧДЦ=2");
   
   УниверсальныйОтчет.ДобавитьПоказатель("СтоимостьОборот",          "Сумма продажи в " + ВалютаУпр);
   УниверсальныйОтчет.ДобавитьПоказатель("СтоимостьБезСкидокОборот", "Сумма продажи без скидок в " + ВалютаУпр);
   УниверсальныйОтчет.ДобавитьПоказатель("Вес",               "Вес",                               Ложь);


то все нормально выводит и считает... Где у меня ошибка в первом случае ?
1 kn
 
08.10.12
17:37
может вот это не то  РекЗаказ.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
через точку можно обращиться только к полям например прописанным так {Номенклатура.*}
2 Collector
 
08.10.12
17:44
Ты имеешь ввиду, вот так сделать ?
* Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
Если да, то тоже не работает
3 Collector
 
09.10.12
10:43
В общем не получилось добавить ресурс так, как в отчет по продажам... Пришлось все поля прописать в запросе (((
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан