|
Печать нескольких макетов в зависимости от кол-ва Складов в док. Авансовый отчет | ☑ | ||
---|---|---|---|---|
0
capllary
14.11.14
✎
10:25
|
Всем привет. Нужна помощь в реализации печати кол-ва Приходных ордеров (форма М-4) в документе Авансовый отчет УПП 1.3 в зависимости от кол-ва разных Складов в табчасти Товары.
Пока что высчитал кол-во разных складов таким запросом: //Запрос кол-ва складов ЗапросПоСкладам = Новый Запрос(); ЗапросПоСкладам.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка); ЗапросПоСкладам.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Склад |ИЗ | (ВЫБРАТЬ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ АвансовыйОтчет.Склад) КАК Склад | ИЗ | Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчет | ГДЕ | АвансовыйОтчет.Ссылка = &ТекущийДокумент) КАК ВложенныйЗапрос"; ЗапросТовары = ЗапросПоСкладам.Выполнить().Выбрать(); ЗапросТовары.Следующий(); КолвоПереданныхОбъектов = ЗапросТовары.Склад; А как дальше прописать чтобы получить то кол-во макетов сколько и складов не знаю. |
|||
1
capllary
14.11.14
✎
10:26
|
Выбор разных складов в документе уже реализовал.
|
|||
2
Azverin
14.11.14
✎
10:27
|
если количество()>0 то цикл по складам и внутри формируй и выводи на печать макеты
|
|||
3
capllary
14.11.14
✎
10:31
|
(2) А как прописать чтоб кол-во циклов было = КолвоПереданныхОбъектов?
|
|||
4
Azverin
14.11.14
✎
10:54
|
(3) Пока Выборка.Следующий() Цикл
у тебя же в Выборке различные склады? |
|||
5
capllary
14.11.14
✎
11:09
|
(4) Да, разные склады.
Я вот что написал, но оно не работает: //Запрос кол-ва складов ЗапросПоСкладам = Новый Запрос(); ЗапросПоСкладам.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка); ЗапросПоСкладам.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Склад |ИЗ | (ВЫБРАТЬ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ АвансовыйОтчет.Склад) КАК Склад | ИЗ | Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчет | ГДЕ | АвансовыйОтчет.Ссылка = &ТекущийДокумент) КАК ВложенныйЗапрос"; ЗапросТовары = ЗапросПоСкладам.Выполнить().Выбрать(); ЗапросТовары.Следующий(); КолвоПереданныхОбъектов = ЗапросТовары.Склад; к = 1; Пока ЗапросТовары.Следующий() Цикл Если к = КолвоПереданныхОбъектов Тогда Прервать; КонецЕсли; // Зададим параметры макета ТабДок=Новый ТабличныйДокумент; ТабДок.ПолеСверху = 0; ТабДок.ПолеСлева = 0; ТабДок.ПолеСнизу = 0; ТабДок.ПолеСправа = 0; ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АвансовыйОтчет_М4"; Макет = ПолучитьМакет("М4"); //Заполним Шапку Шапка=Макет.ПолучитьОбласть("Шапка"); Шапка.Параметры.Заполнить(Шапка); СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка_запрос.Организация, Шапка_запрос.ДатаСоставления); Адрес = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ЮридическийАдрес"); Телеф = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "Телефоны"); Шапка.Параметры.ПредставлениеОрганизации = СсылкаНаОбъект.Организация.НаименованиеСокращенное + " "+Адрес+" "+Телеф; Шапка.Параметры.ОрганизацияПоОКПО = СведенияОПокупателе.КодПоОКПО; Шапка.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка_запрос); ТабДок.Вывести(Шапка); // Заполним заголовок докмента ЗаголовокДокумента=Макет.ПолучитьОбласть("ЗаголовокДокумента"); ЗаголовокДокумента.Параметры.Заполнить(ЗаголовокДокумента); ЗаголовокДокумента.Параметры.Заполнить(Шапка_запрос); ЗаголовокДокумента.Параметры.Дата = Шапка_запрос.ДатаСоставления; ПредставлениеКонтрагента = Шапка_запрос.Поставщик; ЗаголовокДокумента.Параметры.ПоставщикНаименование = ПредставлениеКонтрагента; ТабДок.Вывести(ЗаголовокДокумента); // Заполним ЗаголовокТаблицы ЗаголовокТаблицы=Макет.ПолучитьОбласть("ЗаголовокТаблицы"); ЗаголовокТаблицы.Параметры.Заполнить(ЗаголовокТаблицы); ТабДок.Вывести(ЗаголовокТаблицы); //Заполним Строка Строка=Макет.ПолучитьОбласть("Строка"); Строка.Параметры.Заполнить(Строка); // Инициализация итогов в документе ИтогоКоличествоПринято = 0; ИтогоСуммаБезНДС = 0; ИтогоСуммаНДС = 0; ИтогоВсегоСНДС = 0; Ном = 0; НомерСтраницы = 1; НомерСтроки = 0; КоличествоСтрок = ЗапросТовары.Количество(); Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл Строка.Параметры.Заполнить(ВыборкаСтрок); Кратность = ?(Шапка_запрос.Кратность = 0, 1, Шапка_запрос.Кратность); ВсегоСНДС = (ВыборкаСтрок.Стоимость + ?(Шапка_запрос.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)); КоличествоПринято = ВыборкаСтрок.КоличествоПринято; СуммаНДС = ВыборкаСтрок.СуммаНДС; Цена = (ВсегоСНДС - СуммаНДС) / ?(КоличествоПринято = 0, 1, КоличествоПринято); Строка.Параметры.КоличествоПринято = КоличествоПринято; Строка.Параметры.ВсегоСНДС = ВсегоСНДС; Строка.Параметры.СуммаБезНДС = ВсегоСНДС - СуммаНДС; Строка.Параметры.СуммаНДС = СуммаНДС; Строка.Параметры.Цена = Цена; Строка.Параметры.ТоварНаименование = СокрЛП(ВыборкаСтрок.ТоварНаименование); ТабДок.Вывести(Строка); ИтогоКоличествоПринято = ИтогоКоличествоПринято + КоличествоПринято; ИтогоСуммаБезНДС = ИтогоСуммаБезНДС + ВсегоСНДС - СуммаНДС; ИтогоСуммаНДС = ИтогоСуммаНДС + СуммаНДС; ИтогоВсегоСНДС = ИтогоВсегоСНДС + ВсегоСНДС; КонецЦикла; // Заполним Итого Итого=Макет.ПолучитьОбласть("Итого"); Итого.Параметры.Заполнить(Итого); Итого.Параметры.ИтогоКоличествоПринято = ИтогоКоличествоПринято; Итого.Параметры.ИтогоСуммаБезНДС = ИтогоСуммаБезНДС; Итого.Параметры.ИтогоСуммаНДС = ИтогоСуммаНДС; Итого.Параметры.ИтогоВсегоСНДС = ИтогоВсегоСНДС; ТабДок.Вывести(Итого); // Заполним Подвал Подвал = Макет.ПолучитьОбласть("Подвал"); Подвал.Параметры.Заполнить(Подвал); ПредставлениеКонтрагента = Шапка_запрос.Поставщик; Подвал.Параметры.ФИОМОЛ=ПредставлениеКонтрагента; Руководители = ОбщегоНазначения.ОтветственныеЛица(СсылкаНаОбъект.Организация, СсылкаНаобъект.Дата, ПодразделениеОтветственныхЛиц ); Подвал.Параметры.ДолжностьПоставщика = Руководители.РуководительДолжность; Подвал.Параметры.ФИОПоставщика = Руководители.РуководительПредставление; ТабДок.Вывести(Подвал); Возврат ТабДок; КонецЦикла; |
|||
6
capllary
14.11.14
✎
12:23
|
Может у кого нибудь появились какие нибудь идеи?
|
|||
7
Looser-1c
14.11.14
✎
12:25
|
||||
8
capllary
14.11.14
✎
12:26
|
(7) Шутник, однако)
|
|||
9
capllary
14.11.14
✎
12:26
|
Уже и так попробовал:
к = -1; Пока ЗапросТовары.Следующий() Цикл // Зададим параметры макета ТабДок=Новый ТабличныйДокумент; ТабДок.ПолеСверху = 0; ТабДок.ПолеСлева = 0; ТабДок.ПолеСнизу = 0; ТабДок.ПолеСправа = 0; ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АвансовыйОтчет_М4"; Макет = ПолучитьМакет("М4"); //Заполним Шапку Шапка=Макет.ПолучитьОбласть("Шапка"); Шапка.Параметры.Заполнить(Шапка); СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка_запрос.Организация, Шапка_запрос.ДатаСоставления); Адрес = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ЮридическийАдрес"); Телеф = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "Телефоны"); Шапка.Параметры.ПредставлениеОрганизации = СсылкаНаОбъект.Организация.НаименованиеСокращенное + " "+Адрес+" "+Телеф; Шапка.Параметры.ОрганизацияПоОКПО = СведенияОПокупателе.КодПоОКПО; Шапка.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка_запрос); ТабДок.Вывести(Шапка); // Заполним заголовок докмента ЗаголовокДокумента=Макет.ПолучитьОбласть("ЗаголовокДокумента"); ЗаголовокДокумента.Параметры.Заполнить(ЗаголовокДокумента); ЗаголовокДокумента.Параметры.Заполнить(Шапка_запрос); ЗаголовокДокумента.Параметры.Дата = Шапка_запрос.ДатаСоставления; ПредставлениеКонтрагента = Шапка_запрос.Поставщик; ЗаголовокДокумента.Параметры.ПоставщикНаименование = ПредставлениеКонтрагента; ТабДок.Вывести(ЗаголовокДокумента); // Заполним ЗаголовокТаблицы ЗаголовокТаблицы=Макет.ПолучитьОбласть("ЗаголовокТаблицы"); ЗаголовокТаблицы.Параметры.Заполнить(ЗаголовокТаблицы); ТабДок.Вывести(ЗаголовокТаблицы); //Заполним Строка Строка=Макет.ПолучитьОбласть("Строка"); Строка.Параметры.Заполнить(Строка); // Инициализация итогов в документе ИтогоКоличествоПринято = 0; ИтогоСуммаБезНДС = 0; ИтогоСуммаНДС = 0; ИтогоВсегоСНДС = 0; Ном = 0; НомерСтраницы = 1; НомерСтроки = 0; КоличествоСтрок = ЗапросТовары.Количество(); Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл Строка.Параметры.Заполнить(ВыборкаСтрок); Кратность = ?(Шапка_запрос.Кратность = 0, 1, Шапка_запрос.Кратность); ВсегоСНДС = (ВыборкаСтрок.Стоимость + ?(Шапка_запрос.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)); КоличествоПринято = ВыборкаСтрок.КоличествоПринято; СуммаНДС = ВыборкаСтрок.СуммаНДС; Цена = (ВсегоСНДС - СуммаНДС) / ?(КоличествоПринято = 0, 1, КоличествоПринято); Строка.Параметры.КоличествоПринято = КоличествоПринято; Строка.Параметры.ВсегоСНДС = ВсегоСНДС; Строка.Параметры.СуммаБезНДС = ВсегоСНДС - СуммаНДС; Строка.Параметры.СуммаНДС = СуммаНДС; Строка.Параметры.Цена = Цена; Строка.Параметры.ТоварНаименование = СокрЛП(ВыборкаСтрок.ТоварНаименование); ТабДок.Вывести(Строка); ИтогоКоличествоПринято = ИтогоКоличествоПринято + КоличествоПринято; ИтогоСуммаБезНДС = ИтогоСуммаБезНДС + ВсегоСНДС - СуммаНДС; ИтогоСуммаНДС = ИтогоСуммаНДС + СуммаНДС; ИтогоВсегоСНДС = ИтогоВсегоСНДС + ВсегоСНДС; КонецЦикла; // Заполним Итого Итого=Макет.ПолучитьОбласть("Итого"); Итого.Параметры.Заполнить(Итого); Итого.Параметры.ИтогоКоличествоПринято = ИтогоКоличествоПринято; Итого.Параметры.ИтогоСуммаБезНДС = ИтогоСуммаБезНДС; Итого.Параметры.ИтогоСуммаНДС = ИтогоСуммаНДС; Итого.Параметры.ИтогоВсегоСНДС = ИтогоВсегоСНДС; ТабДок.Вывести(Итого); // Заполним Подвал Подвал = Макет.ПолучитьОбласть("Подвал"); Подвал.Параметры.Заполнить(Подвал); ПредставлениеКонтрагента = Шапка_запрос.Поставщик; Подвал.Параметры.ФИОМОЛ=ПредставлениеКонтрагента; Руководители = ОбщегоНазначения.ОтветственныеЛица(СсылкаНаОбъект.Организация, СсылкаНаобъект.Дата, ПодразделениеОтветственныхЛиц ); Подвал.Параметры.ДолжностьПоставщика = Руководители.РуководительДолжность; Подвал.Параметры.ФИОПоставщика = Руководители.РуководительПредставление; ТабДок.Вывести(Подвал); Возврат ТабДок; Если к = КолвоПереданныхОбъектов Тогда Прервать; КонецЕсли; к = к + 1; КонецЦикла; Все равно не печатает. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |