|
1c печатная форма | ☑ | ||
---|---|---|---|---|
0
KukenKvaken
18.09.18
✎
14:12
|
Добрый день.
имею такую задачу доработать печатную форму. вроде все сделал правильно но получается такая фигня. скрины: 1) что получилось [url=http://ipic.su/img/img7/fs/Bezymyannyj.1537267829.jpg][img]http://ipic.su/img/img7/tn/Bezymyannyj.1537267829.jpg[/img][/url] 2) скрин макета печатной формы [url=http://ipic.su/img/img7/fs/2.1537267921.jpg][img]http://ipic.su/img/img7/tn/2.1537267921.jpg[/img][/url] код: Функция ПечатьЗаявкиНаТур(МассивОбъектов, ОбъектыПечати) ТабличныйДокумент = Новый ТабличныйДокумент; ИмяМакета = "ПФ_MXL_ЗаявкаНаТур"; ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаявкаНаТур"; Для Каждого Объект Из МассивОбъектов Цикл НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1; СведенияОбОрганизации = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(Объект.Организация, Объект.Дата); ПредставлениеОрганизации = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбОрганизации, "ПолноеНаименование"); Макет = ПолучитьМакет("ПФ_MXL_ЗаявкаНаТур"); ОблШапка = Макет.ПолучитьОбласть("Шапка"); ОблШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОблСтрока = Макет.ПолучитьОбласть("Строка"); ОблПодвал = Макет.ПолучитьОбласть("Подвал"); ОблИтого = Макет.ПолучитьОбласть("СтрокаИтого"); ШапкаУслуг = Макет.ПолучитьОбласть("ШапкаУслуг" + ?(Объект.ВыбратьПакетныйТур, "", "СоставногоТура")); СтрокаУслуг = Макет.ПолучитьОбласть("СтрокаУслуг" + ?(Объект.ВыбратьПакетныйТур, "", "СоставногоТура")); СтрокаИтогоУслуг = Макет.ПолучитьОбласть("СтрокаИтогоУслуг" + ?(Объект.ВыбратьПакетныйТур, "", "СоставногоТура")); ОблШапка.Параметры.Заполнить(Объект); ОблШапка.Параметры.Дата = Формат(Объект.Дата, "ДЛФ=DD"); Если Объект.ВыбратьПакетныйТур Тогда ОблШапка.Параметры.Туроператор = ?(ЗначениеЗаполнено(Объект.ПакетныйТур.Оператор.НаименованиеПолное), Объект.ПакетныйТур.Оператор.НаименованиеПолное, Объект.ПакетныйТур.Оператор.Наименование); Иначе ОблШапка.Параметры.Туроператор = Объект.Организация.НаименованиеПолное; КонецЕсли; ОблШапка.Параметры.ПредставлениеОрганизации = ПредставлениеОрганизации; ОблШапка.Параметры.Страна = Объект.ПакетныйТур.Страна; ОблШапка.Параметры.Город = Объект.ПакетныйТур.Город; ОблШапка.Параметры.Отель = Объект.ПакетныйТур.Отель; Если ТипЗнч(Объект.ПакетныйТур) = Тип("СправочникСсылка.ТА_ПакетныеТуры") Тогда ОблШапка.Параметры.КатегорияНомера = Объект.ПакетныйТур.КатегорияНомера; ОблШапка.Параметры.ТипРазмещения = Объект.ПакетныйТур.ТипРазмещения; КонецЕсли; ТабДокумент.Вывести(ОблШапка); ТабДокумент.Вывести(ОблШапкаТаблицы); СуммаИтого = 0; Для каждого Турист Из Объект.Туристы Цикл ОблСтрока.Параметры.Заполнить(Турист); ОблСтрока.Параметры.ПаспортныеДанные = ""; Родитель = Неопределено; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТА_РодственныеСвязиДети.Ссылка.ФизЛицо |ИЗ | Справочник.ТА_РодственныеСвязи.Дети КАК ТА_РодственныеСвязиДети |ГДЕ | ТА_РодственныеСвязиДети.Ребенок = &Турист"; Запрос.УстановитьПараметр("Турист", Турист.Турист); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Родитель = Выборка.ФизЛицо; КонецЕсли; ВПаспортеРодителя = Истина; Если Родитель = Неопределено Тогда Родитель = Турист.Турист; ВПаспортеРодителя = Ложь; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ДокументыФизическихЛицСрезПоследних.ДатаВыдачи КАК Выдан, | ДокументыФизическихЛицСрезПоследних.Серия, | ДокументыФизическихЛицСрезПоследних.Номер, | ДокументыФизическихЛицСрезПоследних.КемВыдан |ИЗ | РегистрСведений.ДокументыФизическихЛиц.СрезПоследних( | &МоментВремени, | ВидДокумента = &ВидДокумента | И Физлицо = &Турист) КАК ДокументыФизическихЛицСрезПоследних"; Запрос.УстановитьПараметр("МоментВремени", Объект.Дата); Запрос.УстановитьПараметр("ВидДокумента", ?(Объект.ПакетныйТур.Заграничный, Справочники.ВидыДокументовФизическихЛиц.НайтиПоНаименованию("Загранпаспорт гражданина РФ", Истина), Справочники.ВидыДокументовФизическихЛиц.ПаспортРФ)); Запрос.УстановитьПараметр("Турист", Родитель); Выб = Запрос.Выполнить().Выбрать(); Если Выб.Следующий() Тогда Если ВПаспортеРодителя Тогда ОблСтрока.Параметры.ПаспортныеДанные = "Вписан в паспорт серия " + Выб.Серия + " № " + Выб.Номер; Иначе ОблСтрока.Параметры.ПаспортныеДанные = "Паспорт серия " + Выб.Серия + " № " + Выб.Номер + ", Выдан: " + Выб.КемВыдан + " " + Формат(Выб.Выдан, "ДФ=dd.MM.yyyy"); КонецЕсли; КонецЕсли; Если Объект.ПроцентСкидки <> 0 Тогда Если Объект.УказыватьСтоимостьЗаЧеловека Тогда Если Турист.НомерСтроки = Объект.Туристы.Количество() Тогда ОблСтрока.Параметры.Сумма = Окр(Объект.СуммаДокумента - СуммаИтого, 2); СуммаИтого = СуммаИтого + Окр(Объект.СуммаДокумента - СуммаИтого, 2); Иначе ОблСтрока.Параметры.Сумма = Окр(Турист.Сумма - Турист.Сумма * Объект.ПроцентСкидки / 100, 2); СуммаИтого = СуммаИтого + Окр(Турист.Сумма - Турист.Сумма * Объект.ПроцентСкидки / 100, 2); КонецЕсли; Иначе КонецЕсли; Иначе Если Объект.УказыватьСтоимостьЗаЧеловека Тогда СуммаИтого = СуммаИтого + Турист.Сумма; Иначе ОблСтрока.Параметры.Сумма = 0; СуммаИтого = Объект.СуммаДокумента; КонецЕсли; КонецЕсли; ТабДокумент.Вывести(ОблСтрока); КонецЦикла; // sh+ ОблИтого.Параметры.СуммаИтого = Объект.СуммаДокумента; // sh+ // sh- // ОблИтого.Параметры.СуммаИтого = СуммаИтого; // sh- ТабДокумент.Вывести(ОблИтого); Если Объект.Услуги.Количество() <> 0 Тогда Взрослый = Объект.СтатусыТуристов.Найти(Справочники.ТА_СтатусТуриста.Взрослый, "СтатусТуриста"); КолВзрослых = 0; Если Взрослый <> Неопределено Тогда КолВзрослых = Взрослый.Количество; КонецЕсли; КолДетей = Объект.СтатусыТуристов.Итог("Количество") - КолВзрослых; ШапкаУслуг.Параметры.Услуги = ?(Объект.ВыбратьПакетныйТур, "Дополнительные услуги", "В т.ч. услуги"); ТабДокумент.Вывести(ШапкаУслуг); Для каждого Услуга Из Объект.Услуги Цикл Если Услуга.Услуга = Справочники.ТА_ДополнительныеУслуги.СтоимостьТура Тогда Продолжить; КонецЕсли; СтрокаУслуг.Параметры.Заполнить(Услуга); ТабДокумент.Вывести(СтрокаУслуг); КонецЦикла; Если Объект.ВыбратьПакетныйТур Тогда СтрокаИтогоУслуг.Параметры.СуммаИтогоДляВзрослых = Объект.Услуги.Итог("СуммаДляВзрослого"); СтрокаИтогоУслуг.Параметры.СуммаИтогоДляДетей = Объект.Услуги.Итог("СуммаДляРебенка"); КонецЕсли; ТабДокумент.Вывести(СтрокаИтогоУслуг); КонецЕсли; ОблПодвал.Параметры.СуммаПрописью = "Итого " + УправлениеНебольшойФирмойСервер.СформироватьСуммуПрописью(Объект.СуммаДокумента, Объект.ВалютаДокумента) + ?(Объект.ВыбратьПакетныйТур И Объект.Услуги.Количество() <> 0, ", в т.ч. услуги на сумму " + УправлениеНебольшойФирмойСервер.СформироватьСуммуПрописью(Объект.СуммаУслуг, Объект.ВалютаДокумента), ""); ОблПодвал.Параметры.Комментарий = Объект.Комментарий; ОблПодвал.Параметры.Менеджер = Объект.Ответственный; ОблПодвал.Параметры.Контрагент = Объект.Контрагент; ТабДокумент.Вывести(ОблПодвал); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); // ОблПодвал.Параметры.Заполнить(Объект); ОблПодвал.Параметры.Валюта = Объект.ВалютаДокумента; СведенияОбОрганизации = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(Объект.Организация, Объект.Дата); ФактическийАдрес = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбОрганизации, "ФактическийАдрес"); Город = "г."; Для ИндК = 1 По 2 Цикл ФактическийАдрес = Прав(ФактическийАдрес, СтрДлина(ФактическийАдрес)-Найти(ФактическийАдрес, ",")); КонецЦикла; // // ОблПодвал.Параметры.ДатаВыезда = Формат(Объект.ДатаВыезда, "ДЛФ=D") ; ОблПодвал.Параметры.ДатаВозврата = Формат(Объект.ДатаВозврата, "ДЛФ=D"); // ОблПодвал.Параметры.КПеречислению = Объект.СуммаТуроператору; ОблПодвал.Параметры.Комиссия = (Объект.СуммаДокумента - Объект.СуммаТуроператору); // // ТабДокумент.Вывести(ОблПодвал); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, Объект.Ссылка); // КонецЦикла; ТабДокумент.АвтоМасштаб = Истина; Возврат ТабДокумент; КонецФункции // ПечатнаяФорма() |
|||
1
KukenKvaken
18.09.18
✎
14:14
|
||||
2
ПегийЛунь
18.09.18
✎
14:26
|
Так вот же....
ОблПодвал.Параметры.Контрагент = Объект.Контрагент; ТабДокумент.Вывести(ОблПодвал); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); и потом еще раз ОблПодвал.Параметры.Комиссия = (Объект.СуммаДокумента - Объект.СуммаТуроператору); // // ТабДокумент.Вывести(ОблПодвал); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); |
|||
3
KukenKvaken
18.09.18
✎
14:30
|
(2) Спасибо.
а слона то я и не заметил.. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |