|
Внешний отчет УТ | ☑ | ||
---|---|---|---|---|
0
KENT2007
18.10.12
✎
09:43
|
как добавить группировку по папкам номенклатуры?
|
|||
1
KENT2007
18.10.12
✎
09:44
|
ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда ТоварКод = "Артикул"; Иначе ТоварКод = "Код"; КонецЕсли; Если СсылкаНаОбъект.Склад.ВидСклада = Перечисления.ВидыСкладов.НТТ Тогда ВалютаПересчета = мВалютаРегламентированногоУчета; Иначе ВалютаПересчета = мВалютаУпрУчета; КонецЕсли; ВалютаПечати = мВалютаРегламентированногоУчета; Параметры = МодульВалютногоУчета.ПолучитьКурсВалюты(ВалютаПересчета, СсылкаНаОбъект.Дата); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); Запрос.УстановитьПараметр("Курс", Параметры.Курс); Запрос.УстановитьПараметр("Кратность", Параметры.Кратность); Запрос.УстановитьПараметр("ВидСкладаНТТ", Перечисления.ВидыСкладов.НТТ); Запрос.УстановитьПараметр("ТипЦен", ТипЦен); Запрос.УстановитьПараметр("ДатаДок", СсылкаНаОбъект.Дата); Запрос.Текст = "ВЫБРАТЬ | Номер КАК НомерДокумента, | Дата КАК ДатаДокумента, | Дата КАК ДатаСнятияОстатков, | Организация, | Склад.Представление КАК ПредставлениеСклада |ИЗ | Документ.ИнвентаризацияТоваровНаСкладе КАК ИнвентаризацияТоваровНаСкладе | |ГДЕ | ИнвентаризацияТоваровНаСкладе.Ссылка = &ТекущийДокумент"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); Запрос.Текст = "ВЫБРАТЬ | ИнвентаризацияТоваровНаСкладеТовары.НомерСтроки КАК Номер, | ИнвентаризацияТоваровНаСкладеТовары.Номенклатура, | ИнвентаризацияТоваровНаСкладеТовары.Номенклатура.НаименованиеПолное КАК ТоварНаименование, | ИнвентаризацияТоваровНаСкладеТовары.Номенклатура." + ТоварКод + " КАК ТоварКод, | ИнвентаризацияТоваровНаСкладеТовары.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмеренияНаименование, | ИнвентаризацияТоваровНаСкладеТовары.ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код КАК ЕдиницаИзмеренияКодПоОКЕИ, | ИнвентаризацияТоваровНаСкладеТовары.Количество КАК ФактКоличество, | ИнвентаризацияТоваровНаСкладеТовары.КоличествоУчет КАК БухКоличество, | ИнвентаризацияТоваровНаСкладеТовары.ХарактеристикаНоменклатуры КАК Характеристика, | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена, | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) * ЕСТЬNULL(ИнвентаризацияТоваровНаСкладеТовары.Количество, 0) КАК ФактСумма, | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) * ЕСТЬNULL(ИнвентаризацияТоваровНаСкладеТовары.КоличествоУчет, 0) КАК БухСумма, | ИнвентаризацияТоваровНаСкладеТовары.СерияНоменклатуры КАК Серия |ИЗ | Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаДок, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних | ПО ИнвентаризацияТоваровНаСкладеТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура | И ИнвентаризацияТоваровНаСкладеТовары.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры |ГДЕ | ИнвентаризацияТоваровНаСкладеТовары.Ссылка = &ТекущийДокумент"; ВыборкаСтрокТовары = Запрос.Выполнить().Выбрать(); ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ИнвентаризацияТоваровНаСкладе_ИНВ3_Цены"; Макет = ПолучитьМакет("ИНВ3"); // Выводим шапку накладной ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ОбластьМакета.Параметры.Заполнить(Шапка); СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента); ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации); ОбластьМакета.Параметры.ОрганизацияПоОКПО = СведенияОбОрганизации.КодПоОКПО; ОбластьМакета.Параметры.ДатаДокумента = Шапка.ДатаДокумента; ОбластьМакета.Параметры.ДатаСнятияОстатков = Шапка.ДатаСнятияОстатков; ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(СсылкаНаОбъект); ТабДокумент.Вывести(ОбластьМакета); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); СтрокНаСтранице = 19; СтрокШапки = 5; СтрокПодвала = 5; НомерСтраницы = 2; Ном = 0; ИтогФактКоличество = 0; ИтогФактСумма = 0; ИтогБухКоличество = 0; ИтогБухСумма = 0; КолвоСтрокПоСтранице = 0; КолвоПостранице = 0; СуммаЛиста = 0; ИтогоКолво = 0; ИтогоСумма = 0; // Выводим заголовок таблицы ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы"); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДокумент.Вывести(ЗаголовокТаблицы); КоличествоСтрок = ВыборкаСтрокТовары.Количество(); Если КоличествоСтрок = 1 Тогда ПереноситьПоследнююСтроку = 0; Иначе ЦелыхСтраницСПодвалом = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице); ЦелыхСтраницБезПодвала = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице); ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала; КонецЕсли; // Выводим многострочную часть докмента ОбластьМакета = Макет.ПолучитьОбласть("Строка"); Пока ВыборкаСтрокТовары.Следующий() Цикл Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; Ном = Ном + 1; //Начинаем новую страницу, если предыдущая строка была последней на странице //или пора переносить последнюю строку на последнюю страницу с подвалом. ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице; Если (ЦелаяСтраница = Цел(ЦелаяСтраница)) или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ПодвалСтраницы"); ОбластьИтоговПоСтранице.Параметры.ИтогоФактКоличество = ИтогФактКоличество; ОбластьИтоговПоСтранице.Параметры.ИтогоФактСумма = ИтогФактСумма; ОбластьИтоговПоСтранице.Параметры.ИтогоБухКоличество = ИтогБухКоличество; ОбластьИтоговПоСтранице.Параметры.ИтогоБухСумма = ИтогБухСумма; ОбластьИтоговПоСтранице.Параметры.КоличествоПорядковыхНомеровНаСтраницеПрописью = ЧислоПрописью(КолвоСтрокПоСтранице, ,",,,,,,,,0"); ОбластьИтоговПоСтранице.Параметры.ОбщееКоличествоЕдиницФактическиНаСтраницеПрописью = ФормированиеПечатныхФорм.КоличествоПрописью(КолвоПостранице); ОбластьИтоговПоСтранице.Параметры.СуммаФактическиНаСтраницеПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаЛиста, ВалютаПечати); ТабДокумент.Вывести(ОбластьИтоговПоСтранице); НомерСтраницы = НомерСтраницы + 1; ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДокумент.Вывести(ЗаголовокТаблицы); ИтогФактКоличество = 0; ИтогФактСумма = 0; ИтогБухКоличество = 0; ИтогБухСумма = 0; КолвоСтрокПоСтранице = 0; КолвоПостранице = 0; СуммаЛиста = 0; КонецЕсли; ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары); ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрокТовары.ТоварНаименование + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары); ОбластьМакета.Параметры.Номер = Ном; ТабДокумент.Вывести(ОбластьМакета); ИтогФактКоличество = ИтогФактКоличество + ВыборкаСтрокТовары.ФактКоличество; ИтогФактСумма = ИтогФактСумма + ВыборкаСтрокТовары.ФактСумма; ИтогБухКоличество = ИтогБухКоличество + ВыборкаСтрокТовары.БухКоличество; ИтогБухСумма = ИтогБухСумма + ВыборкаСтрокТовары.БухСумма; ИтогоКолво = ИтогоКолво + ВыборкаСтрокТовары.ФактКоличество; ИтогоСумма = ИтогоСумма + ВыборкаСтрокТовары.ФактСумма; КолвоСтрокПоСтранице = КолвоСтрокПоСтранице + 1; КолвоПостранице = КолвоПостранице + ВыборкаСтрокТовары.ФактКоличество; СуммаЛиста = СуммаЛиста + ВыборкаСтрокТовары.ФактСумма; КонецЦикла; // Выводим итоги по последней странице ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ПодвалСтраницы"); ОбластьИтоговПоСтранице.Параметры.ИтогоФактКоличество = ИтогФактКоличество; ОбластьИтоговПоСтранице.Параметры.ИтогоФактСумма = ИтогФактСумма; ОбластьИтоговПоСтранице.Параметры.ИтогоБухКоличество = ИтогБухКоличество; ОбластьИтоговПоСтранице.Параметры.ИтогоБухСумма = ИтогБухСумма; ОбластьИтоговПоСтранице.Параметры.КоличествоПорядковыхНомеровНаСтраницеПрописью = ЧислоПрописью(КолвоСтрокПоСтранице, ,",,,,,,,,0"); ОбластьИтоговПоСтранице.Параметры.ОбщееКоличествоЕдиницФактическиНаСтраницеПрописью = ФормированиеПечатныхФорм.КоличествоПрописью(КолвоПостранице); ОбластьИтоговПоСтранице.Параметры.СуммаФактическиНаСтраницеПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаЛиста, ВалютаПечати); ТабДокумент.Вывести(ОбластьИтоговПоСтранице); // Выводим подвал документа ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ОбластьМакета = Макет.ПолучитьОбласть("ПодвалОписи"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.НачальныйНомерПоПорядку = 1; ОбластьМакета.Параметры.НомерКонца = ВыборкаСтрокТовары.Количество(); ОбластьМакета.Параметры.КоличествоПорядковыхНомеровНаСтраницеПрописью = ЧислоПрописью(ВыборкаСтрокТовары.Количество(), ,",,,,,,,,0"); ОбластьМакета.Параметры.ОбщееКоличествоЕдиницФактическиНаСтраницеПрописью = ФормированиеПечатныхФорм.КоличествоПрописью(ИтогоКолво); ОбластьМакета.Параметры.СуммаФактическиНаСтраницеПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(ИтогоСумма, ВалютаПечати); ТабДокумент.Вывести(ОбластьМакета); // Зададим параметры макета ТабДокумент.ПолеСверху = 0; ТабДокумент.ПолеСлева = 0; ТабДокумент.ПолеСнизу = 0; ТабДокумент.ПолеСправа = 0; ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; Возврат ТабДокумент; |
|||
2
KENT2007
18.10.12
✎
09:45
|
подскажите плиз.
нужно запрос править или обход в цикле установить? |
|||
3
Shurjk
18.10.12
✎
09:54
|
Используйте СКД или Универсальный отчет, это 8-ка а не 7-ка
|
|||
4
KENT2007
18.10.12
✎
10:12
|
Пока ВыборкаСтрокТовары.Следующий() Цикл
вот тут вставляю ПараметрыПозиции = Новый Структура; ПараметрыПозиции.Вставить("Группа", ВыборкаСтрокТовары.НоменклатураРодитель); |
|||
5
KENT2007
18.10.12
✎
10:44
|
блин что тема у всех вызывает ступор? или слишком простой вопрос
|
|||
6
KENT2007
18.10.12
✎
13:03
|
почему не выводит группу
Пока ВыборкаСтрокТовары.Следующий() Цикл ПараметрыПозиции = Новый Структура; ПараметрыПозиции.Вставить("Группа", ВыборкаСтрокТовары.НоменклатураРодитель); Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда Если ВыборкаСтрокТовары.НоменклатураРодитель.Уровень() = 0 Тогда ОбластьГруппы.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Вывести(ОбластьГруппы); КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |