Внешняя печатная форма "Счет на оплату покупателю", отправка на почту

Внешняя печатная форма "Счет на оплату покупателю" с возможностью отправки на электронную почту почту, вложения в формате MXL,HTML, TXT, XLS

В типовой конфигурации БУ отсутствует возможность отправки отчетов на электронную почту, поэтому был реализован внешний отчет……идея взята с УПП и УТ.

Можно использовать как шаблон для реализации других печатных форм.

Настройка:

В модуле объекта необходимо прописать параметры отправителя эл. ящика (пользователь, пароль, ПортPOP3, ПортSMTP)

Подключение:

Сервис — > Дополнительные отчеты и обработки…..создаем новый эл. , добавляем обработки и указываем тип документа «Счет на оплату покупателю»

 

p.s. Отчет не идеален, есть моменты где можно доработать

 

Добавил АктОбОказанииУслуг.epf

28 Comments

  1. bsv2003

    подскажите, а куда в модуле объекта внести информацию, чтобы при получении эл. почты отображалось корректное наименование отправителя. Сейчас у меня отображается логин от доступа к серверу отправки почты.

    Reply
  2. alexex

    Модуль объекта стр 346

    ПочтовоеСообщение.ИмяОтправителя  = Профиль.Пользователь;

    Синтаксис-помощник

    ИнтернетПочтовоеСообщение (InternetMailMessage)

    ИмяОтправителя (SenderName)

    Использование:

    Чтение и запись.

    Описание:

    Тип: Строка. Содержит имя отправителя письма.

    Reply
  3. milov.aleksey

    Попытался перенести(«выдрать с мясом») из УТ 10.3 и привязать между собой по типам в Бухгалтерии ред1.6 все объекты (Константа.ИспользованиеВстроенногоПочтовогоКлиента, общие формы ПечатьДокументов, НастройкаОтправкиОтчета, справочники ГруппыПисемЭлектроннойПочты, УчетныеЗаписиЭлектроннойПочты,ФильтрыДляЭлектронныхПисем, документ ЭлектронноеПисьмо и его движение по регистру сведений ПредметыЭлектронныхПисем), относящиеся к механизму встроенной почты. Но возникли проблемы с заведением учётной записи почты в спр.УчетныеЗаписиЭлектроннойПочты, т.к. нет подчинённых записей спр.ГруппыПисемЭлектроннойПочты…пока разбираюсь попробую воспользоваться отправкой хоть одной формы, спасибо.

    Reply
  4. alexex

    Проблема очевидна, не все объекты перетянул в БУ с УТ….в управление торг. сделай отчет по подсистеме УниверсальныеМеханизмы — > ЭлектроннаяПочта и ты увидишь чего не хватает.

    Вопрос зачем тебе эту подсистему городить в БУ? вывод на печать необходимо делать в форме….т.е. замена модуля типовой конфы….

    Бух. необходимо несколько форм для отправки на эл. почту, дешевле эти отчеты сделать внешними

    во вложении отчет по подсистеме

    Reply
  5. rambler_bzk

    Хорошая обработка, спасибо! Я не силен в конфигурировании, но пытаюсь доработать ее под себя. Подскажите пожалуйста, а как при успешной отправке письма автоматом добавлять в поле «Комментарий» текущего документа текст, типа, «Отправлено»?

    Reply
  6. cool.vlad4

    Да-м, реализация крива…(4) прав, давно это слямзил с бух корп, изменил общую форму печатьдокументов, никаких проблем (там еще есть кнопки прямой печати, я еще добавил выбор принтера, кол-во экземляров, кнопка толькопросмотр, сохранить копию(сразу в xls), от себя добавил сохранение в jpg, pdf)

    Reply
  7. alexex
    rambler_bzk пишет:

    Хорошая обработка, спасибо! Я не силен в конфигурировании, но пытаюсь доработать ее под себя. Подскажите пожалуйста, а как при успешной отправке письма автоматом добавлять в поле «Комментарий» текущего документа текст, типа, «Отправлено»?

    В модуле объекта есть процедура

    Процедура ПолучениеОтправкаПисем(СтруктураПисьма,eАдрес)  Экспорт

    примерно ~ стр 765

    Попытка
    ИнтернетПочта.Послать(ПочтовоеСообщение);
    
    // Здесь получай объект документа
    //  ссылка на документ в реквизите обработки  — СсылкаНаОбъект
    //  примерно выглядит так
    //   ОбъектД.СсылкаНаОбъект.ПолучитьОбъект();
    // ОбъектД.Коментарий = «Отправлено…»+ ОбъектД.Коментарий;
    // возможно потребуется запись объекта и его обновление (ОбъектД.Прочитать(); Позволяет прочесть данные заново. Недопустим для нового объекта. )
    // ОбъектД.Записать();
    
    Исключение
    ТекстОшибок = ОписаниеОшибки();
    
    #Если Клиент Тогда
    Сообщить(ТекстОшибок);
    #КонецЕсли
    
    КонецПопытки;
    

    Показать

    Reply
  8. rambler_bzk

    Вставил следующий код:

    Попытка

    ИнтернетПочта.Послать(ПочтовоеСообщение);

    ОбъектД = СсылкаНаОбъект.ПолучитьОбъект();

    ОбъектД.Комментарий = «Отправлено «+ ТекущаяДата() + «//» + ОбъектД.Комментарий;

    ОбъектД.Записать(РежимЗаписиДокумента.Проведение);



    Ошибка при вызове метода контекста (ПолучитьОбъект): Элемент не выбран!

    Ругается на эту строку —> ОбъектД = СсылкаНаОбъект.ПолучитьОбъект();

    Я так понимаю ссылка получается пустая……

    Я уже с подобным кодом бился вчера — одна и та же ошибка. А СсылкаНаОбъект ведет именно к текущему конкретному документу или она просто показывает привязку к Документу СчетНаОплатуПокупателю?

    Reply
  9. cool.clo

    Именно к печатаемому документу = попоробуй СсылкаНаОбъект.Ссылка, если не получится скорее всего в форме печатьдокументов — реквизит ОбъектПечати — через него можно. Чтобы понять в чем дело на ис есть обработка для отладки ВПФ — и еще — я бы так делать не стал, поскольку факт нажатия кнопки, не означает факта отправки письма(а из приведенного кода это и следует), необходим запрос на подтверждение получения письма Послать(<Сообщение>, <Запрос подтверждения>). А то можно просто комментарий пачкать при нажатии кнопки.

    Reply
  10. rambler_bzk

    Увы, ошибка та же. Возможно не правильно реализовал доступ через ОбъектПечати, вот код

    Врем = ПолучитьФорму(«ПечатьДокументов»);

    Врем.ОбъектПечати = СсылкаНаОбъект.Ссылка;

    ОбъектД = Врем.ОбъектПечати.ПолучитьОбъект(); //Спотыкаюсь здесь!

    ОбъектД.Комментарий = «Отправлено «+ ТекущаяДата() + «//» + ОбъектД.Комментарий;

    ОбъектД.Записать(РежимЗаписиДокумента.Проведение);

    И еще, решил проверить находит ли, к примеру, номер текущего документа

    Сообщить(СсылкаНаОбъект.Ссылка.Номер)

    А он в ответ пустую строчку выводит, те получается он документ не находит вообще 🙁 Может нужно через запрос все сделать?

    Reply
  11. alexex
    rambler_bzk пишет:

    Увы, ошибка та же. Возможно не правильно реализовал доступ через ОбъектПечати, вот код

    Врем = ПолучитьФорму(«ПечатьДокументов»);

    Врем.ОбъектПечати = СсылкаНаОбъект.Ссылка;

    ОбъектД = Врем.ОбъектПечати.ПолучитьОбъект(); //Спотыкаюсь здесь!

    ОбъектД.Комментарий = «Отправлено «+ ТекущаяДата() + «//» + ОбъектД.Комментарий;

    ОбъектД.Записать(РежимЗаписиДокумента.Проведение);

    И еще, решил проверить находит ли, к примеру, номер текущего документа

    Сообщить(СсылкаНаОбъект.Ссылка.Номер)

    А он в ответ пустую строчку выводит, те получается он документ не находит вообще Может нужно через запрос все сделать?

    Посмотрел….при открытии доп. форм ОбъектСсылка обнул. , вообщем сделал передачу ссылки на объект через параметры…

    по части подтверждения если хотите парсить вход. почту подтверждения доставки, пишите…, если нет опыта и т.п. могу за $$$ написать ), будет красиво и правильно )

    p.s. закинул доп. файлик с измен.-я

    Reply
  12. alexex

    Скачать «Измен. АктОбОказанииУслуг.epf»

    изменения в данном объекте

    Reply
  13. salve-salve

    Подскажите, в счете — при открытии печати или отправке по почте — имя во вложении = счет №1 от даты.

    А для Акта — вместо Акт №1 от даты … написано Печать документов. Как исправить?

    Reply
  14. salve-salve

    и по поводу (1), но не корректное имя отправителя, а получателя … Как использовать информацию в Контактах — Представление?

    Reply
  15. salve-salve

    (13) Исправил в 255 строке основного модуля

    Reply
  16. alexex
    salve-salve пишет:

    и по поводу (1), но не корректное имя отправителя, а получателя … Как использовать информацию в Контактах — Представление?

    Процедура ПолучениеОтправкаПисем

    Получатель.ОтображаемоеИмя = eАдрес;

    // Содержит представление почтового адреса. Произвольный текст, сопоставляемый почтовому адресу, указанному в свойстве Адрес. Используется почтовыми клиентами при разборе сообщения в качестве отображаемого имени получателя, отправителя и т.д.

    В процедуре передайте представление….

    Получатель.ОтображаемоеИмя = ПредставлениеАдресПолучателя;
    Reply
  17. salve-salve

    1. Переменная не определена (ПредставлениеАдресПолучателя) …

    2. Добавил в макет этой внешней формы картинку (сохранив её в конфигурации). При отправке на почту счета выводит ошибку Каталог не обнаружен v8_C_78_filesimage000.png. Этот файл в temp я вижу ….Это баг платформы 8.2.13.205 или прав каких-то нехватает?

    3. И самое замечательное было бы — это вложение в pdf (jpg)

    Reply
  18. salve-salve

    (17) попробуем реализовать сторонними силами…

    Reply
  19. alexex
    salve-salve пишет:

    1. Переменная не определена (ПредставлениеАдресПолучателя) …

    В процедуре передайте представление…. «ПредставлениеАдресПолучателя»

    Получатель.ОтображаемоеИмя = ПредставлениеАдресПолучателя;

    переменная сама по себе не возьмется — ПредставлениеАдресПолучателя, для начало ее надо определить…


    2. Добавил в макет этой внешней формы картинку (сохранив её в конфигурации). При отправке на почту счета выводит ошибку Каталог не обнаружен v8_C_78_filesimage000.png. Этот файл в temp я вижу ….Это баг платформы 8.2.13.205 или прав каких-то нехватает?

    в макет достаточно вставить картинку ком. «Paste», в 1с81 точно можно, не добавляя в конфу, а вот 1с82 не знаю, не использовал…

    p.s. если вы программируете, то у вас на исправление займет 1 мин. времени

    Reply
  20. tim2004

    Нужная вещь, спасибо! Еще бы такое для счет-фактуры. Сделайте, плиз.

    Как импортировать e-mail адреса для обмена документами из УТ в БП? Вроде штатный обмен это не позволяет.

    Reply
  21. progres488

    Прикрутил к УТ при отправке на печать ошибка

    Не удалось сформировать внешнюю печатную форму!

    Помилка при виклику методу контексту (Выполнить): {(18, 2)}: Неоднозначне поле «ЗаказПокупателя.Ссылка»

    <<?>>ЗаказПокупателя.Ссылка = &ТекущийДокумент

    Reply
  22. Поручик

    (21) Причём тут УТ, да ещё и для украины, если обработка для Кофигурации: 1С: Бухгалтерия 8, то есть БП.

    Reply
  23. napan

    Пригодилась, спасибо!

    Reply
  24. Fduchun

    (22) Поручик,

    Если подправить, можно в любую конфигурацию вставлять. В этом и прелесть 1С.

    Я тоже в торговлю вставил модифицированную версию.

    Задача была отправлять печатную форму ТОРГ-12 клиенту (контрагенту), эл. адрес которого был прописан в его контактных данных, при проведении документа РеализацияТоваровУслуг.

    Если кому надо, пишите — кусок кода скину.

    А здесь надо вместо «Неоднозначне поле «ЗаказПокупателя.Ссылка» вставить только нужные значения.

    Reply
  25. Fduchun

    Только пришлось еще покапаться, чтобы отправка письма шла.

    Т к есть разные потчовики.

    Для mail.ru надо прописывать

    Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;

    Reply
  26. tipOchek

    Обработка унифицирована под конкретный документ. Желаю автору создать более значимую вещь — ОТПРАВКА ДОКУМЕНТОВ по эл.почте (в том числе и отчетов, как в 1с8.2)

    Reply
  27. alexex
    tipOchek пишет:

    Обработка унифицирована под конкретный документ. Желаю автору создать более значимую вещь — ОТПРАВКА ДОКУМЕНТОВ по эл.почте (в том числе и отчетов, как в 1с8.2)

    (26) tipOchek, (26) tipOchek,

    1. прежде чем писать такую глупость необходимо думать! Значимые вещи за бесплатно никто не будет выкладывать. Вы хотя бы одно решение выложили на инфостате?

    2. В типовой конфигурации БУ отсутствует возможность отправки отчетов на электронную почту, поэтому был реализован внешний отчет……идея взята с УПП и УТ.

    Можно использовать как шаблон для реализации других печатных форм.

    3. ОТПРАВКА ДОКУМЕНТОВ по эл.почте (в том числе и отчетов, как в 1с8.2) — ЧТО ЗНАЧИТ КАК? Вы вообще про что???

    Reply
  28. NoxiD

    +1 Интересно

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *