Автоматизация директ-маркетинга (на примере ООО "Дело Системы")
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
КонецЦикла;
КонецЕсли;
Если НайденноеВложение <> Неопределено Тогда
ЗаписатьВложениеЭлектронногоПисьма(Письмо.Ссылка, НайденноеВложение,МассивПодписей);
КонецЕсли;
КонецЦикла;
// Запишем идентификатор
ЗаписатьИдентификаторПолученногоПисьма(УчетнаяЗапись, Письмо.ИдентификаторНаСервере, Сообщение.ДатаПолучения);
ЗафиксироватьТранзакцию();
КонецПроцедуры
// Выполняет процедуру отправки и получения электронных писем.//
Процедура ПолучениеИОтправкаЭлектронныхПисем() Экспорт
// Получим список учетных записей для которых включено автополучение
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|УчетныеЗаписиЭлектроннойПочты.Ссылка
|ИЗ
|Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ЕстьОшибки = Ложь;
СтрОшибка = "";
Получено = 0;
ПолучитьПисьма(Выборка.Ссылка, ЕстьОшибки, СтрОшибка, Получено);
КонецЦикла;
Возврат;
КонецПроцедуры
Приложение 2. Программный код формы Адресная книга
// Переносит текущий контакт из списка "Контакты по предмету" в список "Получатели письма". //
&НаКлиенте
Процедура ДобавитьИзСпискаПредметовВыполнить()
ДобавитьПолучателяИзСпискаПоПредмету();
КонецПроцедуры
//Изменяет текущую группу получателей письма на группу "Кому".
//&НаКлиенте
Процедура ИзменитьГруппуКомуВыполнить()
ИзменитьГруппу("Кому");
КонецПроцедуры
//Изменяет текущую группу получателей письма на группу "Копии". //
&НаКлиенте
Процедура ИзменитьГруппуКопииВыполнить()
ИзменитьГруппу("Копии");
КонецПроцедуры
//Изменяет текущую группу получателей письма на группу "Скрытые".//
&НаКлиенте
Процедура ИзменитьГруппуСкрытыеВыполнить()
ИзменитьГруппу("Скрытые");
КонецПроцедуры
//Инициирует процесс поиска контактов. //
&НаКлиенте
Процедура КомандаНайтиВыполнить()
Если ПустаяСтрока(СтрокаПоиска) Тогда
Предупреждение(НСтр("ru = Не задана строка поиска!"));
Возврат;
КонецЕсли;
Результат = "";
НайденныеКонтакты.Очистить();
Если ВариантыПоиска = "ПоEmail" Тогда
НайтиПоEmail(Ложь);
ИначеЕсли ВариантыПоиска = "ПоДомену" Тогда
НайтиПоEmail(Истина);
ИначеЕсли ВариантыПоиска = "ПоСтроке" Тогда
Результат = ОсуществитьПоискКонтактовПоСтроке();
ИначеЕсли ВариантыПоиска = "НачинаетсяС" Тогда
НайтиПоНачалуНаименования();
КонецЕсли;
Если Не ПустаяСтрока(Результат) Тогда
Предупреждение(Результат);
КонецЕсли;
КонецПроцедуры
//Инициирует поиск контактов по адресу электронной почты текущей строки списка "Получатели письма".
//&НаКлиенте
Процедура НайтиПоАдресуВыполнить()
Элементы.Страницы.ТекущаяСтраница = Элементы.ПоискКонтактов;
НайденныеКонтакты.Очистить();
ВариантыПоиска = "ПоEmail";
текДанные = Элементы.ПолучателиПисьма.ТекущиеДанные;
Если текДанные = Неопределено Тогда
Возврат;
КонецЕсли;
СтрокаПоиска = текДанные.Адрес;
Если Не ПустаяСтрока(СтрокаПоиска) Тогда
НайтиПоEmail(Ложь);
КонецЕсли;
КонецПроцедуры
//Инициирует поиск контактов по представлению текущей строки списка "Получатели письма". //
&НаКлиенте
Процедура НайтиПоПредставлениюВыполнить()
Элементы.Страницы.ТекущаяСтраница = Элементы.ПоискКонтактов;
НайденныеКонтакты.Очистить();
ВариантыПоиска = "ПоСтроке";
текДанные = Элементы.ПолучателиПисьма.ТекущиеДанные;
Если текДанные = Неопределено Тогда
Возврат;
КонецЕсли;
СтрокаПоиска = текДанные.Представление;
Если Не ПустаяСтрока(СтрокаПоиска) Тогда
Результат = ОсуществитьПоискКонтактовПоСтроке();
Если Не ПустаяСтрока(Результат) Тогда
Предупреждение(Результат);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Осуществляет поиск всех адресов электронной почты контакта из списка "Получатели письма" и//предлагает пользователю сделать выбор, если у контакта более одного адреса электронной почты.
&НаКлиенте
Процедура УстановитьАдресКонтактаВыполнить()
текДанные = Элементы.ПолучателиПисьма.ТекущиеДанные;
Если текДанные = Неопределено ИЛИ Не ЗначениеЗаполнено(текДанные.Контакт) Тогда
Возврат;
КонецЕсли;
Результат = Взаимодействия. ПолучитьАдресаЭлектроннойПочтыКонтакта(текДанные.Контакт);
Если Результат.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Если Результат.Количество() = 1 Тогда
Адрес = Результат[0].АдресЭП;
Представление = Результат[0].Представление;
Иначе
спсВыбора = Новый СписокЗначений;
Номер = 0;
Для Каждого Элемент Из Результат Цикл
спсВыбора.Добавить(Номер, Элемент.ВидНаименование + ": " + Элемент.АдресЭП);
Номер = Номер + 1;
КонецЦикла;
выбрЭлемент = спсВыбора.ВыбратьЭлемент();
Если выбрЭлемент = Неопределено Тогда
Возврат;
КонецЕсли;
Индекс = выбрЭлемент.Значение;
Адрес = Результат[Индекс].АдресЭП;
Представление = Результат[Индекс].Представление;
КонецЕсли;
Поз = Найти(Представление, "<");
Представление = ?(Поз = 0, "", СокрЛП(Лев(Представление, Поз-1)));
текДанные.Адрес = Адрес;
Если Не ПустаяСтрока(Представление) Тогда
текДанные.Представление = Представление;
КонецЕсли