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

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


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

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

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


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


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


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

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