Имя: Пароль:
1C
1С v8
Как сформировать макет счета?
0 sergqwert
 
03.09.20
20:21
Как сформировать макет в БП 3.0?

&НаКлиенте
Функция СформироватьПараметрыПисьма(Строка)
    
    ПараметрыПисьма = Новый Структура;
    
    Если ЗначениеЗаполнено(Строка.Адрес) Тогда
        ПараметрыПисьма.Вставить("Кому", Строка.Адрес);
    КонецЕсли;
    
    Если ЗначениеЗаполнено(АдресОтвета) Тогда
        ПараметрыПисьма.Вставить("АдресОтвета", АдресОтвета);
    КонецЕсли;
    
    Если ЗначениеЗаполнено(ТемаПисьма) Тогда
        ПараметрыПисьма.Вставить("Тема", ТемаПисьма);
    КонецЕсли;
    
    ТекстПисьма = "";
    ВложенияРисунки = Новый Структура;
    ТелоПисьма.ПолучитьHTML(ТекстПисьма, ВложенияРисунки);
    Если ЗначениеЗаполнено(ТекстПисьма) Тогда
        ПараметрыПисьма.Вставить("Тело", ТекстПисьма);
        ПараметрыПисьма.Вставить("ТипТекста", "HTML");
    КонецЕсли;
    
    Если Не Строка.АдресВоВременномХранилище = "" Тогда
        Результат = Новый Массив;
        ОписаниеВложения = Новый Структура;
        ОписаниеВложения.Вставить("Представление", Строка.Представление);
        ОписаниеВложения.Вставить("АдресВоВременномХранилище", Строка.АдресВоВременномХранилище);
        ОписаниеВложения.Вставить("Кодировка", Строка.Кодировка);
        Результат.Добавить(ОписаниеВложения);
        
        ПараметрыПисьма.Вставить("Вложения", Вложения(Строка.СчетНаОплату));
    КонецЕсли;    
        
    Возврат ПараметрыПисьма;
    
КонецФункции


&НаСервере

Функция Вложения(ДокументСсылка)

    Результат = Новый Массив;
    ПараметрыИсточника = Новый Структура;
    ПараметрыИсточника.Вставить("ИдентификаторКоманды", "СчетНаОплату");
    ОбъектыНазначения = Новый Массив;
    ОбъектыНазначения.Добавить(ДокументСсылка);
    ПараметрыИсточника.Вставить("ОбъектыНазначения", ОбъектыНазначения);
    КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ПараметрыИсточника.ИдентификаторКоманды);
    ОбъектыПечати = Новый СписокЗначений;
    
    ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
    
???    МакетФайла = СформироватьМакетСчета(ПараметрыИсточника.ОбъектыНазначения,ОбъектыПечати, Истина, Истина);
    
    ОписаниеВложения = Новый Структура;
    
    ИмяФайла = ПолучитьИмяВременногоФайла("pdf");
    МакетФайла.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
    
    ОписаниеВложения.Вставить("Представление", ОбщегоНазначенияБПВызовСервера.СформироватьЗаголовокДокумента(ДокументСсылка, "Счет на оплату")+ ".pdf" );
    
    ОписаниеВложения.Вставить("АдресВоВременномХранилище", ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяФайла)));
    
    ОписаниеВложения.Вставить("Кодировка", "");
    ОписаниеВложения.Вставить("Идентификатор", "");
    
    Результат.Добавить(ОписаниеВложения);
    
    Возврат Результат;


КонецФункции
Программист всегда исправляет последнюю ошибку.