Имя: Пароль:
1C
1С v8
Макет + Сумма
0 1cxxx
 
04.10.12
08:29
Имеется макет со следующим кодом:
Функция ПечатьМ11()
   
   ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
   Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
       ТоварКод = "Артикул";
   Иначе
       ТоварКод = "Код";
   КонецЕсли;
   
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
   Запрос.Текст =
   "ВЫБРАТЬ
   |    Номер    КАК НомерДокумента,
   |    Дата    КАК ДатаДокумента,
   |    Дата    КАК ДатаСоставления,
   |    Организация,
   |    СкладОтправитель КАК Склад,
   |    СкладПолучатель КАК Подразделение,
   |    Автотранспорт        КАК Авто
   |ИЗ
   |    Документ.ПеремещениеТоваров КАК ПеремещениеТоваров
   |
   |ГДЕ
   |    ПеремещениеТоваров.Ссылка = &ТекущийДокумент";

   Шапка = Запрос.Выполнить().Выбрать();
   Шапка.Следующий();
   
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
   Запрос.УстановитьПараметр("ВидДвижения", ВидДвиженияНакопления.Расход);

   
   
   
   Запрос.Текст = "ВЫБРАТЬ
                  |    ПеремещениеТоваровТовары.Ссылка,
                  |    ПеремещениеТоваровТовары.Номенклатура,
                  |    ПеремещениеТоваровТовары.Номенклатура." + ТоварКод + " КАК НоменклатурныйНомер,
                  |    ПеремещениеТоваровТовары.ЕдиницаИзмерения.Наименование,
                  |    ПеремещениеТоваровТовары.ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код КАК ЕдиницаИзмеренияКод,
                  |    ПеремещениеТоваровТовары.ХарактеристикаНоменклатуры КАК Характеристика,
                  |    ПеремещениеТоваровТовары.СерияНоменклатуры КАК Серия,
                  |    СУММА(ПеремещениеТоваровТовары.Количество) КАК Количество,
                  |    МИНИМУМ(ПеремещениеТоваровТовары.НомерСтроки) КАК НомерСтроки,
                  |    ПеремещениеТоваровТовары.Коэффициент
                  |ПОМЕСТИТЬ ВТ_Док
                  |ИЗ
                  |    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
                  |ГДЕ
                  |    ПеремещениеТоваровТовары.Ссылка = &ТекущийДокумент
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ПеремещениеТоваровТовары.ЕдиницаИзмерения.Наименование,
                  |    ПеремещениеТоваровТовары.ХарактеристикаНоменклатуры,
                  |    ПеремещениеТоваровТовары.Номенклатура,
                  |    ПеремещениеТоваровТовары.ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код,
                  |    ПеремещениеТоваровТовары.СерияНоменклатуры,
                  |    ПеремещениеТоваровТовары.Ссылка,
                  |    ПеремещениеТоваровТовары.Номенклатура.Код,
                  |    ПеремещениеТоваровТовары.Коэффициент
                  |;
                  |
                  |////////////////////////////////////////////////////////////////////////////////
                  |ВЫБРАТЬ
                  |    ВТ_Док.НомерСтроки КАК НомерСтроки,
                  |    ВТ_Док.Номенклатура,
                  |    ВТ_Док.НоменклатурныйНомер,
                  |    ВТ_Док.ЕдиницаИзмеренияНаименование,
                  |    ВТ_Док.ЕдиницаИзмеренияКод,
                  |    ВТ_Док.Характеристика,
                  |    ВТ_Док.Серия,
                  |    ВТ_Док.Количество КАК Количество,
                  |    СРЕДНЕЕ(ЕСТЬNULL(ПартииТоваровНаСкладахБухгалтерскийУчет.Стоимость, 0) / (ПартииТоваровНаСкладахБухгалтерскийУчет.Количество * ВТ_Док.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВТ_Док.Коэффициент)) КАК Цена,
                  |    СУММА(ЕСТЬNULL(ПартииТоваровНаСкладахБухгалтерскийУчет.Стоимость, 0)) КАК Сумма,
                  |    ИТОГ(ЕСТЬNULL(ПартииТоваровНаСкладахБухгалтерскийУчет.Стоимость, 0)) КАК Итог,
                  |    ВЫРАЗИТЬ(ВТ_Док.Номенклатура.НаименованиеПолное КАК СТРОКА(200)) КАК МатериалНаименование
                  |ИЗ
                  |    ВТ_Док КАК ВТ_Док
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет КАК ПартииТоваровНаСкладахБухгалтерскийУчет
                  |        ПО ВТ_Док.Номенклатура = ПартииТоваровНаСкладахБухгалтерскийУчет.Номенклатура
                  |            И ВТ_Док.Ссылка = ПартииТоваровНаСкладахБухгалтерскийУчет.Регистратор
                  |ГДЕ
                  |    ПартииТоваровНаСкладахБухгалтерскийУчет.ВидДвижения = &ВидДвижения
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ВТ_Док.НоменклатурныйНомер,
                  |    ВТ_Док.Номенклатура,
                  |    ВТ_Док.ЕдиницаИзмеренияНаименование,
                  |    ВТ_Док.ЕдиницаИзмеренияКод,
                  |    ВТ_Док.Характеристика,
                  |    ВТ_Док.Серия,
                  |    ВТ_Док.НомерСтроки,
                  |    ВТ_Док.Количество,
                  |    ВЫРАЗИТЬ(ВТ_Док.Номенклатура.НаименованиеПолное КАК СТРОКА(200))
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    НомерСтроки
                  |АВТОУПОРЯДОЧИВАНИЕ";

   
   ЗапросПоНоменклатуре = Запрос.Выполнить();
   
   ТабДокумент = Новый ТабличныйДокумент;
   ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПеремещениеТоваров_М11";
   
   // Вывод заголовка
   Макет = ПолучитьОбщийМакет("М11");
   Область = Макет.ПолучитьОбласть("Шапка");
   Область.Параметры.Заголовок     = "ТРЕБОВАНИЕ-НАКЛАДНАЯ № " + Строка(Шапка.НомерДокумента);
   Область.Параметры.Заполнить(Шапка);
   
   СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента);

   Область.Параметры.ПредставлениеОрганизации   = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации);
   Область.Параметры.ПредставлениеПодразделения = Шапка.Подразделение;
   Область.Параметры.КодОКПО                    = СведенияОбОрганизации.КодПоОКПО;
   Область.Параметры.Авто                       = Шапка.Авто;
   

   
   
   ТабДокумент.Вывести(Область);
   
   ВыборкаПоСтрокам = ЗапросПоНоменклатуре.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Пока ВыборкаПоСтрокам.Следующий() Цикл

       Область = Макет.ПолучитьОбласть("Строка");
       Область.Параметры.Заполнить(ВыборкаПоСтрокам);
       Область.Параметры.МатериалНаименование = СокрЛП(ВыборкаПоСтрокам.МатериалНаименование) + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаПоСтрокам);
       
       ТабДокумент.Вывести(Область);

   КонецЦикла;
   Область = Макет.ПолучитьОбласть("Итог");
   Область = Макет.ПолучитьОбласть("Подвал");
   ТабДокумент.Вывести(Область);
   
   Возврат ТабДокумент;
   
КонецФункции // ПечатьМ11()


Как просуммировать колонку "сумма" ?
1 vicof
 
04.10.12
08:38
это где? в модуле макета? :)
2 1cxxx
 
04.10.12
08:39
в модуле документа..
3 vicof
 
04.10.12
08:44
(0) Просуммироваь можно кодом, можно в запрос итоги воткнуть
4 1cxxx
 
04.10.12
08:47
подскажи каким образом можно реализовать
5 фросия
 
04.10.12
08:49
(4) в запросе ИТОГИ ПО
выгрузить в тз и свернуть по нужным полям
переменную и в цикле суммировать
6 1cxxx
 
04.10.12
17:59
тема закрыта
7 Wobland
 
04.10.12
18:06
(6) спасибо пушкин будет говорить?
8 1cxxx
 
05.10.12
09:27
а ты здесь за порядком следишь баклан?
9 vicof
 
05.10.12
09:33
(8) как у вас тут в орнитологичесом царстве интересно. Бакланы за порядком следят. Дятлы вопросы задают. И только павлины пишут шикарные посты :)
10 1cxxx
 
05.10.12
09:43
Пост павлина оч помог..!
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший