Как отправить по почте НЕтиповой документ, используя стандартные средства БП 3.0

16.01.23

Интеграция - Email рассылки

После работы с отладчиком в 23-х Общих модулях в поисках того, как же формируется тема, отправитель и тело письма, было принято решение поделиться найденными строчками кода с коллегами в надежде на то, что это поможет сократить их время при работе с похожей задачей.

Отправка сообщения

Тот, кто будет создавать новый документ в Бухгалтерии 3.0 и поставит перед собой цель отправлять его печатные формы по электронной почте, столкнется с задачей: при отправке нетипового документа в форме "Отправка почтового сообщения" поля Кому, Тема и Тело письма пустые, когда как в типовом варианте отправка сообщения выглядит намного красивее. Почему?

Сравнение отправки письма

Дело в том, что типовой вариант отработает только если в вашем документе есть реквизит "Организация" с типом значения СправочникСсылка.Организации и реквизит "Контрагент" с типом значений СправочникСсылка.Контрагенты/Организации/ФизическиеЛица. Если есть реквизиты, названные по-другому, к примеру, "Клиент", "Поставщик", "Партнер" и пр., то будет постоянно появляться пустая форма отправки письма, и все нужно добавлять вручную каждый раз.

Как сделать так, чтобы форма отправки письма заполнялась?

1.В общих командах, в "ОтправитьПоЭлектроннойПочте" выбираем наш документ в "ТипПараметраКоманды".

ОтправитьПоЭлектроннойПочте

2. В модуле менеджера нашего нового документа (в моем примере это Коммерческое предложение) необходимо добавить команды отправки. Идентификаторы должны быть такие же, как в процедуре Печать().

// Заполняет список команд отправки по электронной почте.
// 
// Параметры:
//   КомандыОтправки - ТаблицаЗначений - состав полей см. в функции ОтправкаПочтовыхСообщений.КомандыОтправки
//
Процедура ДобавитьКомандыОтправки(КомандыОтправки) Экспорт
	
	// Коммерческое предложение
	КомандаОтправки = КомандыОтправки.Добавить();
	КомандаОтправки.Идентификатор               = "ПечатьКоммерческогоПредложения";
	КомандаОтправки.Представление               = НСтр("ru='Коммерческое предложение'");
	КомандаОтправки.Порядок                     = 10;
	
	// Коммерческое предложение для крупного клиента
	КомандаОтправки = КомандыОтправки.Добавить();
	КомандаОтправки.Идентификатор               = "ПечатьКоммерческогоПредложенияДляКК";
	КомандаОтправки.Представление               = НСтр("ru='Коммерческое предложение для крупного клиента'");
	КомандаОтправки.Порядок                     = 20;
	
КонецПроцедуры

3.В процедуре, которая возвращает ТабличныйДокумент, непосредственно перед Возврат ТабДок, нужно вставить следующее:

// В табличном документе зададим имя области, в которую был 
 // выведен объект. Нужно для возможности печати покомплектно.
 УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, 
 НомерСтрокиНачало, ОбъектыПечати, МассивОбъектов);
 
 
 Возврат ТабДокумент;

Параметр НомерСтрокиНачало нужно получить раньше, после создания ТабличногоДокумента

НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;

4. Идем в общий модуль "ОтправкаПочтовыхСообщений", в процедуре "ЗаполнитьТемуТелоПисьма" видим, как получаются ОрганизацияПоПисьму и КонтрагентПоПисьму

СтруктураТиповОбъектыПечати = РазложитьСписокПоТипамОбъектов(МассивОбъектов);
ОписаниеДопустимыхТиповКонтрагента = ОписаниеТиповИзСтроки("Контрагенты, Организации, ФизическиеЛица");
	
ОрганизацияПоПисьму = ПолучитьЗначениеОбщегоРеквизита(СтруктураТиповОбъектыПечати, "Организация", ОписаниеТиповИзСтроки("Организации"));
КонтрагентПоПисьму  = ПолучитьЗначениеОбщегоРеквизита(СтруктураТиповОбъектыПечати, "Контрагент",  ОписаниеДопустимыхТиповКонтрагента);

