Автоматизация директ-маркетинга (на примере ООО "Дело Системы")

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



КонецЦикла;

КонецЕсли;

Если НайденноеВложение <> Неопределено Тогда

ЗаписатьВложениеЭлектронногоПисьма(Письмо.Ссылка, НайденноеВложение,МассивПодписей);

КонецЕсли;

КонецЦикла;

// Запишем идентификатор

ЗаписатьИдентификаторПолученногоПисьма(УчетнаяЗапись, Письмо.ИдентификаторНаСервере, Сообщение.ДатаПолучения);

ЗафиксироватьТранзакцию();

КонецПроцедуры

// Выполняет процедуру отправки и получения электронных писем.//

Процедура ПолучениеИОтправкаЭлектронныхПисем() Экспорт

// Получим список учетных записей для которых включено автополучение

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

|УчетныеЗаписиЭлектроннойПочты.Ссылка

|ИЗ

|Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

ЕстьОшибки = Ложь;

СтрОшибка = "";

Получено = 0;

ПолучитьПисьма(Выборка.Ссылка, ЕстьОшибки, СтрОшибка, Получено);

КонецЦикла;

Возврат;

КонецПроцедуры

Приложение 2. Программный код формы Адресная книга

// Переносит текущий контакт из списка "Контакты по предмету" в список "Получатели письма". //

&НаКлиенте

Процедура ДобавитьИзСпискаПредметовВыполнить()

ДобавитьПолучателяИзСпискаПоПредмету();

КонецПроцедуры

//Изменяет текущую группу получателей письма на группу "Кому".

//&НаКлиенте

Процедура ИзменитьГруппуКомуВыполнить()

ИзменитьГруппу("Кому");

КонецПроцедуры

//Изменяет текущую группу получателей письма на группу "Копии". //

&НаКлиенте

Процедура ИзменитьГруппуКопииВыполнить()

ИзменитьГруппу("Копии");

КонецПроцедуры

//Изменяет текущую группу получателей письма на группу "Скрытые".//

&НаКлиенте

Процедура ИзменитьГруппуСкрытыеВыполнить()

ИзменитьГруппу("Скрытые");

КонецПроцедуры

//Инициирует процесс поиска контактов. //

&НаКлиенте

Процедура КомандаНайтиВыполнить()

Если ПустаяСтрока(СтрокаПоиска) Тогда

Предупреждение(НСтр("ru = Не задана строка поиска!"));

Возврат;

КонецЕсли;

Результат = "";

НайденныеКонтакты.Очистить();

Если ВариантыПоиска = "ПоEmail" Тогда

НайтиПоEmail(Ложь);

ИначеЕсли ВариантыПоиска = "ПоДомену" Тогда

НайтиПоEmail(Истина);

ИначеЕсли ВариантыПоиска = "ПоСтроке" Тогда

Результат = ОсуществитьПоискКонтактовПоСтроке();

ИначеЕсли ВариантыПоиска = "НачинаетсяС" Тогда

НайтиПоНачалуНаименования();

КонецЕсли;

Если Не ПустаяСтрока(Результат) Тогда

Предупреждение(Результат);

КонецЕсли;

КонецПроцедуры

//Инициирует поиск контактов по адресу электронной почты текущей строки списка "Получатели письма".

//&НаКлиенте

Процедура НайтиПоАдресуВыполнить()

Элементы.Страницы.ТекущаяСтраница = Элементы.ПоискКонтактов;

НайденныеКонтакты.Очистить();

ВариантыПоиска = "ПоEmail";

текДанные = Элементы.ПолучателиПисьма.ТекущиеДанные;

Если текДанные = Неопределено Тогда

Возврат;

КонецЕсли;

СтрокаПоиска = текДанные.Адрес;

Если Не ПустаяСтрока(СтрокаПоиска) Тогда

НайтиПоEmail(Ложь);

КонецЕсли;

КонецПроцедуры

//Инициирует поиск контактов по представлению текущей строки списка "Получатели письма". //

&НаКлиенте

Процедура НайтиПоПредставлениюВыполнить()

Элементы.Страницы.ТекущаяСтраница = Элементы.ПоискКонтактов;

НайденныеКонтакты.Очистить();

ВариантыПоиска = "ПоСтроке";

текДанные = Элементы.ПолучателиПисьма.ТекущиеДанные;

Если текДанные = Неопределено Тогда

Возврат;

КонецЕсли;

СтрокаПоиска = текДанные.Представление;

Если Не ПустаяСтрока(СтрокаПоиска) Тогда

Результат = ОсуществитьПоискКонтактовПоСтроке();

Если Не ПустаяСтрока(Результат) Тогда

Предупреждение(Результат);

КонецЕсли;

КонецЕсли;

КонецПроцедуры

//Осуществляет поиск всех адресов электронной почты контакта из списка "Получатели письма" и//предлагает пользователю сделать выбор, если у контакта более одного адреса электронной почты.

&НаКлиенте

Процедура УстановитьАдресКонтактаВыполнить()

текДанные = Элементы.ПолучателиПисьма.ТекущиеДанные;

Если текДанные = Неопределено ИЛИ Не ЗначениеЗаполнено(текДанные.Контакт) Тогда

Возврат;

КонецЕсли;

Результат = Взаимодействия. ПолучитьАдресаЭлектроннойПочтыКонтакта(текДанные.Контакт);

Если Результат.Количество() = 0 Тогда

Возврат;

КонецЕсли;

Если Результат.Количество() = 1 Тогда

Адрес = Результат[0].АдресЭП;

Представление = Результат[0].Представление;

Иначе

спсВыбора = Новый СписокЗначений;

Номер = 0;

Для Каждого Элемент Из Результат Цикл

спсВыбора.Добавить(Номер, Элемент.ВидНаименование + ": " + Элемент.АдресЭП);

Номер = Номер + 1;

КонецЦикла;

выбрЭлемент = спсВыбора.ВыбратьЭлемент();

Если выбрЭлемент = Неопределено Тогда

Возврат;

КонецЕсли;

Индекс = выбрЭлемент.Значение;

Адрес = Результат[Индекс].АдресЭП;

Представление = Результат[Индекс].Представление;

КонецЕсли;

Поз = Найти(Представление, "<");

Представление = ?(Поз = 0, "", СокрЛП(Лев(Представление, Поз-1)));

текДанные.Адрес = Адрес;

Если Не ПустаяСтрока(Представление) Тогда

текДанные.Представление = Представление;

КонецЕсли