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

Сохранить програмно отчет СКД в pdf файл

Сохранить програмно отчет СКД в pdf файл
Я
   Roma1314704
 
26.09.18 - 21:51
УП 8.3
Простой отчет СКД. Как сохранить через Сохранить как - здесь все ясно.
Прикрутил на форму кнопку сохранить в файл. Задача  - при нажатии на кнопку нужно сохранять в pdf файл.

Вот процедура
&НаКлиенте
Процедура СохранитьВФайл(Команда)
Режим = РежимДиалогаВыбораФайла.Сохранение;
ДиалогСохраненияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогСохраненияФайла.ПолноеИмяФайла = "Прайс";
Фильтр = "Документ PDF (*.pdf)|*.pdf";                
ДиалогСохраненияФайла.Фильтр = Фильтр;
ДиалогСохраненияФайла.МножественныйВыбор = Ложь;
ДиалогСохраненияФайла.Заголовок = "Выберите файл";
Если ДиалогСохраненияФайла.Выбрать() Тогда
    ПутьКФайлу = ДиалогСохраненияФайла.ПолноеИмяФайла;
ДиалогСохраненияФайла.Записать(ДиалогСохраненияФайла.ПолноеИмяФайла, ТипФайлаТабличногоДокумента.PDF);

КонецЕсли;  
КонецПроцедуры

Но она не работает  - обьясните пож что не так?
 
 
   runoff_runoff
 
1 - 26.09.18 - 22:03
тут попкорном попахивает в 3 строчке снизу
   Roma1314704
 
2 - 26.09.18 - 22:05
Да, вот в 3-ей снизу лажа полная
   Roma1314704
 
3 - 26.09.18 - 22:06
В чем ошибка в этой строке?
   Волшебник
 
4 - 26.09.18 - 22:07
ТабДокумент.Записать(ДиалогСохраненияФайла.ПолноеИмяФайла, ТипФайлаТабличногоДокумента.PDF);
   Roma1314704
 
5 - 26.09.18 - 22:11
Переменная не определена (ТабДокумент)
   Волшебник
 
6 - 26.09.18 - 22:12
(5) Украина, да?
   Roma1314704
 
7 - 26.09.18 - 22:14
)
   Roma1314704
 
8 - 26.09.18 - 22:15
Финляндия
   Roma1314704
 
9 - 26.09.18 - 22:40
О существоаании ТабДокумент.Записать(ДиалогСохраненияФайла.ПолноеИмяФайла, ТипФайлаТабличногоДокунмента.pdf);

В курсе . 
Не могу понять в чем проблема
   hhhh
 
10 - 26.09.18 - 22:59
Забыл переменную определить ТабДокумент, тебе же написали.
 
 Рекламное место пустует
   Roma1314704
 
11 - 26.09.18 - 23:18
&НаКлиенте
Процедура СохранитьВФайл(Команда)
Режим = РежимДиалогаВыбораФайла.Сохранение; 
ДиалогСохраненияФайла = Новый ДиалогВыбораФайла(Режим); 
ДиалогСохраненияФайла.ПолноеИмяФайла = "Прайс"; 
Фильтр = "Документ PDF (*.pdf)|*.pdf";                 
ДиалогСохраненияФайла.Фильтр = Фильтр; 
ДиалогСохраненияФайла.МножественныйВыбор = Ложь; 
ДиалогСохраненияФайла.Заголовок = "Выберите файл";

Если ДиалогСохраненияФайла.Выбрать() Тогда 
    ТабДокумент = Новый ТабличныйДокумент();

    ПутьКФайлу = ДиалогСохраненияФайла.ПолноеИмяФайла; 
ТабДокумент.Записать(ДиалогСохраненияФайла.ПолноеИмяФайла, ТипФайлаТабличногоДокумента.PDF);
КонецЕсли;   
КонецПроцедуры

Файл пустой
   Fram
 
12 - 27.09.18 - 01:18
(11) ты троллишь так толсто или просто ... ?
   Krolik Bezobraznik
 
13 - 27.09.18 - 08:41
У кого то уже пятница...
   Roma1314704
 
14 - 27.09.18 - 12:28
На самом деле , почему файл пустой? Что ещё нужно сделать ?
   s03
 
15 - 27.09.18 - 12:31
(14) а что ты хотел получить, если у тебя ТабДокумент = Новый ТабличныйДокумент(); и именно его ты и записываешь?
   Волшебник
 
16 - 27.09.18 - 12:33
Понаберут селян в программисты...
   Ник080808
 
17 - 27.09.18 - 12:38
ТабДокумент = ЭлементыФормы.Результат;
   Roma1314704
 
18 - 27.09.18 - 13:36
Переменная не определена (ЭлементыФормы)
   Ник080808
 
19 - 27.09.18 - 14:10
(18) ты гонишь) Элементы.Результат
   Roma1314704
 
20 - 27.09.18 - 14:26
ТабДокумент = Элементы.Результат;
После этого метод записать не доступный

Где можно глянуть рабочий пример?
   Ник080808
 
21 - 27.09.18 - 15:37
(20) ты издеваешься? у тебя форма отчета. на ней есть реквизит - табличный документ. Его ты должен записать в пдф. Берешь свой табдокумент, не знаю как он у тебя называется и сохраняешь
   Roma1314704
 
22 - 27.09.18 - 15:40
Процедура СохранитьВФайл(Команда)
Режим = РежимДиалогаВыбораФайла.Сохранение; 
ДиалогСохраненияФайла = Новый ДиалогВыбораФайла(Режим); 
ДиалогСохраненияФайла.ПолноеИмяФайла = "Прайс"; 
Фильтр = "Документ PDF (*.pdf)|*.pdf";                 
ДиалогСохраненияФайла.Фильтр = Фильтр; 
ДиалогСохраненияФайла.МножественныйВыбор = Ложь; 
ДиалогСохраненияФайла.Заголовок = "Выберите файл";

Если ДиалогСохраненияФайла.Выбрать() Тогда 
    ТабДокумент = Новый ТабличныйДокумент();
    ПутьКФайлу = ДиалогСохраненияФайла.ПолноеИмяФайла; 
    
ТабДокумент.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.PDF);

КонецЕсли;   
КонецПроцедуры
   Roma1314704
 
23 - 27.09.18 - 15:41
Пустой файл на выходе
   azernot
 
24 - 27.09.18 - 15:44
(23) Подумай, ЧТО ИМЕННО ты хочешь сохранить, где ты это указываешь и как система должна понять, что именно ты хочешь сохранить.

Вот где у тебя хранится сформированный с помощью СКД отчёт? В каком-то реквизите? В переменной? Какой тип имеет этот реквизит/переменная?

Такой код:
ТабДокумент = Новый ТабличныйДокумент();
ТабДокумент.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.PDF);

закономерно приводит к результату "Пустой файл на выходе".
   Ник080808
 
25 - 27.09.18 - 15:46
Стаж: 11 лет 10 месяцев 21 день Аааааааааааааааааа
   VladZ
 
26 - 27.09.18 - 15:49
(22) Круто. А теперь переведем твой код на понятный "человеческий язык":

1. Выбрать файл файл.
2. Создать пустой табличный документ.
3. Сохранить этот табличный документ в файл.

на каком шаге он у тебя заполнился?
   0level
 
27 - 27.09.18 - 16:02
Помимо "сохранить как", на управляемых формах есть пиктограмма дискеты, пользователю удобнее через нее сохранять.
   azernot
 
28 - 27.09.18 - 16:12
(27) Точно!

Вот самый правильный код:

Процедура СохранитьВФайл(Команда)
Режим = РежимДиалогаВыбораФайла.Сохранение; 
ДиалогСохраненияФайла = Новый ДиалогВыбораФайла(Режим); 
ДиалогСохраненияФайла.ПолноеИмяФайла = "Прайс"; 
Фильтр = "Документ PDF (*.pdf)|*.pdf";                      
ДиалогСохраненияФайла.Фильтр = Фильтр; 
ДиалогСохраненияФайла.МножественныйВыбор = Ложь; 
ДиалогСохраненияФайла.Заголовок = "Выберите файл";

Если ДиалогСохраненияФайла.Выбрать() Тогда 
    ТабДокумент = Новый ТабличныйДокумент();
     Рис=ТабДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
    Индекс=ТабДокумент.Рисунки.Индекс(Рис);
    ТабДокумент.Рисунки[Индекс].Картинка =  =БиблиотекаКартинок.СохранитьФайл;
    ТабДокумент.Рисунки[Индекс].Расположить(ТабДокумент.Область("R1C1:R4C4);  
    ПутьКФайлу = ДиалогСохраненияФайла.ПолноеИмяФайла; 
    
ТабДокумент.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.PDF);

КонецЕсли;   
КонецПроцедуры
   Roma1314704
 
29 - 27.09.18 - 17:54
Код от  azernot   - Снова пустой файл!
   azernot
 
30 - 27.09.18 - 18:10
(29) Да? Вот чёрт....

Ну я исправлюсь. Вот! Проверено! Работает!

    
Процедура СохранитьВФайл(Команда)
    Режим = РежимДиалогаВыбораФайла.Сохранение; 
    ДиалогСохраненияФайла = Новый ДиалогВыбораФайла(Режим); 
    ДиалогСохраненияФайла.ПолноеИмяФайла = "Прайс"; 
    Фильтр = "Документ PDF (*.pdf)|*.pdf";                      
    ДиалогСохраненияФайла.Фильтр = Фильтр; 
    ДиалогСохраненияФайла.МножественныйВыбор = Ложь; 
    ДиалогСохраненияФайла.Заголовок = "Выберите файл";
    
    Если ДиалогСохраненияФайла.Выбрать() Тогда 
        ПутьКФайлу = ДиалогСохраненияФайла.ПолноеИмяФайла;
        ТабДокумент = Новый ТабличныйДокумент();
        Рис=ТабДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
        Индекс=ТабДокумент.Рисунки.Индекс(Рис);
        ТабДокумент.Рисунки[Индекс].Картинка =  БиблиотекаКартинок.СохранитьФайл;
        ТабДокумент.Рисунки[Индекс].Расположить(ТабДокумент.Область("R1C1:R14C4"));  
        
        ТабДокумент.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.PDF);
    КонецЕсли;   
КонецПроцедуры
   Вафель
 
31 - 27.09.18 - 18:24
на УФ типовой табдок - это переменная Результат.
поэтому нужно
Результат.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.PDF);
   Roma1314704
 
32 - 27.09.18 - 19:00
azernot по последнему коду - файл снова пустой!
   Roma1314704
 
33 - 27.09.18 - 19:03
А Вот так 
Результат.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.PDF); - завелось!

Парни, всем большое спасибо!
Ткните носом что почитать с литературы для понятия скила?
 
 
   azernot
 
34 - 27.09.18 - 20:23
(32) 100% не пустой! Там пиктограмма из (27)
   Fram
 
35 - 27.09.18 - 20:42
(33) боюсь, что это врожденное
   PaulBC
 
36 - 28.09.18 - 03:45
(0) Зачем все это? Используй форму отчета из БСП - там уже есть все кнопки.
   Chameleon1980
 
37 - 28.09.18 - 04:09
(36) чтобы потом таких вопросов не было.


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