kreol
5 - 28.04.2009 - 10:48
|
Функция ПечатьМ11() ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная_М11"; Макет = ПолучитьОбщийМакет("М11"); СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Организация, Дата); Область = Макет.ПолучитьОбласть("Шапка"); Область.Параметры.Заголовок = "ТРЕБОВАНИЕ-НАКЛАДНАЯ № " + Строка(Номер); Область.Параметры.КодОКПО = СведенияОбОрганизации.КодПоОКПО; Область.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации); Область.Параметры.ДатаСоставления = Формат( Дата, "ДФ=dd.MM.yy"); Область.Параметры.Склад = Склад; Область.Параметры.КоррСчет = СчетЗатрат.Код; Область.Параметры.ПредставлениеПодразделения = ?(СчетаУчетаЗатратВТаблице, ПодразделениеОрганизации, Субконто1); ТабДокумент.Вывести(Область); СтруктураПолей = Новый Структура; СтруктураПолей.Вставить("Счет", "Счет"); СтруктураПолей.Вставить("Материал", "Номенклатура"); СтруктураПолей.Вставить("МатериалНаименование", "Номенклатура.НаименованиеПолное"); СтруктураПолей.Вставить("НоменклатурныйНомер", "Номенклатура.Код"); СтруктураПолей.Вставить("ЕдиницаИзмеренияНаименование", "Номенклатура.БазоваяЕдиницаИзмерения"); СтруктураПолей.Вставить("ЕдиницаИзмеренияКод", "Номенклатура.БазоваяЕдиницаИзмерения.Код"); СтруктураПолей.Вставить("Количество", "Количество"); Область = Макет.ПолучитьОбласть("Строка"); ТаблицаМатериалов = ОбщегоНазначения.СформироватьЗапросПоТабличнойЧасти(ЭтотОбъект, "Материалы", СтруктураПолей).Выгрузить(); ТаблицаМатериалов.Свернуть("Материал, МатериалНаименование, Счет, НоменклатурныйНомер,ЕдиницаИзмеренияКод,ЕдиницаИзмеренияНаименование", "Количество"); // Поиск сумм списания активов для заполнения Цены и Суммы ТаблицаСуммСписания = БухгалтерскийУчет.ПолучитьСуммуСписанияАктивов(ЭтотОБъект); Для Каждого СтрокаТЧ Из ТаблицаМатериалов Цикл Область.Параметры.Заполнить(СтрокаТЧ); СтрокаСуммСписания = ТаблицаСуммСписания.Найти(СтрокаТЧ.Материал, "Номенклатура"); Если СтрокаСуммСписания = Неопределено Тогда Область.Параметры.Цена = 0; Область.Параметры.Сумма = 0;
Иначе Цена = ?(СтрокаСуммСписания.Количество = 0, 0, СтрокаСуммСписания.Сумма / СтрокаСуммСписания.Количество); Область.Параметры.Цена = Цена; Область.Параметры.Сумма = Цена * СтрокаТЧ.Количество;
КонецЕсли; ТабДокумент.Вывести(Область); КонецЦикла; ТаблицаМатериалов = ОбщегоНазначения.СформироватьЗапросПоТабличнойЧасти(ЭтотОбъект, "МатериалыЗаказчика", СтруктураПолей).Выгрузить(); Для Каждого СтрокаТЧ Из ТаблицаМатериалов Цикл
Область.Параметры.Заполнить(СтрокаТЧ); СтрокаСуммСписания = ТаблицаСуммСписания.Найти(СтрокаТЧ.Материал, "Номенклатура"); Если СтрокаСуммСписания = Неопределено Тогда Область.Параметры.Цена = 0; Область.Параметры.Сумма = 0;
Иначе Цена = ?(СтрокаСуммСписания.Количество = 0, 0, СтрокаСуммСписания.Сумма / СтрокаСуммСписания.Количество); Область.Параметры.Цена = Цена; Область.Параметры.Сумма = Цена * СтрокаТЧ.Количество;
КонецЕсли; ТабДокумент.Вывести(Область); СуммаИтого = 0;//добавил СуммаИтого = СуммаИтого+(Цена * СтрокаТЧ.Количество);//добавил
КонецЦикла;
Область = Макет.ПолучитьОбласть("Подвал"); Область.Параметры.СуммаИтого=СуммаИтого; //добавил ТабДокумент.Вывести(Область); Возврат ТабДокумент; КонецФункции // ПечатьМ11() --- попробовал в разных местах вставлять. в одном варианте выводит последнюю сумму из всех строк. в другом случае не выводит ничего. может что то нужно ещё добавить? :)
|