Поиск  Пользователи  Правила  Войти
RSS
Не правильно выводит количество
 
"В колонке "количество" пишет вместо 5шт -15. Помогите пожалуйста найти ошибку, я не понимаю:

ЗапросПоТоварам = Новый Запрос();
ЗапросПоТоварам.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);      
ЗапросПоТоварам.УстановитьПараметр("ДатаДокумента", Шапка.ДатаДокумента);      
ЗапросПоТоварам.УстановитьПараметр("СчетУчетаСпецодеждыЗабалансовый",ланыСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный);      
ЗапросПоТоварам.УстановитьПараметр("СчетУчетаСпецоснасткиЗабалансовый",ПланыСчетов.Хозрасчетный.СпецоснасткаВЭксплуатацииВспомогательный);
ЗапросПоТоварам.УстановитьПараметр("СчетУчетаИнвентаряИХозяйственныхПринадлежностейЗабалансовый­", ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации);            
ЗапросПоТоварам.Текст =      
"ВЫБРАТЬ РАЗЛИЧНЫЕ      
|      ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура,      
|      ТребованиеНакладнаяМатериалы.Номенклатура КАК ТоварНаименование,      
|      СУММА(ТребованиеНакладнаяМатериалы.Количество) КАК Количество,      
|      ТребованиеНакладнаяМатериалы.Себестоимость КАК Себестоимость,      
|      ТребованиеНакладнаяМатериалы.Номенклатура.Код КАК НоменклатурныйНомер,      
|      ТребованиеНакладнаяМатериалы.Номенклатура.БазоваяЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,      
|      ТребованиеНакладнаяМатериалы.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,      
|      СУММА(ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.Сумма, 0)) КАК СуммаПервоначальнойСтоимости,      
|      СУММА(ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.Сумма, 0)) / СУММА(ЕСТЬNULL(ТребованиеНакладнаяМатериалы.Количество, 0)) КАК Цена,      
|      ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетДт.Код, """") КАК СчетДт,      
|      ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетКт.Код, """") КАК СчетКт      
|ИЗ      
|      Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы      
|            ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(, , Регистратор = &ТекущийДокумент) КАК ХозрасчетныйДвиженияССубконто      
|            ПО ТребованиеНакладнаяМатериалы.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1      
|ГДЕ      
|      ТребованиеНакладнаяМатериалы.Ссылка = &ТекущийДокумент      
|      И ХозрасчетныйДвиженияССубконто.Регистратор = &ТекущийДокумент      
|      
|СГРУППИРОВАТЬ ПО      
|      ТребованиеНакладнаяМатериалы.Номенклатура,      
|      ТребованиеНакладнаяМатериалы.Себестоимость,      
|      ТребованиеНакладнаяМатериалы.Номенклатура.Код,      
|      ТребованиеНакладнаяМатериалы.Номенклатура.БазоваяЕдиницаИзмерения.Код,      
|      ТребованиеНакладнаяМатериалы.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,      
|      ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетДт.Код, """"),      
|      ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетКт.Код, """"),      
|      ТребованиеНакладнаяМатериалы.Номенклатура      
|      
|ОБЪЕДИНИТЬ ВСЕ      
|      
|ВЫБРАТЬ РАЗЛИЧНЫЕ      
|      ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура,      
|      ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура,      
|      СУММА(ТребованиеНакладнаяМатериалыЗаказчика.Количество),      
|      0,      
|      ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура.Код,      
|      ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура.БазоваяЕдиницаИзмерения.Код,      
|      ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,      
|      ХозрасчетныйДвиженияССубконто.Сумма,      
|      0,      
|      ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетДт.Код, """"),      
|      ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетКт.Код, """")      
|ИЗ      
|      (ВЫБРАТЬ РАЗЛИЧНЫЕ      
|            ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура КАК Номенклатура,      
|            ТребованиеНакладнаяМатериалыЗаказчика.Ссылка.ПодразделениеЗатрат КАК Подразделение,      
|            СУММА(ТребованиеНакладнаяМатериалыЗаказчика.Количество) КАК Количество      
|      ИЗ      
|            Документ.ТребованиеНакладная.МатериалыЗаказчика КАК ТребованиеНакладнаяМатериалыЗаказчика      
|      ГДЕ      
|            ТребованиеНакладнаяМатериалыЗаказчика.Ссылка = &ТекущийДокумент      
|            
|      СГРУППИРОВАТЬ ПО      
|            ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура,      
|            ТребованиеНакладнаяМатериалыЗаказчика.Ссылка.ПодразделениеЗатрат) КАК ТребованиеНакладнаяМатериалыЗаказчика      
|            ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(, , Регистратор = &ТекущийДокумент) КАК ХозрасчетныйДвиженияССубконто      
|            ПО ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1      
|      
|СГРУППИРОВАТЬ ПО      
|      ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура,      
|      ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура.Код,      
|      ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура.БазоваяЕдиницаИзмерения.Код,      
|      ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,      
|      ХозрасчетныйДвиженияССубконто.Сумма,      
|      ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетДт.Код, """"),      
|      ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетКт.Код, """"),      
|      ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура";            
ВыборкаСтрокТовары = ЗапросПоТоварам.Выполнить().Выгрузить();            
Возврат ВыборкаСтрокТовары;
"
 
Эм, я конечно, могу ошибаться...
Но у вас левое соедиение ТЧ документа и движений, которые он делает. В документе три одинаковые (одинаковые ведь?) строки.
Соответственно, запрос склеивает каждую из строк документа с каждой из строк регистра, а потом суммирует общее количество.
 
а что нужно исправить? Если не сложно поподробней пожалуйста. Вообще не понимаю=(
 
Я бы в принципе по-другому строила отчет, наверное.
Отдельно вытащила одним запросом данные из регистра, сгруппировав по номенклатуре. Другим - данные из документа, опять же сгруппировав по номенклатуре. И только потом склеивала их между собой.
 
Хотя давать советы, не видя техзадания и не факт что правильно понимая его - дело неблагодарное.
Вот смотрите, попробуйте выполнить этот запрос, изменив его немного - убрав группировку по номенклатуре. Вы хотите получить 3 строки, а получите, по-видимому, 9. В этом проблема.
Читают тему

Читайте нас: