Добрый день всем!Еще не так много опыта в программирование 1с,хочу написать массовую рассылку на почту документов из конфигураций БП 3.0 а нормального примера не нашел,а чтоб образец взять нет стартмани,может кто помочь с кодом для подключения учетной записи и формирование печатной формы для отправки?
---
для exchanga в настройках почтового ящика необходимо будет ставить что идет как сквозной без запроса аутентификации

```1c
    Функция ОтправитьНаЭлектроннуюПочту(Получатели, Тема, Текст, ДополнительныеПараметры = Неопределено, ИмяОтправителя = "1с-Зарплата и Управление Персоналом") Экспорт

    Если ДополнительныеПараметры = Неопределено Тогда
    ДополнительныеПараметры = Новый Структура;
    КонецЕсли;

    Профиль = Новый ИнтернетПочтовыйПрофиль;
    Профиль.АутентификацияSMTP = СпособSMTPАутентификации.БезАутентификации;
    Профиль.АдресСервераSMTP = "**.**.**.**";
    Профиль.ПортSMTP = 25;
    Профиль.Пользователь = "*****t@***";
    Профиль.ПользовательSMTP = "****@*****";

    ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение;
    ПочтовоеСообщение.Тема = Тема;
    ПочтовоеСообщение.Отправитель.Адрес = "******@*****";
    ПочтовоеСообщение.Отправитель.ОтображаемоеИмя = ИмяОтправителя;
    ПочтовоеСообщение.ИмяОтправителя = ИмяОтправителя;

    ПолучателиТип = ТипЗнч(Получатели);
    Если ТипЗнч(Получатели) = Тип("Массив") Тогда
    Для Каждого Адрес Из Получатели Цикл
    ПочтовоеСообщение.Получатели.Добавить(СокрЛП(Адрес));
    КонецЦикла;
    ИначеЕсли ПолучателиТип = Тип("Строка") Тогда
    ПочтовоеСообщение.Получатели.Добавить(СокрЛП(Получатели));
    Иначе
    Возврат Ложь;
    КонецЕсли;
    //
    //
    Если ДополнительныеПараметры.Свойство("Вложения") Тогда
    НомерФайла = 1;
    Для Каждого Файл из ДополнительныеПараметры.Вложения Цикл
    Если ТипЗнч(Файл) = Тип("ДвоичныеДанные") Тогда
    ПочтовоеСообщение.Вложения.Добавить(Файл, УниверсальныеМеханизмы.ПолучитьИмяФайлаИзПолногоПути(Файл)); //Файл, Наименование
    ИначеЕсли ТипЗнч(Файл) = Тип("Строка") Тогда
    ПочтовоеСообщение.Вложения.Добавить(Новый ДвоичныеДанные(Файл), УниверсальныеМеханизмы.ПолучитьИмяФайлаИзПолногоПути(Файл)); //Файл, Наименование
    Иначе
    Вложение = ПочтовоеСообщение.Вложения.Добавить(Файл.ДвоичныеДанные, ?(Файл.Свойство("НаименованиеВложения"), Файл.НаименованиеВложения, Неопределено));
    Файл.Свойство("CID" , Вложение.Идентификатор);
    Файл.Свойство("ТипСодержимого", Вложение.ТипСодержимого);
    КонецЕсли;
    НомерФайла = НомерФайла + 1;
    КонецЦикла;
    КонецЕсли;

    ПочтовоеСообщение.Тексты.Добавить(Текст, ?(Найти(Текст, "html") > 0, ТипТекстаПочтовогоСообщения.HTML, ТипТекстаПочтовогоСообщения.ПростойТекст));
    ПочтовоеСообщение.ОбработатьТексты();

    Попытка
    Почта = Новый ИнтернетПочта;
    Почта.Подключиться(Профиль);
    Почта.Послать(ПочтовоеСообщение);
    Почта.Отключиться();
    Возврат Истина;
    Исключение
    Комментарий = "Ошибка при отправке сообщения на электронную почту:" + Символы.ПС + ОписаниеОшибки();
    ЗаписьЖурналаРегистрации("Ошибка выполнения", УровеньЖурналаРегистрации.Ошибка, , , Комментарий);
    ОбщегоНазначения.СообщитьОбОшибке(Комментарий);
    КонецПопытки;

    Возврат Ложь;

    КонецФункции
```
---
если все же хочешь написать нетиповую рассылку, то благодаря встроенному механизму все просто:

