![]() |
![]() |
![]() |
|
Как вывести общие итоги, при нажатии на кнопку печать | ☑ | ||
---|---|---|---|---|
0
Igor_rubalka
29.09.15
✎
09:48
|
Функция ПечатьПотребностиБезразмерные()
З = Новый Запрос; З.Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток, | ВложенныйЗапрос.Номенклатура.Родитель КАК Родитель, | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВложенныйЗапрос.Количество КАК Количество, | ВложенныйЗапрос.ЧастьОбуви КАК ЧастьОбуви |ИЗ | (ВЫБРАТЬ | ОтчетПроизводстваЗаСменуМатериалы.Номенклатура КАК Номенклатура, | СУММА(ОтчетПроизводстваЗаСменуМатериалы.Количество) КАК Количество, | ОтчетПроизводстваЗаСменуМатериалы.Ссылка.Склад КАК Склад, | ОтчетПроизводстваЗаСменуМатериалы.ЧастьОбуви КАК ЧастьОбуви | ИЗ | Документ.ОтчетПроизводстваЗаСмену.Материалы КАК ОтчетПроизводстваЗаСменуМатериалы | ГДЕ | ОтчетПроизводстваЗаСменуМатериалы.Ссылка = &ТекущийДокумент | И НЕ ОтчетПроизводстваЗаСменуМатериалы.Номенклатура.ВестиУчетПоХарактеристикам | | СГРУППИРОВАТЬ ПО | ОтчетПроизводстваЗаСменуМатериалы.Номенклатура, | ОтчетПроизводстваЗаСменуМатериалы.ЧастьОбуви, | ОтчетПроизводстваЗаСменуМатериалы.Ссылка.Склад) КАК ВложенныйЗапрос | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОст, Склад = &Склад) КАК ТоварыНаСкладахОстатки | ПО ВложенныйЗапрос.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура | И ВложенныйЗапрос.Склад = ТоварыНаСкладахОстатки.Склад | |УПОРЯДОЧИТЬ ПО | ВложенныйЗапрос.Номенклатура.Родитель.Наименование, | ВложенныйЗапрос.Номенклатура.Наименование |ИТОГИ | СУММА(КоличествоОстаток), | СУММА(Количество) |ПО | Родитель, | Номенклатура, | ЧастьОбуви"; З.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); З.УстановитьПараметр("Склад", ЭтотОбъект.Склад); З.УстановитьПараметр("ДатаОст", Дата); //ВыборкаОБЩИЕ = З.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Общие"); //ВыборкаОБЩИЕ.Следующий(); //ВыборкаНоменклатура = З.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Номенклатура"); ВыборкаРодитель = З.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Родитель"); Таб = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Потребности"); Обл = Макет.ПолучитьОбласть("Шапка"); Таб.Вывести(Обл); Пока ВыборкаРодитель.Следующий() Цикл Обл = Макет.ПолучитьОбласть("Родитель"); Обл.Параметры.Заполнить(ВыборкаРодитель); Таб.Вывести(Обл); ВыборкаНоменклатура = ВыборкаРодитель.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Номенклатура"); Пока ВыборкаНоменклатура.Следующий() Цикл ВыборкаЧастьОбуви = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ЧастьОбуви"); Обл = Макет.ПолучитьОбласть("Номенклатура"); Обл.Параметры.Заполнить(ВыборкаНоменклатура); Если ВыборкаНоменклатура.КоличествоОстаток = null Тогда Обл.Параметры.КоличествоОстаток = 0; КвоЧО = 1; Иначе КвоЧО = ВыборкаЧастьОбуви.Количество(); Обл.Параметры.КоличествоОстаток = ВыборкаНоменклатура.КоличествоОстаток/КвоЧО; КонецЕсли; НадоОбеспечить = ?(ВыборкаНоменклатура.КоличествоОстаток = null,0,ВыборкаНоменклатура.КоличествоОстаток/КвоЧО) - ?(ВыборкаНоменклатура.Количество = null,0,ВыборкаНоменклатура.Количество); Если НадоОбеспечить<0 Тогда Обл.Параметры.НадоОбеспечить = - НадоОбеспечить; Иначе Обл.Параметры.НадоОбеспечить = 0; КонецЕсли; Таб.Вывести(Обл); Пока ВыборкаЧастьОбуви.Следующий() Цикл Если ВыборкаЧастьОбуви.ЧастьОбуви = Справочники.ЧастиОбуви.ПустаяСсылка() Тогда Продолжить; КонецЕсли; Обл = Макет.ПолучитьОбласть("ЧастьОбуви"); Обл.Параметры.Заполнить(ВыборкаЧастьОбуви); Таб.Вывести(Обл); КонецЦикла; //Если Не ВыборкаНоменклатура.Номенклатура.ВестиУчетПоХарактеристикам Тогда // Продолжить; //КонецЕсли; //ВыборкаРазмер = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ХарактеристикаНоменклатуры"); //Пока ВыборкаРазмер.Следующий() Цикл // Обл = Макет.ПолучитьОбласть("Характеристика"); // Обл.Параметры.Заполнить(ВыборкаРазмер); // НадоОбеспечить = ?(ВыборкаРазмер.КоличествоОстаток = null,0,ВыборкаРазмер.КоличествоОстаток) - ?(ВыборкаРазмер.Количество = null,0,ВыборкаРазмер.Количество); // Если НадоОбеспечить<0 Тогда // Обл.Параметры.НадоОбеспечить = - НадоОбеспечить; // Иначе // Обл.Параметры.НадоОбеспечить = 0; // КонецЕсли; // Таб.Вывести(Обл); //КонецЦикла; КонецЦикла; КонецЦикла; Обл = Макет.ПолучитьОбласть("Итог"); //Обл.Параметры.Заполнить(ВыборкаОБЩИЕ); Таб.Вывести(Обл); Возврат Таб; КонецФункции Мне надо чтобы выводились общие итоги. Как это можно реализовать? |
|||
1
vicof
29.09.15
✎
09:49
|
Также, как и вывод других областей. Пример перед глазами.
|
|||
2
aka AMIGO
29.09.15
✎
09:49
|
Не выводятся итоги? И что говорит отладчик?
|
|||
4
aka AMIGO
модератор
29.09.15
✎
09:51
|
(3) Не-На-До!
|
|||
5
Igor_rubalka
29.09.15
✎
09:52
|
Итоги выводятся, только общие по группам не выводятся
|
|||
6
vicof
29.09.15
✎
09:53
|
(5) Будь мужиком, сделай на СКД
|
|||
7
Igor_rubalka
29.09.15
✎
09:55
|
(6) Я только начинающий, даже не знаю что делать. Помогите как можете
|
|||
8
Buster007
29.09.15
✎
10:01
|
(7) для начинающего отлично подходит метод "тыка"
|
|||
9
Igor_rubalka
29.09.15
✎
10:04
|
(8) Ну да, но че и куда тыкать я немного не пойму =(
|
|||
10
vicof
29.09.15
✎
10:13
|
||||
11
Igor_rubalka
29.09.15
✎
10:20
|
(10) А дописать кодом как-то можно?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |