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

Отправить печатную форму в PDF формате из 1с 8.3

Отправить печатную форму в PDF формате из 1с 8.3
Я
   e200420
 
31.05.19 - 12:14
Приветствую! Есть печатная форма. Хочу сделать кнопку ОТПРАВИТЬ. Печатная форма должна в формате пдф попадать как вложение в почтовый клиент по умолчанию. В моем случае это MS Outlook. Кнопка должна выполнять действие подобно виндовой команде ОТПРАВИТЬ, когда держишь левую кнопку мыши. Хелп!
 
 
   Fish
 
1 - 31.05.19 - 12:15
В БСП, емнип, что-то подобное есть.
   e200420
 
2 - 03.06.19 - 16:37
Вопрос с отправкой по почте решен очень просто. Даже подпись подтягивается.

Процедура СоздатьПисьмо()
    Попытка
        Outlook = Новый COMОбъект("Outlook.Application");
    Исключение
    КонецПопытки;
    
    Письмо = Outlook.CreateItem(0);    
    Письмо.Attachments.Add(ПриложенныйФайлPDF);    
    Письмо.Display();//или, например, Письмо.Send(); 

КонецПроцедуры


Теперь надо как-то открытую ПФ сохранить в pdf, чтоб вложение сделать.
   shuhard
 
3 - 03.06.19 - 16:38
(2) дык печать в pdf давно на уровне платформы
   e200420
 
4 - 03.06.19 - 16:40
не хочу использовать виртуальные принтеры и йоксель, есть же стандартные средства типа Сохранить как...
Вопрос только в синтаксисе. Думаю можно как-то потиху сохранить в pdf в указанной заранее место.
   mikecool
 
5 - 03.06.19 - 16:43
(4) автор не читатель
   edem911
 
6 - 03.06.19 - 16:44
(0) так в БСП уже давно есть отправка ПФ вложением в письме, для этого нужно настроить почтовый клиент в 1С. Тоже самое касаемо сохранения в PDF - все уже реализовано. Какая конфигурация.
   edem911
 
7 - 03.06.19 - 16:44
(6) Какая конфигурация?
   edem911
 
8 - 03.06.19 - 16:48
(7) да и табдок уже давно умеет сам себя сохранять в нужном формате, даже синтаксис помощник знает.
ТабличныйДокумент (SpreadsheetDocument)
Записать (Write)
Вариант синтаксиса: В файл
Синтаксис:
Записать(<ИмяФайла>, <ТипФайлаТаблицы>)
Параметры:
<ИмяФайла> (обязательный)
Тип: Строка.
Имя файла, в котором сохраняется табличный документ.
<ТипФайлаТаблицы> (необязательный)
Тип: ТипФайлаТабличногоДокумента.
   Михаил Козлов
 
9 - 03.06.19 - 16:48
ТабличныйДокумент.Записать(<имя файла>, ТипФайлаТабличногоДокумента.PDF) - это что-ли?
   Garykom
 
10 - 03.06.19 - 17:13
А потом придет генеральный директор со своим MacBook'ом или до веб-клиента (если это УФ) потом дойдете и кто то на кого то будет складывать маты.
   Garykom
 
11 - 03.06.19 - 17:13
(10) к (2)
   e200420
 
12 - 03.06.19 - 17:28
(10) в точку, вот только это и есть пожелания директора с маком. Но это будет не его работа, а пользователей MS Outlook.

(7) Конфа самописная. Пару справочников и макеты, все это добро из клюшки вызывается и на печать идет.

(8) (9) - оба варианта подходят, спасибо за помощь. Но суть в том, что сперва юзеру показывается ПФ, затем он решает отправлять ли это по почте и нажимает кнопку отправить на панели инструментов, и перед его взором предстает свежесозданное письмо в MS Outlook с уже прикрепленным вложением pdf. Остается только выбрать получателя письма.
Загвоздка в том, что мне надо обратиться в ПФ как-то. Проще конечно сразу сохранять в pdf при печати, но хотелось бы как в семерке с FormEx - захват таблицы и делай что хочешь с ней.
   shuhard
 
13 - 03.06.19 - 17:47
(12)[Загвоздка в том, что мне надо обратиться в ПФ как-то]
ТабличныйДокумент.Записать(<имя файла>, ТипФайлаТабличногоДокумента.PDF)
   edem911
 
14 - 03.06.19 - 17:54
(12) так а что мешает добавить на форму кнопку "Отправить" и там же на форме получать табличныйдокумент и сохранять через ТабличныйДокумент.Записать ?
   e200420
 
15 - 03.06.19 - 18:14
(14) ошибку выдает, не знает что такое ТабличныйДокумент
   shuhard
 
16 - 03.06.19 - 18:21
(15) отладчик совсем украли ?
   e200420
 
17 - 03.06.19 - 18:41
(16) он тут не поможет. На 7-ке знаю что сделал бы, а вот с 8-й знаком лишь поверхностно, повозиться надо. Идеи есть, буду думать. основные методы мне подсказали, остальное за мной. Спасибо всем. Как закончу, отпишусь что и как.
   shuhard
 
18 - 03.06.19 - 18:44
(17)[он тут не поможет]
у тебя табличный документ называется "ТабДок", с вероятностью 90%
отладчик это ловит за мсек
   e200420
 
19 - 03.06.19 - 20:03
(18) нет, Переменная не определена (ТабДок)
   Asmody
 
20 - 03.06.19 - 20:18
(12) [Конфа самописная] - обратись к тому, кто её писал. Он то знает, как у него печатные формы готовятся.
   e200420
 
21 - 04.06.19 - 10:38
Итак, подытожим проделанную работу.
Принцип работы: в 1с 8.3 открыта только печатная форма, больше ничего. В панели инструментов 1с 8.3 есть кнопка ОТПРАВИТЬ. По нажатию получаем открытый MS Outlook с вложением PDF этой самой печатной формы.

Для этого на ОТПРАВИТЬ цепляем процедуру из модуля обычного приложения ОтправитьВложениеПочтой().
Перем SpreadsheetDoc Экспорт;

Именно SpreadsheetDoc (в моем случае) и есть наша ПФ. Но для хранения ссылки на ПФ необходимо в модуле обычного приложения объявить эту переменную.

Процедура ОтправитьВложениеПочтой() Экспорт 
    Попытка
        Outlook = Новый COMОбъект("Outlook.Application");
    Исключение
    КонецПопытки;
    
    ПутьКФайлу = "c:\Temp\temp.pdf";
    SpreadsheetDoc.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.PDF);
    
    Письмо = Outlook.CreateItem(0);
    Письмо.Attachments.Add(ПутьКФайлу); 
    Письмо.Display();
    
    УдалитьФайлы(ПутьКФайлу);
КонецПроцедуры


Всё оказалось просто.
   Garykom
 
22 - 04.06.19 - 10:48
Эта "программиста", вот сюда

Попытка
   Outlook = Новый COMОбъект("Outlook.Application");
Исключение
  // вот сюда

КонецПопытки;


Добавь код вывода ошибки и Возврат из процедуры
   e200420
 
23 - 04.06.19 - 11:00
(22) это совершенно сырой вариант для примера. Дальше пускай все сами допиливают, кому нужно будет.

Дальше буду добавлять код для работы с другими почтовыми клиентами. Еще через rdp надо как-то пробросить.


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