Тут-то и понимаем, что нам доступны только реквизиты "Организация" и "Контрагент" с видами справочников Организации, Контрагенты и ФизическиеЛица.

Остается в этом месте добавить наши реквизиты. и далее все будет заполняться очень красиво. Например, добавим реквизит "Клиент" типа СправочникСсылка.Клиенты

СтруктураТиповОбъектыПечати = РазложитьСписокПоТипамОбъектов(МассивОбъектов);
ОписаниеДопустимыхТиповКонтрагента = ОписаниеТиповИзСтроки("Контрагенты, Организации, ФизическиеЛица");
    
ОрганизацияПоПисьму = ПолучитьЗначениеОбщегоРеквизита(СтруктураТиповОбъектыПечати, "Организация", ОписаниеТиповИзСтроки("Организации"));
КонтрагентПоПисьму  = ПолучитьЗначениеОбщегоРеквизита(СтруктураТиповОбъектыПечати, "Контрагент",  ОписаниеДопустимыхТиповКонтрагента);

//08.02.2016 старт
Если ТипЗнч(МассивОбъектов[0]) = Тип("ДокументСсылка.КоммерческоеПредложение") Тогда
    КонтрагентПоПисьму  = ПолучитьЗначениеОбщегоРеквизита(СтруктураТиповОбъектыПечати, "Клиент",  ОписаниеТиповИзСтроки("Клиенты"));
КонецЕсли;
//конец

 

как отправить по почте не типовой документ БП 3.0 Бухгалтерия 8.3 платформа нетиповой электронная почта электронной сообщение письмо кому

См. также

Взаиморасчеты Email рассылки Акт сверки Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Внешняя обработка для Бухгалтерии 3.0 - позволяет автоматически формировать документы «Акт сверки расчетов» с контрагентами за выбранный период с последующей фоновой отправкой на почту контрагента.

3000 руб.

25.11.2020    24386    236    8    

202

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    4092    14    1    

32

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    5889    14    5    

24

SALE! 20%

Email рассылки Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Решение для массовой рассылки печатных форм (в том числе и дополнительных) любых документов, и произвольных файлов. Рассылка возможна посредством электронной почты, Telegram и файловой системы. Рассылка пакета документов. Добавление факсимильных печати и подписи. Произвольные шаблоны HTML/Simple text с автозаполнением любыми полями документа. Любые форматы файлов. Упаковка вложений в архив. Транслитерация имен файлов. Разбиение рассылки на произвольные порции. Обход спам-фильтров. Журналирование рассылок.

4920 3936 руб.

30.06.2022    10949    72    98    

34

Печатные формы Адаптация типовых решений Бухгалтер Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3000 руб.

07.02.2023    6614    72    10    

30

Загрузка и выгрузка в Excel Монитор заказов Email рассылки Пользователь Бухгалтерский учет 8.3.14 1С:Бухгалтерия 3.0 Россия Управленческий учет Платные (руб)

Внешняя обработка, осуществляющая автоматическую загрузку новых (непрочитанных) писем, получаемых по электронной почте по расписанию и обрабатывающая вложенные файлы-заказы (в формате EXCEL) по заранее заданному шаблону заказа с различными уведомлениями обработки заказа.

6000 руб.

13.10.2021    10104    3    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Xershi 1551 08.02.16 21:31 Сейчас в теме
Может просто стоит клиента записать в заголовке, а имя оставить контрагент?
Если заказчик хочет видеть типовой справочник названный по другому, не нужно переименовывать справочник или реквизит, достаточно поменять синоним или заголовок у ярлыка.
2. TMV 14 12.02.16 08:09 Сейчас в теме
Не в тему, но все же отмечу. Отличный пример, как НЕ нужно подписывать вносимые изменения:

08.02.2016 старт
Если ТипЗнч(МассивОбъектов[0]) = Тип("ДокументСсылка.КоммерческоеПредложение") Тогда
КонтрагентПоПисьму = ПолучитьЗначениеОбщегоРеквизита(СтруктураТиповОбъектыПечати, "Клиент", ОписаниеТиповИзСтроки("Клиенты"));
КонецЕсли;
конец
Оставьте свое сообщение