|
Помогите с Итогами | ☑ | ||
---|---|---|---|---|
0
dadka
20.02.12
✎
22:22
|
Доброго времени суток всем. помогите пожалуйста разобраться.
есть код (чуть ниже я его опубликую), нужно, чтобы как считается ИтогКоличество, чтобы считался ИтогМеста, ИтогNet, ИтогБрутто. Прошу учесть, что: Места Брутто это дополнительные реквизиты Справочника Номенклатура. Заранее спасибо за ответы. Перем мВалютаРегламентированногоУчета Экспорт; Функция Печать() Экспорт Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка); Номер = СсылкаНаОбъект.Ссылка.НомерВходящегоДокумента; Дата = СсылкаНаОбъект.Ссылка.ДатаВходящегоДокумента; Запрос.Текст =" |ВЫБРАТЬ | Номер, | Дата, | ДатаВходящегоДокумента, | ДоговорКонтрагента, | Контрагент, | Контрагент КАК Поставщик, | Организация, | Организация КАК Покупатель, | СуммаДокумента, | ВалютаДокумента, | УчитыватьНДС, | СуммаВключаетНДС | |ИЗ | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг | |ГДЕ | ПоступлениеТоваровУслуг.Ссылка = &ТекущийДокумент"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); ЗапросПоТоварам = Новый Запрос(); ЗапросПоТоварам.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка); ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("ЗапросПоУслугам"); ЗапросПоТоварам.Текст = "ВЫБРАТЬ | ЗапросПоТоварам.Номенклатура, | ЗапросПоТоварам.Номенклатура.Код, | ЗапросПоТоварам.Номенклатура.НаименованиеПолное КАК НаименованиеПолное, | ЗапросПоТоварам.ЕдиницаИзмерения.Представление, | ЗапросПоТоварам.КоличествоМест, | ЗапросПоТоварам.Количество КАК Количество, | ЗапросПоТоварам.Коэффициент, | ЗапросПоТоварам.Цена, | ЗапросПоТоварам.Сумма, | ЗапросПоТоварам.НомерСтроки, | 3 КАК Поле2, | ЕСТЬNULL(ЗначенияНетто.Значение, 0) КАК Нетто, | ЕСТЬNULL(ЗначенияМеста.Значение, 0) КАК Места, | ЕСТЬNULL(ЗначенияБрутто.Значение, 0) КАК Брутто |ИЗ | (ВЫБРАТЬ | ПоступлениеТоваровУслуг.Номенклатура КАК Номенклатура, | СУММА(ПоступлениеТоваровУслуг.КоличествоМест) КАК КоличествоМест, | СУММА(ПоступлениеТоваровУслуг.Количество) КАК Количество, | ПоступлениеТоваровУслуг.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ПоступлениеТоваровУслуг.Коэффициент КАК Коэффициент, | ПоступлениеТоваровУслуг.Цена КАК Цена, | СУММА(ПоступлениеТоваровУслуг.Сумма) КАК Сумма, | СУММА(ПоступлениеТоваровУслуг.СуммаНДС) КАК СуммаНДС, | ПоступлениеТоваровУслуг.СтавкаНДС КАК СтавкаНДС, | МИНИМУМ(ПоступлениеТоваровУслуг.НомерСтроки) КАК НомерСтроки | ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг | ГДЕ | ПоступлениеТоваровУслуг.Ссылка = &ТекущийДокумент | | СГРУППИРОВАТЬ ПО | ПоступлениеТоваровУслуг.Номенклатура, | ПоступлениеТоваровУслуг.СтавкаНДС, | ПоступлениеТоваровУслуг.Цена, | ПоступлениеТоваровУслуг.ЕдиницаИзмерения, | ПоступлениеТоваровУслуг.Коэффициент) КАК ЗапросПоТоварам | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияНетто | ПО ЗапросПоТоварам.Номенклатура.Ссылка = ЗначенияНетто.Объект | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияМеста | ПО ЗапросПоТоварам.Номенклатура.Ссылка = ЗначенияМеста.Объект | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияБрутто | ПО ЗапросПоТоварам.Номенклатура.Ссылка = ЗначенияБрутто.Объект |ГДЕ | ЗначенияМеста.Свойство.Наименование = ""Места"" | И ЗначенияНетто.Свойство.Наименование = ""Нетто"" | И ЗначенияБрутто.Свойство.Наименование = ""Брутто""" ; ВыборкаСтрок = ЗапросПоТоварам.Выполнить().Выгрузить(); ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПоступлениеТоваровУслуг_ТОРГ12"; Макет = ПолучитьМакет("ТОРГ12"); ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьМакетаЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаб"); ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка"); ОбластьМакетаИтогоПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице"); ОбластьМакетаВсего = Макет.ПолучитьОбласть("Всего"); ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьМакетаШапка.Параметры.НомерДокумента = Номер; ОбластьМакетаШапка.Параметры.ДатаДокумента = Формат(Дата, "ДФ=dd.MM.yyyy"); ТабДокумент.Вывести(ОбластьМакетаШапка); ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокТаб"); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Строка"); Количество = 0; Места = 0; //Net = 0; Брутто = 0; Сумма = 0; СуммаНДС = 0; Для Каждого ВыборкаСтрокТовары Из ВыборкаСтрок Цикл ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары); ОбластьМакета.Параметры.НомерСтроки = ВыборкаСтрок.Индекс(ВыборкаСтрокТовары) + 1; ОбластьМакета.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.НаименованиеПолное); ОбластьМакета.Параметры.Нетто = ВыборкаСтрокТовары.Нетто; ОбластьМакета.Параметры.Места = ВыборкаСтрокТовары.Места; ОбластьМакета.Параметры.Брутто = ВыборкаСтрокТовары.Брутто; // Количество = Количество + ВыборкаСтрокТовары.Количество; Net = ВыборкаСтрокТовары.Количество * ВыборкаСтрокТовары.Нетто; ОбластьМакета.Параметры.Net = Net; Сумма = Сумма + ВыборкаСтрокТовары.Сумма; ТабДокумент.Вывести(ОбластьМакета); КонецЦикла; // Вывести Итого ОбластьМакета = Макет.ПолучитьОбласть("Всего"); ОбластьМакета.Параметры.ИтогКоличество = ОбщегоНазначения.ФорматСумм(Количество); ОбластьМакета.Параметры.ИтогМеста = ОбщегоНазначения.ФорматСумм(Места); // ОбластьМакета.Параметры.ИтогNet = ОбщегоНазначения.ФорматСумм(Net); ОбластьМакета.Параметры.ИтогБрутто = ОбщегоНазначения.ФорматСумм(Брутто); ОбластьМакета.Параметры.ИтогСуммыСНДС = ОбщегоНазначения.ФорматСумм(Сумма); ТабДокумент.Вывести(ОбластьМакета); // Вывести TOTAL ОбластьМакета = Макет.ПолучитьОбласть("Подвал"); ОбластьМакета.Параметры.ИтогКоличество = ОбщегоНазначения.ФорматСумм(Количество); ОбластьМакета.Параметры.ИтогСуммыСНДС = ОбщегоНазначения.ФорматСумм(Сумма); //ПервыйРазделитель = Найти(ПолнаяДатаДокумента," "); //ВторойРазделитель = Найти(Прав(ПолнаяДатаДокумента,ДлинаСтроки - ПервыйРазделитель), " ") + ПервыйРазделитель; ТабДокумент.Вывести(ОбластьМакета); Возврат ТабДокумент; КонецФункции // ПечатьПоступлениеТоваров() мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить(); |
|||
1
wade25
20.02.12
✎
22:28
|
Введи переменную для них x, y, z/
x = x + ВыборкаСтрокТовары.Нетто; y = y + ВыборкаСтрокТовары.Места; z = Z + ВыборкаСтрокТовары.Брутто; Код в цикл. |
|||
2
dadka
20.02.12
✎
22:40
|
как уже писал ранее
Прошу учесть, что: Места Брутто это дополнительные реквизиты Справочника Номенклатура. и при вводе переменной {ВнешняяОбработка.Инвойс.МодульОбъекта(135)}: Преобразование значения к типу Число не может быть выполнено Нетто = Нетто + ВыборкаСтрокТовары.Нетто; |
|||
3
wade25
20.02.12
✎
22:45
|
А что в отладчике, какой тип?
|
|||
4
dadka
20.02.12
✎
22:56
|
Нетто - тип Неопределено
хотя ВыборкаСтрокТовары.Нетто - число дает |
|||
5
MrStomak
20.02.12
✎
23:01
|
Инициализировать переменную Нетто строчкой Нетто=0 в начале
|
|||
6
dadka
20.02.12
✎
23:14
|
(5) спасибо огромное. помогло.
|
|||
7
dadka
20.02.12
✎
23:16
|
подскажите еще момент
есть переменная Net она у меня считается как Net = ВыборкаСтрокТовары.Количество * ВыборкаСтрокТовары.Нетто; и выводится в строку отчета а нужно, чтобы еще по переменной Net считались итоги. |
|||
8
dadka
20.02.12
✎
23:28
|
*up*
|
|||
9
PVV65
21.02.12
✎
01:02
|
(0) Начать надо с запроса. У регистра ЗначенияСвойствОбъектов есть измерение "Свойство", поэтому надо писать
... | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияНетто | ПО ЗапросПоТоварам.Номенклатура.Ссылка = ЗначенияНетто.Объект И | ЗначенияНетто.Свойство = &СвойствоНетто ... иначе - бред. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |