Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Запись Сформированного макета документа в файл XML, PDF

Запись Сформированного макета документа в файл XML, PDF
Я
   DenisVich
 
05.03.18 - 11:43
Обычные формы. Есть макет, есть документ. В макете приемник хранится уже заполненный документ.(таблица). Сохраняю документ в файл. Но когда открываю, то сохраняется незаполненый документ. Как будто я макет сразу взял и сохранил. Почему?
"                 ФормированиеПечатнойФормыАкт(МакетПриемник,ОбъектДокумент)//Заполняется макет по документу в МакетПриемник.

                        МакетПриемник = ПолучитьМакет("Акт");
                         МакетПриемник.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
 
 
   DenisVich
 
1 - 05.03.18 - 11:44
"то сохраняется незаполненый документ" - сохранненый документ не заполнен, заполнен он названиями переменных.
   catena
 
2 - 05.03.18 - 11:45
МакетПриемник = ПолучитьМакет("Акт");
                         МакетПриемник.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);


И чего вы ждали?
   Lexey_
 
3 - 05.03.18 - 11:46
(0) "Как будто я макет сразу взял и сохранил. Почему?" потому, что так и есть
   DenisVich
 
4 - 05.03.18 - 11:51
ФормированиеПечатнойФормыАкт(МакетПриемник,ОбъектДокумент)
   DenisVich
 
5 - 05.03.18 - 11:51
На выходе МакетПриемник сформированнный вышеописанной процедурой.
   Lexey_
 
6 - 05.03.18 - 11:53
(5) ну да
   Lexey_
 
7 - 05.03.18 - 11:55
(5) а вот эта строка что делает?
МакетПриемник = ПолучитьМакет("Акт");
   DenisVich
 
8 - 05.03.18 - 11:55
Для Каждого ЭлементТабличнойЧасти Из ТаблицаДокументов Цикл
                     МакетПриемник = ПолучитьМакет("АктСПечатью");
                     ИмяФайла= (КаталогВременныхФайлов()+СтрЗаменить(Лев(ЭтаФорма.Заголовок, СтрДлина(ЭтаФорма.Заголовок)-1), ":", "")+".pdf");                 
                     ИмяФайла= СтрЗаменить(ИмяФайла, "Проведен", "");
                      ИмяФайла= СтрЗаменить(ИмяФайла, """", "");                     
                     ОбъектДокумент = ЭлементТабличнойЧасти.Документ.Ссылка.ПолучитьОбъект();
                     Если ОбъектДокумент.Проведен И ТипЗнч(ОбъектДокумент.Ссылка) = Тип("ДокументСсылка.Реализация") Тогда
                         ФормированиеПечатнойФормыАктСПечатью(МакетПриемник,ОбъектДокумент);
                         МакетПриемник.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
                                     
                        МакетПриемник = ПолучитьМакет("АктСПечатью");
                        ФормированиеУнифицированнойФормыТорг12СПечатью(МакетПриемник,ОбъектДокумент);                        
                     КонецЕсли;
                     Если ОбъектДокумент.Проведен И ТипЗнч(ОбъектДокумент.Ссылка) = Тип("ДокументСсылка.АктСверкиВзаиморасчетов") Тогда
                         ФормированиеПечатнойФормыАктСверкиВзаиморасчетовСПечатью(МакетПриемник,ОбъектДокумент);            
                     КонецЕсли;                    
                     Если ОбъектДокумент.Проведен И ТипЗнч(ОбъектДокумент.Ссылка) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
                         ФормированиеСчетаНаОплатуСПечатью(МакетПриемник,ОбъектДокумент);
                     КонецЕсли;                    

                     МакетПриемник.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
                     
                 КонецЦикла;
   DenisVich
 
9 - 05.03.18 - 11:56
Вот код, макеты заполненые не заполнены.
   DenisVich
 
10 - 05.03.18 - 11:56
в файлах. Стоят имеена реквизитов.
 
 Рекламное место пустует
   DenisVich
 
11 - 05.03.18 - 12:00
"                 Для Каждого ЭлементТабличнойЧасти Из ТаблицаДокументов Цикл;
                     ИмяФайла= (КаталогВременныхФайлов()+СтрЗаменить(Лев(ЭтаФорма.Заголовок, СтрДлина(ЭтаФорма.Заголовок)-1), ":", "")+".pdf");                 
                     ИмяФайла= СтрЗаменить(ИмяФайла, "Проведен", "");
                      ИмяФайла= СтрЗаменить(ИмяФайла, """", "");                     
                     ОбъектДокумент = ЭлементТабличнойЧасти.Документ.Ссылка.ПолучитьОбъект();
                     Если ОбъектДокумент.Проведен И ТипЗнч(ОбъектДокумент.Ссылка) = Тип("ДокументСсылка.Реализация") Тогда
                         МакетПриемник = ПолучитьМакет("ТОРГ12СПечатью");
                         ФормированиеПечатнойФормыАктСПечатью(МакетПриемник,ОбъектДокумент);
                         МакетПриемник.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
                                         
                        МакетПриемник = ПолучитьМакет("АктСПечатью");
                        ФормированиеУнифицированнойФормыТорг12СПечатью(МакетПриемник,ОбъектДокумент);                        
                     КонецЕсли;
                     Если ОбъектДокумент.Проведен И ТипЗнч(ОбъектДокумент.Ссылка) = Тип("ДокументСсылка.АктСверкиВзаиморасчетов") Тогда
                        МакетПриемник = ПолучитьМакет("АктСверкиСПечатью");
                         ФормированиеПечатнойФормыАктСверкиВзаиморасчетовСПечатью(МакетПриемник,ОбъектДокумент);            
                     КонецЕсли;                    
                     Если ОбъектДокумент.Проведен И ТипЗнч(ОбъектДокумент.Ссылка) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
                        МакетПриемник = ПолучитьМакет("СчетНаОплатуСПечатью");
                         ФормированиеСчетаНаОплатуСПечатью(МакетПриемник,ОбъектДокумент);
                     КонецЕсли;                    

                     МакетПриемник.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
                     
                 КонецЦикла;            
"
   DenisVich
 
12 - 05.03.18 - 12:01
Формы переподставлял все едино. Сама концепция записи не работает. МакетПриемник.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
   Lexey_
 
13 - 05.03.18 - 12:04
(12) ответь на (7)
   DenisVich
 
14 - 05.03.18 - 12:06
(13) МакетПриемник = ПолучитьМакет("Акт"); - Переменной назначаем объект Макет "Акт". И начинаем с ним оперировать
   FIXXXL
 
15 - 05.03.18 - 12:07
тут ФормированиеПечатнойФормыАкт(МакетПриемник,ОбъектДокумент) заполнил

тут МакетПриемник = ПолучитьМакет("Акт"); получил пустой

тут МакетПриемник.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF); записываешь пустой
   DenisVich
 
16 - 05.03.18 - 12:07
Правильно, а между этими строчками -  ФормированиеПечатнойФормыАктСПечатью(МакетПриемник,ОбъектДокумент);
   DenisVich
 
17 - 05.03.18 - 12:08
МакетПриемник обработан.
   FIXXXL
 
18 - 05.03.18 - 12:08
(16) у тебя в коде не между
   DenisVich
 
19 - 05.03.18 - 12:09
Если ОбъектДокумент.Проведен И ТипЗнч(ОбъектДокумент.Ссылка) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
                        МакетПриемник = ПолучитьМакет("СчетНаОплатуСПечатью");
                         ФормированиеСчетаНаОплатуСПечатью(МакетПриемник,ОбъектДокумент);
                     КонецЕсли;                    

                     МакетПриемник.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
   DenisVich
 
20 - 05.03.18 - 12:09
Не между?:)
   DenisVich
 
21 - 05.03.18 - 12:11
Т.е. получается что форму заполнил, что нет. Одно и тоже.
   FIXXXL
 
22 - 05.03.18 - 12:12
(20) смотри, что ты в (0) выкладываешь
а (19) вообще хз чего

угадайку играем? 
включай отладчик и смотри "кто на ком стоял"
   DenisVich
 
23 - 05.03.18 - 12:16
(22) Знаю что выкидываю. Пытался объяснить, что порядок не важен. Все равно не заполнено. Хотя фукнции все исправно работают.(формирование заполнения) Смотрел.
   Lexey_
 
24 - 05.03.18 - 12:33
(19) в условие заходит?
   DenisVich
 
25 - 05.03.18 - 16:22
Заходит.
   dezss
 
26 - 05.03.18 - 16:28
(25) а перед тем, как записываешь, есть что-то в твоем табдоке?
и покажи функцию
ФормированиеСчетаНаОплатуСПечатью
   DenisVich
 
27 - 06.03.18 - 13:45
Разобрались в чем дело. Числа не брал потому что стоял формат в макете для реквизитов(хотя формат верный числовой), но переприсвоение не работало. Макет приемник, очистил, сделал только для чтения перед передачей из макета исходника. Не в каждой функции поставил вот и проблемы.
        "МакетПриемник.Очистить();
        МакетПриемник.ОтображатьГруппировки    = Ложь;
        МакетПриемник.ОтображатьЗаголовки    = Ложь;
        МакетПриемник.ОтображатьСетку        = Ложь;
        МакетПриемник.ТолькоПросмотр        = Истина;
"


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