|
Создание внешней печатной формы | ☑ | ||
---|---|---|---|---|
0
Shouldercannon
04.11.20
✎
18:35
|
Доброго времени суток!
Пытаюсь создать внешнюю печатную форму используя макет, созданный в MS Word. Макет загружен как двоичные данные. Застрял на реализации самого вывода. Нужно просто вывести документ. Функция Печать(Ссылка, ТабДокумент) Экспорт ДвоичныеДанныеМакета = ПолучитьМакет("МакетWord"); ... Возврат ТабДокумент; КонецФункции |
|||
1
Мимохожий Однако
04.11.20
✎
19:24
|
MS Word и табличный документ разные по сути
|
|||
2
Сияющий в темноте
04.11.20
✎
19:54
|
В Word можно записать поля,а потом аызвать функцию печати самого Word.
|
|||
3
RomanYS
04.11.20
✎
20:22
|
||||
4
Shouldercannon
05.11.20
✎
13:09
|
Уточнение. Это для Альфа-Авто. Делали так. Хотел исключить всё лишнее для вывода макета, но знаний не хватает.
[code]Функция Печать(Ссылка, ТабДокумент) Экспорт ЗН = Ссылка.ДокументОснование; Если Не ЗначениеЗаполнено(ЗН) ИЛИ ТипЗнч(ЗН)<>Тип("ДокументСсылка.ЗаказНаряд") Тогда Сообщить("Документ Событие должен быть введен на основании заказ-наряда!"); Возврат ТабДокумент; КонецЕсли; ДвоичныеДанныеМакета = ПолучитьМакет("МакетWord"); Попытка Если пчПроверитьCOMСоединениеMSWord() Тогда ТипМакета = "MS"; ИначеЕсли пчПроверитьCOMСоединениеOOWriter() Тогда ТипМакета = "OO"; Иначе Сообщить("Ошибка при попытке установки соединения. |Для вывода печатных форм требуется, чтобы на компьютере был установлен пакет Microsoft Office или Open Office."); Возврат Ложь; КонецЕсли; Макет = пчИнициализироватьМакет(ДвоичныеДанныеМакета, ТипМакета); ПечатнаяФорма = пчИнициализироватьПечатнуюФорму(ТипМакета, Макет.НастройкиСтраницыМакета); Если ПечатнаяФорма <> Неопределено И Макет <> Неопределено Тогда Области = Новый Структура; пчДобавитьОписаниеОбласти(Области, "Договор", "Общая"); // Вывод всего документа сразу - чего мелочиться. Область = пчПолучитьОбласть(Макет, Области["Договор"]); пчПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ПолучитьДанныеОбъекта(ЗН), Ложь); пчПоказатьДокумент(ПечатнаяФорма); КонецЕсли; Исключение ИнформацияОбОшибке = ИнформацияОбОшибке(); Сообщить(ИнформацияОбОшибке); пчОчиститьСсылки(ПечатнаяФорма,Ложь); пчОчиститьСсылки(Макет); Возврат Ложь; КонецПопытки; пчОчиститьСсылки(ПечатнаяФорма,Ложь); пчОчиститьСсылки(Макет); Возврат ТабДокумент; КонецФункции Функция ПолучитьДанныеОбъекта(СсылкаНаЗаказНаряд) // СтруктураВозврата = Новый Структура("ДатаДоговора, Контрагент, Автомобиль, КонтрагентТелефон, КонтрагентПочтовыйАдрес", Формат(ТекущаяДатаСеанса(), "ДФ=dd.MM.yyyy"), СсылкаНаЗаказНаряд.Заказчик, СсылкаНаЗаказНаряд.Автомобиль); //Получаем телефон Телефон = СокрЛП(киПолучитьПредставлениеКИ(СсылкаНаЗаказНаряд.Заказчик, Справочники.ВидыКонтактнойИнформации.ТелефонКонтактный)); Если Не ЗначениеЗаполнено(Телефон) Тогда Телефон = СокрЛП(киПолучитьПредставлениеКИ(СсылкаНаЗаказНаряд.Заказчик, Справочники.ВидыКонтактнойИнформации.ТелефонРабочий)); КонецЕсли; Если Не ЗначениеЗаполнено(Телефон) Тогда Телефон = СокрЛП(киПолучитьПредставлениеКИ(СсылкаНаЗаказНаряд.Заказчик, Справочники.ВидыКонтактнойИнформации.ТелефонСотовый)); КонецЕсли; Если Не ЗначениеЗаполнено(Телефон) Тогда Телефон = СокрЛП(киПолучитьПредставлениеКИ(СсылкаНаЗаказНаряд.Заказчик, Справочники.ВидыКонтактнойИнформации.ТелефонДомашний)); КонецЕсли; СтруктураВозврата.КонтрагентТелефон = Телефон; СтруктураВозврата.КонтрагентПочтовыйАдрес = СокрЛП(киПолучитьПредставлениеКИ(СсылкаНаЗаказНаряд.Заказчик, Справочники.ВидыКонтактнойИнформации.АдресПочтовый)); Возврат СтруктураВозврата; // КонецФункции[/code] |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |