название проекта
Система электронных рассылок для 1С
Оглавление
1. Цель разработки
2. Описание процесса
2.1. Процесс создания электронных писем состоит из 3-х объектов Рис.1
2.2. Основания для осуществления рассылки электронных писем
2.3. Справочник — это основной элемент процесса рассылки электронных писем
___2.3.1. Расположение Справочника в подсистеме разработки
___2.3.2. Описание реквизитов на форме элемента справочника
2.4. Механизм выполнения рассылки
___2.4.1. Структура параметров
___2.4.2. Процедуры формирования рассылок
2.5. Правила заполнения темы и текста «По шаблону»
2.6. Правила заполнения алгоритмов
___2.6.1. Общий
___2.6.2. Алгоритм до письма
___2.6.3. Алгоритм формирования списка получателей
___2.6.4. Алгоритм формирования темы письма
___2.6.5. Алгоритм формирования текста письма
2.7. Функция проверки алгоритмов
2.8. Примеры
3. Доработка функционала
3.1. Добавление механизма изменения получателей ответа
3.2. Расширенная настройка списка получателей
1. Цель разработки
Реализовать единый механизм создания, хранения и использования рассылок электронных писем в системе.
2. Описание процесса
2.1. Процесс создания электронных писем состоит из 3-х объектов Рис.1
  • 1. Справочник "ноЭлектронныеРассылки"
  • 2. Общий модуль "ноЭлектроннаяРассылка"
  • 3. Регламентное задание "ноЭлектроннаяРассылка"(механизм находится в разработке)
2.2. Основания для осуществления рассылки электронных писем
2.3 Справочник – это основной элемент процесса рассылки электронных писем
2.3.1. Справочник – это основной элемент процесса рассылки электронных писем
2.3.2. Описание реквизитов на форме элемента справочника
2.4. Механизм выполнения рассылки
2.4.1. Структура параметров
Основным параметром передачи данных для рассылок является параметр "СтруктураПараметров".

В СтруктуруПараметров возможно передать необходимые данные перед формированием рассылки для их использования в алгоритме или дообогащать структуру в процессе выполнения алгоритмов.
2.4.2.Процедуры формирования рассылок
Для выполнения рассылки в общем модуле "ноЭлектроннаяРассылка" предусмотрены две экспортные процедуры:

1) Процедура ВыполнитьРассылкуПоПодписке(Подписка, СтруктураПараметров = Неопределено)
Подписка - тип "Строка". Параметр для поиска подписки в справочнике по полю "Подписка на событие".

СтруктураПараметров - тип "Структура". В данный реквизит необходимо передать все параметры, которые будут использоваться в дальнейшем при формировании письма.

Пример вызова процедуры из подписки на событие:
Структура = Новый Структура;
Структура.Вставить("Источник", Источник);
Структура.Вставить("Отказ", Отказ);
Структура.Вставить("РежимПроведения", РежимПроведения);
ноЭлектроннаяРассылка.ВыполнитьРассылкуПоПодписке(Метаданные.ПодпискиНаСобытия.<Имя подписки на событие>.Имя, Структура);
2) Процедура ВыполнитьРассылку(ЭлектроннаяРассылка, СтруктураПараметров = Неопределено)
ЭлектроннаяРассылка- тип СправочникСсылка.ноЭлектронныеРассылки.

СтруктураПараметров - тип "Структура". В данный реквизит необходимо передать все параметры, которые будут использоваться в дальнейшем при формировании письма.
2.5. Механизм выполнения рассылки
Если в шаблоне указаны параметры, необходимо передать их в элементы СтруктураПараметров с аналогичными наименованиями.

Пример.
Для шаблона на скриншоте код заполнения параметров должен быть следующий:
Структура = Новый Структура;
Структура.Вставить("Организация", Ссылка.Организация);
Структура.Вставить("Дата", Отказ);
2.6. Правила заполнения алгоритмов
1) Все параметры, используемые в алгоритмах, необходимо передавать в соотвествующие элементы структуры параметров.

2) В алгоритмах недопустимо использовать конструкцию "Возврат;".

3) В алгоритмах допускается использование как полностью "свои" алгоритмы, так и процедуры и функции, используемые в конфигурации, например, в общих модулях.

Пункты ниже не относятся к алгоритму "Общий"

4) Алгоритмы выполняются в последовательности, указанной в данной инструкции, соответсвенно при необходимости - в данной последовательности можно дообогащать СтруктуруПараметров.

