Отправка внешнего отчета на электронную почту (используя БСП)

В новых редакциях 1С: Бухгалтерия очень нравится отправка печатных форм отчетов, документов и всего, что можно, на электронную почту. В данной статье покажу ряд простых действий, которые добавят в ваши отчеты, выполненные без использования  компоновки, команду отправки по E-mail.
(Для отчетов, выполненных на СКД, такая возможность — штатная).

1. На форме отчета обязательны группы командной панели:

Например 

«КоманднаяПанельОтчета» (Вид — Командная панель),

«ГруппаДополнительнаяКоманднаяПанельОтчета» (Вид — Командная панель),

Поле вывода отчета — Реквизит «Результат» (Тип — ТабличныйДокумент)

 


2.  В процедуре «ПриСозданииНаСервере» формы добавляем команду БСП и устанавливаем заголовок отчета (он же имя файла).

 

ЭтотОбъект.Заголовок = "Отчет";      //Название отчета, оно же имя файла  "Отчет.xls"

ОтправкаПочтовыхСообщений.ПриСозданииОтчетаНаСервере(ЭтаФорма, Элементы.КоманднаяПанельОтчета.Имя,
, Элементы.ГруппаДополнительнаяКоманднаяПанельОтчета.Имя,
);


3. Добавляем в модуль формы в самый конец:

#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуОтправки()

ОтправкаПочтовыхСообщенийКлиент.ОтправитьОтчет(ЭтотОбъект);

КонецПроцедуры
#КонецОбласти

 

4. Формируем результат по своим алгоритмам и выводим в табличное поле формы — Результат

5. Всё! В приложении — шаблон отчета. Наличие Заголовка формы и табличного поля «Результат» — обязательны!

 

2 Comments

  1. sultbec

    Очень долго искал как сделать, спасибо автору — подсказал.

    только лучше будет не устанавливать заголовок отчета при создании (кому как нравится), а в процедуре сделать так:

    Процедура Подключаемый_ВыполнитьКомандуОтправки()
    
    ПараметрыОтчета = Новый Структура;
    ПараметрыОтчета.Вставить(«ТабличныйДокумент», Результат);
    ПараметрыОтчета.Вставить(«Заголовок»        , «Ведомость гашения»);
    
    
    ДополнительныеПараметры=новый структура;
    ДополнительныеПараметры.Вставить(«Контрагент»        , Объект.Контрагент);
    
    КлючеваяОперация = «ОтправкаОтчетаПоЭлектроннойПочте»;
    ОценкаПроизводительностиКлиентСервер.НачатьЗамерВремени(КлючеваяОперация);
    
    ПараметрыПисьма = ОтправкаПочтовыхСообщенийВызовСервера.ПараметрыЭлектронногоПисьмаДляОтчетов(ПараметрыОтчета,
    ДополнительныеПараметры);
    РаботаСПочтовымиСообщениямиКлиент.СоздатьНовоеПисьмо(ПараметрыПисьма);

    Показать

    Плюсом будет то, что адрес контрагента в этом случае подставится в письмо.

    Reply
  2. grig_nv

    Ай спасибо, пригодилось, чуствую самому бы пришлось полдня убить с отладчиком.

    Reply

Leave a Comment

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