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