```1c
    ПараметрыОтправки = Новый Структура;
    ПараметрыОтправки.Вставить ("Кому", АдресПолучателя);
    ПараметрыОтправки.Вставить ("Тема", ТемаСообщения);
    ПараметрыОтправки.Вставить ("Тело", ХТМЛТекст);
    ПараметрыОтправки.Вставить ("Вложения", МассивВложений);
    ПараметрыОтправки.Вставить ("ТипТекста", Перечисления.ТипыТекстовЭлектронныхПисем.HTML);

    УчетнаяЗапись = РаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись();

    РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение (УчетнаяЗапись, ПараметрыОтправки);
```
---
а не подскажешь как программно сформировать печатную форму документа на пример Акт сверки
---
функция Печать находится в модуле менеджера документа,
к сожалению она сразу выводит документ на печать
но в ней видно какой фукнцией формируется печатная форма (табличный документ)

копируешь эту функцию к себе в обработку (если она не экспортная) и готово:

```1c
    ПечДокумент = ПечатьАктаСверки (ДокументСсылка);

    ФайлВФорматеHTML = ПолучитьИмяВременногоФайла();
    ПечДокумент.Записать (ФайлВФорматеHTML, ТипФайлаТабличногоДокумента.HTML);

    ТекДанные = ПолучитьДвоичныеДанные (ФайлВФорматеHTML);
    АдресВоВременномХранилище = ПоместитьВоВременноеХранилище (ТекДанные);

    Вложение = Новый Структура;
    Вложение.Вставить ("Представление", ИмяФайлаВложения + ".html");
    Вложение.Вставить ("АдресВоВременномХранилище", АдресВоВременномХранилище);
```
---
Разве в типовой бухгалтерии нет рассылки отчетов по электронной почте? Тогда можно в ЗУП посмотреть, там точно есть.
---
есть только там можно отчеты отправить а я хочу отправить печатную форму документа
---
(3)

Тоже задался этим вопросом, даже откопал типовую и посмотрел :)

В типовой БП 3.0 есть механизм рассылки отчетов по электронной почте:

Администрирование -> Печатные формы, отчеты, обработки -> Рассылки отчетов
---
если все же хочешь написать нетиповую рассылку, то благодаря встроенному механизму все просто:

```1c
    ПараметрыОтправки = Новый Структура;
    ПараметрыОтправки.Вставить ("Кому", АдресПолучателя);
    ПараметрыОтправки.Вставить ("Тема", ТемаСообщения);
    ПараметрыОтправки.Вставить ("Тело", ХТМЛТекст);
    ПараметрыОтправки.Вставить ("Вложения", МассивВложений);
    ПараметрыОтправки.Вставить ("ТипТекста", Перечисления.ТипыТекстовЭлектронныхПисем.HTML);

    УчетнаяЗапись = РаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись();

    РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение (УчетнаяЗапись, ПараметрыОтправки);
```
---
а не подскажешь как программно сформировать печатную форму документа на пример Акт сверки
---
функция Печать находится в модуле менеджера документа,
к сожалению она сразу выводит документ на печать
но в ней видно какой фукнцией формируется печатная форма (табличный документ)

копируешь эту функцию к себе в обработку (если она не экспортная) и готово:

```1c
    ПечДокумент = ПечатьАктаСверки (ДокументСсылка);

    ФайлВФорматеHTML = ПолучитьИмяВременногоФайла();
    ПечДокумент.Записать (ФайлВФорматеHTML, ТипФайлаТабличногоДокумента.HTML);

    ТекДанные = ПолучитьДвоичныеДанные (ФайлВФорматеHTML);
    АдресВоВременномХранилище = ПоместитьВоВременноеХранилище (ТекДанные);

    Вложение = Новый Структура;
    Вложение.Вставить ("Представление", ИмяФайлаВложения + ".html");
    Вложение.Вставить ("АдресВоВременномХранилище", АдресВоВременномХранилище);
```
---
На какой платформе?
---
1С:Предприятие 8.3 (8.3.12.1790)
---
для exchanga в настройках почтового ящика необходимо будет ставить что идет как сквозной без запроса аутентификации

