Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Создание внешней печатной формы

Создание внешней печатной формы
Я
   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.
   RomanYS
 
3 - 04.11.20 - 20:22
https://fastcode.im/Templates/7180

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

            Область = пчПолучитьОбласть(Макет, Области["Договор"]);
            пчПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ПолучитьДанныеОбъекта(ЗН), Ложь);
            
            пчПоказатьДокумент(ПечатнаяФорма);            
        КонецЕсли;
    Исключение
        ИнформацияОбОшибке = ИнформацияОбОшибке();
        Сообщить(ИнформацияОбОшибке);
        пчОчиститьСсылки(ПечатнаяФорма,Ложь);
        пчОчиститьСсылки(Макет);
        Возврат Ложь;
    КонецПопытки;
    
    пчОчиститьСсылки(ПечатнаяФорма,Ложь);
    пчОчиститьСсылки(Макет);
    
    Возврат ТабДокумент;
КонецФункции

Функция ПолучитьДанныеОбъекта(СсылкаНаЗаказНаряд)
    //

    СтруктураВозврата = Новый Структура("ДатаДоговора, Контрагент, Автомобиль, КонтрагентТелефон, КонтрагентПочтовыйАдрес", Формат(ТекущаяДатаСеанса(), "ДФ=dd.MM.yyyy"), 
                                                        СсылкаНаЗаказНаряд.Заказчик, СсылкаНаЗаказНаряд.Автомобиль);
    
    //Получаем телефон

    Телефон = СокрЛП(киПолучитьПредставлениеКИ(СсылкаНаЗаказНаряд.Заказчик, Справочники.ВидыКонтактнойИнформации.ТелефонКонтактный));
    Если Не ЗначениеЗаполнено(Телефон) Тогда
        Телефон = СокрЛП(киПолучитьПредставлениеКИ(СсылкаНаЗаказНаряд.Заказчик, Справочники.ВидыКонтактнойИнформации.ТелефонРабочий));    
    КонецЕсли;
    Если Не ЗначениеЗаполнено(Телефон) Тогда
        Телефон = СокрЛП(киПолучитьПредставлениеКИ(СсылкаНаЗаказНаряд.Заказчик, Справочники.ВидыКонтактнойИнформации.ТелефонСотовый));    
    КонецЕсли;
    Если Не ЗначениеЗаполнено(Телефон) Тогда
        Телефон = СокрЛП(киПолучитьПредставлениеКИ(СсылкаНаЗаказНаряд.Заказчик, Справочники.ВидыКонтактнойИнформации.ТелефонДомашний));    
    КонецЕсли;
    СтруктураВозврата.КонтрагентТелефон = Телефон;
    
    СтруктураВозврата.КонтрагентПочтовыйАдрес = СокрЛП(киПолучитьПредставлениеКИ(СсылкаНаЗаказНаряд.Заказчик, Справочники.ВидыКонтактнойИнформации.АдресПочтовый));
    
    Возврат СтруктураВозврата;
    //

КонецФункции[/code]

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.