Автор работы: Пользователь скрыл имя, 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
Рисунок 11 - Окно редактирования объекта конфигурации, вкладка «Основные».
Справочник «Отделы»
Выделяем в дереве объектов конфигурации ветвь «Справочники» и нажимаем кнопку Добавить в командной панели окна конфигурации. Задаем имя справочника «Отделы».
Рисунок 12 - Окно редактирования объекта конфигурации, вкладка «Основные».
Документ «Накладная»
Добавим объект конфигурации
Документ. Зададим ему имя «Накладная».
Добавим реквизиты «Контрагент», тип данных
«СправочникСсылка.Контрагенты»
Перейдем на закладку Данные и создадим реквизиты:
Рисунок 13 - Окно редактирования объекта конфигурации, вкладка «Данные».
После этого добавили в документ табличную часть с именем Товары.
Создаем реквизиты табличной части Номенклатура, тип данных «СправочникСсылка.Номенклатура
На вкладке «Прочее», щелкаем кнопку «Модуль объекта». В открывшемся окне прописываем код (Листинг1,2).
Рисунок 14 - Окно редактирования объекта конфигурации, вкладка «Прочее».
Рисунок 15 - Форма документа «Накладная».
Листинг 1 – Процедура «ОбработкаПроведения»
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Для каждого Строка ИЗ Товары Цикл
Объект=Строка.Номенклатура.
Объект.ЦенаЗакупочная=Строка.
Объект.ЦенаРозничная=Строка.
Объект.Записать();
КонецЦикла;
КонецПроцедуры
Процедура Рассчитать(Команда)
&НаКлиенте
Процедура Рассчитать(Команда)
// Вставить содержимое обработчика.
СтрокаТабличнойЧасти=Элементы.
СтрокаТабличнойЧасти.
СтрокаТабличнойЧасти.
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении
// Вставить содержимое обработчика.
ДанныеСтрокаТаблицы = Новый Структура("Номенклатура, Количество, ЦенаЗакупочная, СуммаЗакупочная, ЦенаРозничная, СуммаРозничная");
ЗаполнитьЗначенияСвойств(
ТоварыНоменклатураПриИзменении
ЗаполнитьЗначенияСвойств(
КонецПроцедуры
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(
// Вставить содержимое обработчика.
Строка=Элементы.Товары.
Строка.СуммаЗакупочная=Строка.
Строка.СуммаРозничная=Строка.
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ТоварыНоменклатураПриИзменении
Строка.ЦенаЗакупочная
= Строка.Номенклатура.
Строка.ЦенаРозничная
= Строка.Номенклатура.
Строка.СуммаЗакупочная=Строка.
Строка.СуммаРозничная=Строка.
КонецПроцедуры
&НаКлиенте
Процедура ТоварыЦенаРозничнаяПриИзменени
// Вставить содержимое обработчика.
СтрокаТаб=Элементы.Товары.
СтрокаТаб.СуммаРозничная=
КонецПроцедуры
&НаКлиенте
Процедура ТоварыЦенаЗакупочнаяПриИзменен
// Вставить содержимое обработчика.
СтрокаТаб=Элементы.Товары.
СтрокаТаб.СуммаЗакупочная=
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСуммаЗакупочнаяПриИзмене
// Вставить содержимое обработчика.
СтрокаТаб=Элементы.Товары.
СтрокаТаб.ЦенаЗакупочная=
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСуммаРозничнаяПриИзменен
// Вставить содержимое обработчика.
СтрокаТаб=Элементы.Товары.
СтрокаТаб.ЦенаРозничная=
КонецПроцедуры
Печать Документа «Накладная»
Рисунок 16 - Форма документа «Накладная».
Листинг 2 – Процедура «Печать»
Процедура Печать(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(
Макет = Документы.Накладная.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Накладная.Номер,
| Накладная.Дата,
| Накладная.Отдел,
| Накладная.Товары.(
| НомерСтроки,
| Номенклатура,
| Количество,
| ЦенаЗакупочная,
| СуммаЗакупочная,
| ЦенаРозничная,
| СуммаРозничная
| )
|ИЗ
| Документ.Накладная КАК Накладная
|ГДЕ
| Накладная.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("
Выборка = Запрос.Выполнить().Выбрать();
ОбластьЗаголовок
= Макет.ПолучитьОбласть("
Шапка = Макет.ПолучитьОбласть("Шапка")
ОбластьТоварыШапка
= Макет.ПолучитьОбласть("
ОбластьТовары =
Макет.ПолучитьОбласть("Товары"
ОбластьДанные =
Макет.ПолучитьОбласть("Данные"
ТабДок.Очистить();
ОбластьИтог=Макет.
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если
ТабДок.
КонецЕсли;
//ОбластьЗаголовок.Параметры.
//ОбластьЗаголовок.Параметры.
//ОбластьЗаголовок.Параметры.
ОбластьЗаголовок.Параметры.
ТабДок.Вывести(
Шапка.Параметры.Заполнить(
ТабДок.Вывести(Шапка, Выборка.Уровень());
ТабДок.Вывести(
ВыборкаТовары = Выборка.Товары.Выбрать();
СуммаИтог=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Сервис.Получить(