Почтовые рассылки

Автор работы: Пользователь скрыл имя, 13 Мая 2013 в 09:46, курсовая работа

Краткое описание

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

Содержание

Введение 3
1. Анализ и планирование требований к программному продукту 4
1.1 Анализ предметной области 4
1.2 Диаграмма функционального моделирования 11
1.2.1 Построение диаграммы верхнего уровня (Structured Analysisand Design Technique, SADT) 11
1.3 Диаграмма потоков данных (DataFlowDiagrams, DFD) 14
1.3.1 Словарь требований 15
1.3.2 Спецификации процессов 16
1.4 Анализ запросов пользователей 17
1.5Требования к аппаратному и программному обеспечению 18
2.Проектирование и разработка программного продукта. 19
2.1Проектирование и создание базы данных. 19
2.1.2 Выбор архитектуры программно-технологической реализации АИС и используемой СУБД 21
2.1.3 Создание базы данных 22
3.Тестирование программного продукта 43
3.1.1 Тестирование интеграции 43
3.2 Руководство пользователя 44
Заключение 46
Список используемых источников 47

Вложенные файлы: 1 файл

Введение ТРПП.docx

— 2.00 Мб (Скачать файл)

Рисунок 11 - Окно редактирования объекта конфигурации, вкладка «Основные».

Справочник «Отделы»

Выделяем в дереве объектов конфигурации ветвь «Справочники»  и нажимаем кнопку Добавить в командной панели окна конфигурации. Задаем имя справочника «Отделы».

Рисунок 12 - Окно редактирования объекта конфигурации, вкладка «Основные».

Документ «Накладная»

Добавим объект конфигурации Документ.  Зададим ему имя «Накладная». Добавим реквизиты «Контрагент», тип данных «СправочникСсылка.Контрагенты». Добавим реквизиты «Отдел», тип данных «СправочникСсылка.Отделы» (Рис.17).

Перейдем на закладку Данные и создадим реквизиты:

 

Рисунок 13 - Окно редактирования объекта конфигурации, вкладка «Данные».

После этого добавили в документ табличную часть с именем Товары.

Создаем реквизиты табличной части Номенклатура, тип данных «СправочникСсылка.Номенклатура

На вкладке «Прочее», щелкаем  кнопку  «Модуль объекта». В открывшемся  окне прописываем код (Листинг1,2).

 

Рисунок 14 - Окно редактирования объекта конфигурации, вкладка «Прочее».

 

Рисунок 15 - Форма документа «Накладная».

Листинг 1 – Процедура «ОбработкаПроведения»

Процедура ОбработкаПроведения(Отказ, РежимПроведения)

Для каждого Строка ИЗ Товары Цикл

Объект=Строка.Номенклатура.ПолучитьОбъект();

Объект.ЦенаЗакупочная=Строка.ЦенаЗакупочная;

Объект.ЦенаРозничная=Строка.ЦенаРозничная;

Объект.Записать();

КонецЦикла;

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

Процедура Рассчитать(Команда)

&НаКлиенте

Процедура Рассчитать(Команда)

// Вставить содержимое  обработчика.

СтрокаТабличнойЧасти=Элементы.Товары.ТекущиеДанные;

СтрокаТабличнойЧасти.ЦенаРозничная=(СтрокаТабличнойЧасти.ЦенаЗакупочная*(100+Объект.ПроцентНаценки))/100;

СтрокаТабличнойЧасти.СуммаРозничная=СтрокаТабличнойЧасти.ЦенаРозничная*СтрокаТабличнойЧасти.Количество;

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

&НаКлиенте

Процедура ТоварыНоменклатураПриИзменении(Элемент)

// Вставить содержимое  обработчика.

ДанныеСтрокаТаблицы = Новый Структура("Номенклатура, Количество, ЦенаЗакупочная, СуммаЗакупочная, ЦенаРозничная,  СуммаРозничная");

ЗаполнитьЗначенияСвойств(ДанныеСтрокаТаблицы, Элементы.Товары.ТекущиеДанные)

ТоварыНоменклатураПриИзмененииНаСервере(ДанныеСтрокаТаблицы);

ЗаполнитьЗначенияСвойств(Элементы.Товары.ТекущиеДанные, ДанныеСтрокаТаблицы);  

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

&НаКлиенте

Процедура ТоварыКоличествоПриИзменении(Элемент)

// Вставить содержимое  обработчика.

Строка=Элементы.Товары.ТекущиеДанные;

Строка.СуммаЗакупочная=Строка.ЦенаЗакупочная*Строка.Количество;  

Строка.СуммаРозничная=Строка.ЦенаРозничная*Строка.Количество;

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

&НаСервереБезКонтекста