5) Для отказа от формирования письма вместо конструкции "Возврат;" необходимо использовать конструкцию "ОтказОтПисьма = Истина". Переменная ОтказОтПисьма перед выполнением алгоритмов имеет значение Ложь, если в процессе выполнения алгоритмов ОтказОтПисьма становится равным Истина, формирование и отправка письма не происходит.
2.6.1. Общий
Если выбран указанный алгоритм формирования письма, то создание письма и его отправка должны быть полностью описаны в алгоритме. Никакие другие алгоритмы формирования письма не выполняются.
2.6.2. Алгоритм до письма
Алгоритм выполняется до формирования письма, для выполнения проверок или дообогащения СтруктурыПараметров необходимыми данными.
2.6.3. Алгоритм формирования списка получателей
В алгоритме должен быть заполнен массив с наименованием "МассивКонтактов".

В качестве значений массива могут быть:

1) Адрес - тип Строка. Адрес электронной почты, типа "Строка"

2) Контакт - тип СправочникСсылка.СтроковыеКонтактыВзаимодействий, СправочникСсылка.Пользователи, СправочникСсылка.Партнеры, СправочникСсылка.КонтактныеЛицаПартнеров, СправочникСсылка.ФизическиеЛица.

3) Структура.

Поля структуры:

Адрес - тип: Строка. Адрес получателя
Контакт - тип: СправочникСсылка.СтроковыеКонтактыВзаимодействий, СправочникСсылка.Пользователи, СправочникСсылка.Партнеры, СправочникСсылка.КонтактныеЛицаПартнеров, СправочникСсылка.ФизическиеЛица.
Представление - тип Строка. Представление контакта в письме.
Пример
Структура = Новый Структура;
Структура.Вставить("Адрес","IvanovII@mail.ru");
Структура.Вставить("Контакт", ПользователиКлиентСервер.ТекущийПользователь());
Структура.Вставить("Представление", "Иванов И.И.");
МассивКонтактов.Добавить(Структура);
МассивКонтактов.Добавить("petrovpp@mail.ru");
МассивКонтактов.Добавить(ПользователиКлиентСервер.ТекущийПользователь());
2.6.4. Алгоритм формирования темы письма
В алгоритме должен быть заполнен параметр с наименованием "ТемаПисьма" типа строка.
2.6.5. Алгоритм формирования текста письма
В алгоритме должен быть заполнен параметр с наименованием "ТекстПисьма" типа строка.
2.7. Функция проверки алгоритмов
При изменении алгоритмов формирования списка получателей, темы или тела письма в заголовке страницы - выводится картинка "кректик" это говорит о том, что алгоритм не проверен.

Если ваш алгоритм не содержит параметров, вы можете нажать на кнопку "Проверить алгоритм" на соответствующих закладках, если при заполнении алгоритма не найдено синтаксических ошибок, ключевые параметры (МассивКонтактов, ТемаПисьма, ТекстПисьма) заполнены и типы соответсвуют ожидаемым, алгоритм становится проверенным, а в заголовке страницы картинка меняется на "галочка".

На текущий момент проверка алгоритмов не является критичной для записи элемента справочника.

При открытии записанного элемента все алгоритмы считаются проверенными по умолчанию, даже если проверка не проходила и алгоритмы содержат ошибки.
2.8. Примеры
В качестве примеров в базе Холдинг (ERP 2.5) (Srvr="srv1c.office.local";Ref="ERP_work_2_5";) создано 3 рассылки, на основании текущих рассылок системы. Процедуры, на основании которых созданы рассылки, указаны в поле "Описание".
Во избежание случайных рассылок, у всех примеров установлен флаг "Не отправлять сообщение".

Во избежание случайных рассылок, у всех примеров установлен флаг "Не отправлять сообщение".
Рассылка 1. При ошибке чтения файла обмена.
Вид рассылки установлен как "Подписка на событие", имя подписки "СоздатьЭлектронноеПисьмоИсходящееОбОшибке".

В данной рассылке создается документ "Электронное письмо исходящее".

Алгоритм до формирования письма проверяет наличие уже созданного письма с аналогичной темой. Если письмо найдено, то взводится флаг "ОтказОтПисьма" и письмо не формируется
Список получаетелей формируется по алгоритму. В данном случае отсутсвуют параметры в алгоритме формирования списка получателей, соответсвенно допустимо проверить работу алгоритма "Проверить алгоритм"
Тема берется из созданного шаблона, с произвольным параметром "ИмяФайла"
Текст письма, так же формируется по алгоритму. В тексте письма присутствуют параметры "СтруктураПараметров.ИмяФайла" и "СтруктураПараметров.Объект.Ссылка" проверку выполнить невозможно.
Корректный код формирования рассылки:

