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


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) чтобы потом таких вопросов не было.


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