Процедура ТоварыНоменклатураПриИзмененииНаСервере(Строка)

Строка.ЦенаЗакупочная = Строка.Номенклатура.ЦенаЗакупочная;

Строка.ЦенаРозничная = Строка.Номенклатура.ЦенаРозничная;

Строка.СуммаЗакупочная=Строка.ЦенаЗакупочная*Строка.Количество;  

Строка.СуммаРозничная=Строка.ЦенаРозничная*Строка.Количество;  

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

&НаКлиенте

Процедура ТоварыЦенаРозничнаяПриИзменении(Элемент)

// Вставить содержимое  обработчика.

СтрокаТаб=Элементы.Товары.ТекущиеДанные;

СтрокаТаб.СуммаРозничная=СтрокаТаб.ЦенаРозничная*СтрокаТаб.Количество;

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

&НаКлиенте

Процедура ТоварыЦенаЗакупочнаяПриИзменении(Элемент)

// Вставить содержимое  обработчика.

СтрокаТаб=Элементы.Товары.ТекущиеДанные; 

СтрокаТаб.СуммаЗакупочная=СтрокаТаб.ЦенаЗакупочная*СтрокаТаб.Количество;

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

&НаКлиенте

Процедура ТоварыСуммаЗакупочнаяПриИзменении(Элемент)

// Вставить содержимое  обработчика.

СтрокаТаб=Элементы.Товары.ТекущиеДанные;

СтрокаТаб.ЦенаЗакупочная=СтрокаТаб.СуммаЗакупочная/СтрокаТаб.Количество;

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

&НаКлиенте

Процедура ТоварыСуммаРозничнаяПриИзменении(Элемент)

// Вставить содержимое  обработчика.

СтрокаТаб=Элементы.Товары.ТекущиеДанные;

СтрокаТаб.ЦенаРозничная=СтрокаТаб.СуммаРозничная/СтрокаТаб.Количество;

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

Печать Документа  «Накладная»

Рисунок 16 - Форма документа «Накладная».

Листинг 2 – Процедура «Печать»

Процедура Печать(ТабДок, Ссылка) Экспорт

//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)

Макет = Документы.Накладная.ПолучитьМакет("Печать");

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

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

"ВЫБРАТЬ

| Накладная.Номер,

| Накладная.Дата,

| Накладная.Отдел,

| Накладная.Товары.(

|  НомерСтроки,                                 

|  Номенклатура,

|  Количество,

|  ЦенаЗакупочная,

|  СуммаЗакупочная,

|  ЦенаРозничная,

|  СуммаРозничная

| )

|ИЗ

| Документ.Накладная КАК Накладная

|ГДЕ

| Накладная.Ссылка В (&Ссылка)";

Запрос.Параметры.Вставить("Ссылка", Ссылка);

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

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

Шапка = Макет.ПолучитьОбласть("Шапка");

ОбластьТоварыШапка = Макет.ПолучитьОбласть("ТоварыШапка");

ОбластьТовары = Макет.ПолучитьОбласть("Товары");

ОбластьДанные = Макет.ПолучитьОбласть("Данные");

ТабДок.Очистить();

ОбластьИтог=Макет.ПолучитьОбласть("Всего");

ВставлятьРазделительСтраниц = Ложь;

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

Если ВставлятьРазделительСтраниц Тогда

ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

КонецЕсли;

//ОбластьЗаголовок.Параметры.Заполнить(Выборка);

//ОбластьЗаголовок.Параметры.Номер= Выборка.Номер;

//ОбластьЗаголовок.Параметры.Заполнить(Выборка);

ОбластьЗаголовок.Параметры.ТекстЗаголовка="Накладная № "+Формат(число(Выборка.Номер),"ЧГ=0")+" от "+Формат(Выборка.Дата,"ДЛФ=ДД");

ТабДок.Вывести(ОбластьЗаголовок);

Шапка.Параметры.Заполнить(Выборка);

ТабДок.Вывести(Шапка, Выборка.Уровень());

ТабДок.Вывести(ОбластьТоварыШапка);

ВыборкаТовары = Выборка.Товары.Выбрать();

СуммаИтог=0;

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

ОбластьТовары.Параметры.Заполнить(ВыборкаТовары);

ТабДок.Вывести(ОбластьТовары, ВыборкаТовары.Уровень());

СуммаИтог=СуммаИтог+ВыборкаТовары.СуммаРозничная;

КонецЦикла;

  ОбластьИтог.Параметры.ВсегоПоДокументу=СуммаИтог;

  ТабДок.Вывести(ОбластьИтог);

ТабДок.Вывести(ОбластьДанные);

ВставлятьРазделительСтраниц = Истина;

КонецЦикла;

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

Добавление в  базу данный Почта

Обработка – «Поиск Адресов»

Выбираем в дереве конфигурации объект «Обработки», щелкаем «Добавить» в командной панели. В открывшемся  окне редактирования вводим имя обработки  «ПоискАдресов».

Рисунок 17 - Окно редактирования объекта конфигурации, вкладка «Данные»

Рисунок 18 – Форма обработки «ПоисАдресов»

ОбщийМодуль – «ОбменССайтомКлиент»

Выбираем в дереве конфигурации объект «Общие Модули», щелкаем «Добавить» в командной панели. В открывшемся окне свойств вводим имя «ОбменССайтомКлиент».

Листинг 3 – Функция «СайтЗагрузить»

Функция СайтЗагрузить(СтрАдр)  Экспорт

   СтрКода= ОбменССайтомСервер.ОбработатьСсылкуСайта(СтрАдр);

    Возврат(СтрКода);  

  КонецФункции

ОбщийМодуль – «ОбменССайтомСервер»

Выбираем в дереве конфигурации объект «Общие Модули», щелкаем «Добавить» в командной панели. В открывшемся окне свойств вводим имя «ОбменССайтомСервер».

Листинг 4 – Функции

Функция ПривестиСтрокуКЧислу(ЧислоСтрокой, ВозвращатьНеопределено = Ложь)

ОписаниеТипаЧисла = Новый ОписаниеТипов("Число");

ЗначениеЧисла = ОписаниеТипаЧисла.ПривестиЗначение(ЧислоСтрокой);

Если ВозвращатьНеопределено И (ЗначениеЧисла = 0) Тогда

Стр = Строка(ЧислоСтрокой);

Если Стр = "" Тогда

Возврат Неопределено;

КонецЕсли;

Стр = СтрЗаменить(СокрЛП(Стр), "0", "");

Если (Стр <> "") И (Стр <> ".") И (Стр <> ",") Тогда

Возврат Неопределено;

КонецЕсли;

КонецЕсли;

Возврат ЗначениеЧисла; 

КонецФункции

Функция РазобратьАдресСайта(Знач АдресСайта)

АдресСайта = СокрЛП(АдресСайта);

HTTPСервер   = "";

HTTPПорт   = 0;

HTTPАдресСкрипта = "";

Если ЗначениеЗаполнено(АдресСайта) Тогда

АдресСайта = СтрЗаменить(АдресСайта, "\", "/");

АдресСайта = СтрЗаменить(АдресСайта, " ", "");

АдресСайта = СтрЗаменить(АдресСайта, "http://", "");

ПозицияСлэша = Найти(АдресСайта, "/");

Если ПозицияСлэша > 0 Тогда

HTTPСервер    = Лев(АдресСайта, ПозицияСлэша - 1); 

HTTPАдресСкрипта = Прав(АдресСайта, СтрДлина(АдресСайта) - ПозицияСлэша);

Иначе 

HTTPСервер    = АдресСайта; 

HTTPАдресСкрипта = "";

КонецЕсли; 

ПозицияДвоеточия = Найти(HTTPСервер, ":");

Если ПозицияДвоеточия > 0 Тогда

HTTPСерверСПортом = HTTPСервер;

HTTPСервер    = Лев(HTTPСерверСПортом, ПозицияДвоеточия - 1);

HTTPПортСтрока    = Прав(HTTPСерверСПортом, СтрДлина(HTTPСерверСПортом) - ПозицияДвоеточия);

Иначе

HTTPПортСтрока = "0";

КонецЕсли;

HTTPПорт = ПривестиСтрокуКЧислу(HTTPПортСтрока);

КонецЕсли;

СтруктураРезультата = Новый Структура;

СтруктураРезультата.Вставить("HTTPСервер"   , HTTPСервер);

СтруктураРезультата.Вставить("HTTPПорт"    , HTTPПорт);

СтруктураРезультата.Вставить("HTTPАдресСкрипта", HTTPАдресСкрипта);

Возврат СтруктураРезультата;

КонецФункции

Функция ЗагрузитьССайта(СсылкаНаСайт) Экспорт

СтруктураАдреса = РазобратьАдресСайта(СсылкаНаСайт);

АдресСайта = СтруктураАдреса.HTTPСервер;

ПутьНаСайте = СтруктураАдреса.HTTPАдресСкрипта;

ПроксиСервер = Неопределено;

//Грузим сам  ХТМЛ

ИмяВременногоФайла = ПолучитьИмяВременногоФайла("html"); 

HTTPСервис = Новый HTTPСоединение(АдресСайта,,,,ПроксиСервер,Ложь);

ПравильностьВыполнения = Истина;

Попытка

HTTPСервис.Получить(ПутьНаСайте, ИмяВременногоФайла);

Информация о работе Почтовые рассылки