Структура = Новый Структура;
Структура.Вставить("ИмяФайла", "Пример имя файла"); //Любая строка

Структура.Вставить("Объект", ДокументСсылка); //Любая ссылка на документ, нго в документе должно быть поле "Ответсвенный", т.к. оно используется в алгоритме.

ноЭлектроннаяРассылка.ВыполнитьРассылкуПоПодписке("СоздатьЭлектронноеПисьмоИсходящееОбОшибке", Структура);
Рассылка 2. После согласования заказа на перемещение
Вид рассылки установлен как "Подписка на событие", имя подписки "ПослеСогласованияЗаказаНаПеремещение".
В данной рассылке письмо создается по единому алгоритму "Общий алгоритм".

Создание и отправка письма прописывается напрямую в алгоритме.
Рассылка 3. После согласования заказа на внутреннее потребление
Вид рассылки установлен как "Подписка на событие", имя подписки "ПослеСогласованияЗаказаНаВнутреннееПотребление".
Рассылка аналогична Рассылке 2, но использует другие механизмы.

В данной рассылке НЕ создается документ "Электронное письмо исходящее".

В алгоритме до формирования письма происходит поиск адреса для отправки письма.

Если адрес найден, происходит добавление адреса в СтруктрураПараметров.

Если адрес не найден, письмо не отправляется.
В алгоритме заполнения списка контактов используется адрес, добавленный в СтруктураПараметров в алгоритме до формирования письма.
Тема письма формируется простым способом, без параметров.
Текст письма формируется по описанному алгоритму.
3. Добработка функционала
3.1. Добавление механизма изменения получателей ответа.
Если необходимо, чтобы при ответе на письмо ответ приходил на адреса, отличающиеся от отправителя, необходимо установить флаг "Получатель ответа отличается от отправителя", в этом случае появится закладка "Получатели ответа". Алгоритм заполнения закладки аналогичен закладке "Кому".
3.2 Расширенная настройка списка получателей
Если необходимо, чтобы при ответе на письмо ответ приходил на адреса, отличающиеся от отправителя, необходимо установить флаг "Получатель ответа отличается от отправителя", в этом случае появится закладка "Получатели ответа". Алгоритм заполнения закладки аналогичен закладке "Кому".

В данной ситуации некоторые пользователи могут отказаться от получения рассылки.
Для решения задачи необходимо:

1) Перейти на закладку "Кому", открыть закладку "Расширенная настройка получателей".

На данной закладке присутствуют следующие настройки.

Способ формирования расширенной настройки:

"Не использовать" - таблица не используется;
"Только указанным пользователям" - письмо будет приходить только пользователям, указанным в таблице;
"Исключить указанным пользователям" - письмо будет приходить всем пользователям, кроме указанных в таблице.
2) После заполнения таблицы необходимо в алгоритме до формирования письма провести проверку на вхождение пользователя в список для рассылки.

Код проверки:

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

где ПроверитьНеобходимостьОтправкиПисьмаПользователюПоРасширеннойНастройке(Рассылка, Пользователь) - функция возвращает "Истина", если пользователю надо отправлять письмо, "Ложь", если пользователю не надо отправлять письмо, Неопределено, если способ формирования расширенной настройки равен "Не использовать".

Параметры:

Рассылка - Ссылка на электронную рассылку, если используем функцию в алгоритме перед формированием письма, пишем - "ЭлектроннаяРассылка".

Пользователь - Проверяемый пользователь.

Если используем конструкцию как в примере, то необходимо на закладке "Кому"-"Кому" установить флаг "Расширенная настройка" и написать:

МассивКонтактов.Добавить(СтруктураПараметров.Получатель);
Клиент:
Какая стоимость?
Разработчик:
Внедрение под ключ 50 000 руб. (с НДС)
Эффективные бизнес процессы вместе с нами!
Эффективные бизнес процессы вместе с нами!


© 2024. Обращаем ваше внимание на то, что информация (включая цены и другие предложения/акции) размещенная на сайте носит исключительно информационно-справочный характер и не являются публичной офертой, определяемой положениями ст. 435 ГК РФ, ст. 437 ГК РФ.
ООО "КС ТЕХНОЛОДЖИ ". Все права защищены. ИНН/ОГРН 9728077742 /72801001

mail@ks-technology.ru | Политика конфиденциальности | Рассылка

Developed by .Riposte
Мы используем файлы cookie. Продолжив использование сайта, вы соглашаетесь с условиями Соглашения об использовании сайта