```1c
    Функция ОтправитьНаЭлектроннуюПочту(Получатели, Тема, Текст, ДополнительныеПараметры = Неопределено, ИмяОтправителя = "1с-Зарплата и Управление Персоналом") Экспорт

    Если ДополнительныеПараметры = Неопределено Тогда
    ДополнительныеПараметры = Новый Структура;
    КонецЕсли;

    Профиль = Новый ИнтернетПочтовыйПрофиль;
    Профиль.АутентификацияSMTP = СпособSMTPАутентификации.БезАутентификации;
    Профиль.АдресСервераSMTP = "**.**.**.**";
    Профиль.ПортSMTP = 25;
    Профиль.Пользователь = "*****t@***";
    Профиль.ПользовательSMTP = "****@*****";

    ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение;
    ПочтовоеСообщение.Тема = Тема;
    ПочтовоеСообщение.Отправитель.Адрес = "******@*****";
    ПочтовоеСообщение.Отправитель.ОтображаемоеИмя = ИмяОтправителя;
    ПочтовоеСообщение.ИмяОтправителя = ИмяОтправителя;

    ПолучателиТип = ТипЗнч(Получатели);
    Если ТипЗнч(Получатели) = Тип("Массив") Тогда
    Для Каждого Адрес Из Получатели Цикл
    ПочтовоеСообщение.Получатели.Добавить(СокрЛП(Адрес));
    КонецЦикла;
    ИначеЕсли ПолучателиТип = Тип("Строка") Тогда
    ПочтовоеСообщение.Получатели.Добавить(СокрЛП(Получатели));
    Иначе
    Возврат Ложь;
    КонецЕсли;
    //
    //
    Если ДополнительныеПараметры.Свойство("Вложения") Тогда
    НомерФайла = 1;
    Для Каждого Файл из ДополнительныеПараметры.Вложения Цикл
    Если ТипЗнч(Файл) = Тип("ДвоичныеДанные") Тогда
    ПочтовоеСообщение.Вложения.Добавить(Файл, УниверсальныеМеханизмы.ПолучитьИмяФайлаИзПолногоПути(Файл)); //Файл, Наименование
    ИначеЕсли ТипЗнч(Файл) = Тип("Строка") Тогда
    ПочтовоеСообщение.Вложения.Добавить(Новый ДвоичныеДанные(Файл), УниверсальныеМеханизмы.ПолучитьИмяФайлаИзПолногоПути(Файл)); //Файл, Наименование
    Иначе
    Вложение = ПочтовоеСообщение.Вложения.Добавить(Файл.ДвоичныеДанные, ?(Файл.Свойство("НаименованиеВложения"), Файл.НаименованиеВложения, Неопределено));
    Файл.Свойство("CID" , Вложение.Идентификатор);
    Файл.Свойство("ТипСодержимого", Вложение.ТипСодержимого);
    КонецЕсли;
    НомерФайла = НомерФайла + 1;
    КонецЦикла;
    КонецЕсли;

    ПочтовоеСообщение.Тексты.Добавить(Текст, ?(Найти(Текст, "html") > 0, ТипТекстаПочтовогоСообщения.HTML, ТипТекстаПочтовогоСообщения.ПростойТекст));
    ПочтовоеСообщение.ОбработатьТексты();

    Попытка
    Почта = Новый ИнтернетПочта;
    Почта.Подключиться(Профиль);
    Почта.Послать(ПочтовоеСообщение);
    Почта.Отключиться();
    Возврат Истина;
    Исключение
    Комментарий = "Ошибка при отправке сообщения на электронную почту:" + Символы.ПС + ОписаниеОшибки();
    ЗаписьЖурналаРегистрации("Ошибка выполнения", УровеньЖурналаРегистрации.Ошибка, , , Комментарий);
    ОбщегоНазначения.СообщитьОбОшибке(Комментарий);
    КонецПопытки;

    Возврат Ложь;

    КонецФункции
```
---
А чем типовая рассылка плоха?
---
в типовой не сделаешь массовую рассылку документов