|   |   | 
| 
 | Отправить печатную форму в 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 | 
        Эта "программиста", вот сюда
 
Добавь код вывода ошибки и Возврат из процедуры | |||
| 23
    
        e200420 04.06.19✎ 11:00 | 
        (22) это совершенно сырой вариант для примера. Дальше пускай все сами допиливают, кому нужно будет.
 Дальше буду добавлять код для работы с другими почтовыми клиентами. Еще через rdp надо как-то пробросить. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |