Диплом: Автоматизация и обеспечение информационной безопасности процесса внутрикорпоративного взаимодействия сотрудников компании ООО \"Теком\"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
73
Заключение
В результатах проведенной работы была разработана система для
компании.
При разработке системы, как и было запланировано, сохранились
устоявшиеся принципы работы, отлаженные бизнес-процессы компании и
были соблюдены все потребности руководителей организации.
Использовались языки программирования 1C, SQL.
В итоге, основная цель организации: разработка CRM-системы,
программного комплекса, для учета взаимодействия компании с клиентами, в
различных субъектах была достигнута, путем решением следующих задач:
создание универсальной информационной модели
взаимодействия компании и клиента;
оптимизация части бизнес-процессов компании;
создание системы отчетности для принятия оперативных
решений.
По мимо основной цели, после внедрения системы, руководители
компании достигли и следующие:
настройка и отладка бизнес-процессов;
прогнозируемость, прозрачность и управляемость в продажах;
снижение зависимости от «человеческого фактора»;
сохранность базы клиентов;
рост оценочной стоимости предприятия;
создание системы отчетности.
Классифицировать по разным типам можно так:
классификация по назначению: управление клиентским
обслуживанием и call-центрами;
по уровню обработки информации: операционный CRM;
по происхождению: отечественный;
по функциям: в основном управление контактами;
по стоимости проекта: бюджетная версия.
74
Внедрение системы в компанию проходило поэтапно, тестировалась на
нескольких рабочих местах, дорабатывалась, изучалась, дальше
эксплуатировалась на все рабочие места и после полностью внедрилась в
бизнес-процессы компании.
Дальнейшие действия компании базируются на поддержке процесса
работы CRM-системы, разработка нововведении, как показывает практика -
доработка неисправностей и обновления ее клиента.
75
Используемые источники литературы
1. Андерсен А., Груде К., Хауг Т. Сфокусированное управление проектом.
– М.: Гранд-Фаир, 2016, - 296 с.
2. Баронов В.В., Калянов Г.Н., Попов Ю.И., Рыбников А.И., Титовский
И.Н. Автоматизация управления предприятием. - М.: ИНФРА-М, 2017, -239с.
3. Блэк Р. Управление проектами при помощи Microsoft Project 2015. – М.:
Аст, 2017. – 281с.
4. Богданов В. Управление проектами. Корпоративная система шаг за
шагом, М.: Инфра-М, 2017. – 248 с.
5. Грашина М.Н., Дункан В.Р. Основы автоматизации информационной
безопасности процесса внутрикорпоративного взаимодействия сотрудников.
М.: Бином, 2017. – 240 с.
6. Дипроуз Д. Управление проектами. – М.:Эксмо, 2017. – 240 с.
7. Кемп С. Управление проектами без мистики – М.: Гиппо, 2017. – 372 с.
8. Костров А.В. Основы информационного менеджмента: Учебное
пособие. М.: Финансы и статистика, 2017. - 336 е.: ил.
9. Каленик А. И. Использование новых возможностей Microsoft SQL Server
2012. - М.: «Русская редакция», 2017. - 334 с.
10.Когаловский М.Р. Энциклопедия технологий баз данных. М.: Финансы и
статистика, 2017. 800 c.
11.Кодд Е.Ф. Перевод: Когаловский М.Р. Реляционная модель данных для
больших совместно используемых банков данных. М.: Финансы и статистика, 2016
c.48
12.Полякова Л. Н. Основы SQL: Курс лекций. Учебное пособие. - М.:
Интернет - университет информационных технологий, 2016. - 368 с.
13.Роберт Дж. Мюллер. Реляционные базы данных. - М.: Лори, 2016. - 420 с.
14. Райордан Ребекка М. Основы реляционных баз данных. Базовый курс:
Теория и практика. - М.: Русская Редакция, 2016 – 384 с.
15. Райордан Ребекка М. Аналитические системы транзакций. Базовый курс:
Теория и практика. - М.: Русская Редакция, 2017 – 400 с.
16.И. Ф. Астахов. СУБД: Язык SQL в примерах и задачах. 2017 г.
76
ПРИЛОЖЕНИЯ
Программный код
// префикс номера документа
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
Префикс = Обмен.ПолучитьПрефиксНомера();
КонецПроцедуры
// при вводе нового документа
Процедура ОбработкаЗаполнения(Основание, Значение)
ОбщийСрв.ПриВводеНовойЗадачи(ЭтотОбъект); // заполнить все
реквизиты по-умолчанию для новой задачи
// если вводится на основании Контрагента
Если ТипЗнч(Основание) = Тип("СправочникСсылка.Контрагенты")
Тогда
Контрагент = Основание; // основание
- это контрагент
Отвественный = Основание.Отвественный; // отвественный по
задаче - ответсвенный по контрагенту
Исполнитель = Исполнители.Добавить(); // первый
исполнитель -
Исполнитель.Исполнитель = Основание.Отвественный;
Исполнитель.Процент = 100;
КонецЕсли;
// если вводится на основании другой задачи
Если ТипЗнч(Основание) = Тип("ДокументСсылка.Задача") Тогда
ОбщийСрв.ПриВводеНовойЗадачи(ЭтотОбъект, Основание);
ДокОснование = Документы.Задача.ПустаяСсылка();
КонецЕсли;
Если ТипЗнч(Основание) = Тип("Структура") Тогда //если вводлится
новый из списка с установленным отбором
// то данные заполняются автоматически из отбора "Заполнять из
данных заполнения"
КонецЕсли
КонецПроцедуры
// если копирование - то переопределить логику копирования
Процедура ПриКопировании(ОбъектКопирования)
77
Автор = ПараметрыСеанса.глПользователь; // автор -
текущий пользователь
Отвественный = ПараметрыСеанса.глПользователь; // автор - текущий
пользователь
Статус = Справочники.Статусы.Новая; // новая
задача - статус Новая
ДокОснование = ОбъектКопирования.Ссылка; // Док основание - та
задача из котрой скопировали
Переписка.Очистить();
Исполнители.Очистить();
Подзадачи.Очистить();
Номенклатура.Очистить();
КонецПроцедуры
// перед удалением документа
Процедура ПередУдалением(Отказ)
// проверка на закрытый период
Если ОбщийСрв.ВЗакрытомПериоде(ЭтотОбъект) Тогда
Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект) +
"Находится в закрытом периоде. Удаление невозможно");
Отказ = Истина;
Возврат;
КонецЕсли;
// проверка Проведена
Если (ЭтотОбъект.Проведен И
Константы.ЗапретПроведенных.Получить()) И Не
ПараметрыСеанса.глЗаписьВедетИсполнитель Тогда
Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект) + "Уже
выполнена. Удаление невозможно");
Отказ = Истина;
Возврат;
КонецЕсли;
// проверка прав
Если Не ОбщийСрв.ПроверкаПрав(Автор,
ПараметрыСеанса.глПользователь) Тогда
Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект) + "Нет
прав удалять чужой документ");
Отказ = Истина;
Возврат;
78
КонецЕсли;
// удалить вхождение этого документа в табличную часть Подзадачи
любых остальных документов
ТЗРодителей = СформироватьСписокРодителей(ЭтотОбъект.Ссылка); //
сформировать ТЗ всех документов, в которые входит удаляемая
Для Каждого СтрокаРодитель Из ТЗРодителей Цикл // для каждого
родителя
УдалитьПодзадачу(СтрокаРодитель.Ссылка,
ЭтотОбъект.Ссылка); // удалить текущую(удяляемую) задачу из родителя
КонецЦикла
КонецПроцедуры
// удалить ЗадачаРебенок из табличной части Подзадачи у ЗадачаРодитель
Процедура УдалитьПодзадачу(ЗадачаРодитель, ЗадачаРебенок)
Если ЗадачаРодитель.Пустая() Тогда
Возврат;
КонецЕсли;
ЗадачаРодительОбъект = ЗадачаРодитель.ПолучитьОбъект();
СтруктураОтбора = Новый Структура("Подзадача", ЗадачаРебенок);
МассивУдаляемыхСтрок =
ЗадачаРодительОбъект.Подзадачи.НайтиСтроки(СтруктураОтбора);
Для Каждого ЭлементМассива Из МассивУдаляемыхСтрок Цикл
ЗадачаРодительОбъект.Подзадачи.Удалить(ЭлементМассива);
КонецЦикла;
ЗадачаРодительОбъект.Записать();
КонецПроцедуры
// сформироват ТЗ документов, в которые ПодЗадачаРебенок входит в таб
часть Подзадачи ( вявном виде, не через рекурсию)
Функция СформироватьСписокРодителей(ПодЗадачаРебенок)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Задачи.Ссылка
|ИЗ
| Документ.Задача.Подзадачи КАК ЗадачаПодзадачи
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.Задача КАК Задачи
| ПО ЗадачаПодзадачи.Ссылка = Задачи.Ссылка
79
|ГДЕ
| ЗадачаПодзадачи.Подзадача = &ПодзадачаРебенок
|";
Запрос.УстановитьПараметр("ПодзадачаРебенок", ПодзадачаРебенок);
РезультатЗапроса = Запрос.Выполнить();
ТЗ = РезультатЗапроса.Выгрузить();
Возврат ТЗ;
КонецФункции
// провести все непроведенные подзадачи из ЗадачаОбъект и провести ее саму
Процедура ВыполнитьВсеПодзадачиПринудительно(ЗадачаОбъект)
Для Каждого ТекСтрокаПодзадача Из ЗадачаОбъект.Подзадачи Цикл //
по всем строкам таб. части Подзадачи
Если ТекСтрокаПодзадача.Подзадача.Проведен <> Истина Тогда
// если не была проведена
ВыполнитьВсеПодзадачиПринудительно(ТекСтрокаПодзадача.Подзада
ча.ПолучитьОбъект()); // провести все ее подзадачи
ТекСтрокаПодзадача.Подзадача.ПолучитьОбъект().Записать(РежимЗап
исиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный); //
провести ее саму
Сообщить("Выполнена подзадача " +
ОбщийСрв.ПредставлениеЗадачи(ТекСтрокаПодзадача.Подзадача));
КонецЕсли;
КонецЦикла;
КонецПроцедуры
// проверить, есть ли среди ТЧ Исполнители записи без отметки исполнения
Функция ПроверитьИсполнение()
Исполненно = Истина;
Для Каждого ТекСтрокаИсполнитель Из Исполнители Цикл
Если ТекСтрокаИсполнитель.ДатаИсполнения =
Дата(01,01,0001,00,00,00) Тогда
Сообщить("Задача не может быть выполнена, так как
исполнитель \" + ТекСтрокаИсполнитель.Исполнитель +
"\ не проставил отметку исполнения");
80
Исполненно = Ложь;
КонецЕсли;
Если Не ТекСтрокаИсполнитель.РезультатИсполнения.Пустая()
Тогда
Если Не
ТекСтрокаИсполнитель.РезультатИсполнения.Успех Тогда
Сообщить("Задача не может быть выполнена, так как
исполнитель \" + ТекСтрокаИсполнитель.Исполнитель +
"\ проставил отрицательную отметку
исполнения");
Исполненно = Ложь;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Исполненно;
КонецФункции
// действия при проведении документа
Функция ПриПроведении(Отказ)
// проверка того, что все исполнители проставили отметку об
исполнении
Если Константы.ПроверятьИсполнениеПриВыполнении.Получить()
Тогда // общая константа
Если ОбщийСрв.ПолучитьКонстанту(ТекущаяДата(),
ОбщийСрв.ПолучитьГлПользователь(),
"ПроверятьИсполнениеПриВыполнении") Тогда // настройка пользователя
Если Не ПроверитьИсполнение() Тогда
Отказ = Истина;
Возврат Ложь;
КонецЕсли;
КонецЕсли;
КонецЕсли;
// проверка того, что все подзадачи проведены
ЕстьНеВыполненыеПодзадачи = Ложь;
Для Каждого ТекСтрокаПодзадача Из Подзадачи Цикл
Если ТекСтрокаПодзадача.Подзадача.Проведен <> Истина Тогда
Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект) +
" имеет невыполненные подзадачи");
ЕстьНеВыполненыеПодзадачи = Истина;
КонецЕсли;
КонецЦикла;
81
Если ЕстьНеВыполненыеПодзадачи = Истина Тогда
Если
(Константы.ПринудительноВыполнятьПодзадачи.Получить()) И // общая
константа
(ОбщийСрв.ПолучитьКонстанту(ТекущаяДата(),
ОбщийСрв.ПолучитьГлПользователь(),
"ПринудительноВыполнятьПодзадачи")) Тогда // настройка пользователя
Сообщить("Подзадачи будут выполнены
принудительно...");
ВыполнитьВсеПодзадачиПринудительно(ЭтотОбъект); //
автоматически провести все подзадачи данной задачи
Иначе // нельзя автоматически выполнять подзадачи
Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект) +
" не может быть выполнена");
Отказ = Истина;
Возврат Ложь;
КонецЕсли;
КонецЕсли;
Возврат Истина
КонецФункции
// обработка проведения
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Если Не ПриПроведении(Отказ) Тогда // проверить проведение подзадач
Возврат;
КонецЕсли;
// регистр ИспользованниеНоменклатуры
Движения.ИспользованиеНоменклатуры.Записывать = Истина;
Для Каждого ТекСтрокаНоменклатура Из Номенклатура Цикл
Если ТекСтрокаНоменклатура.Наличие Тогда // если в ТЧ стоит
признак наличия
Продолжить;
КонецЕсли;
Если НЕ
ТекСтрокаНоменклатура.Номенклатура.ВидНоменклатуры.Списывается
Тогда // если номенклатуру не надо списывать
Продолжить;
КонецЕсли;
Движение = Движения.ИспользованиеНоменклатуры.Добавить();
82
Движение.Период = Дата;
Движение.Номенклатура =
ТекСтрокаНоменклатура.Номенклатура;
Движение.Задача = ЭтотОбъект.Ссылка;
Движение.Количество = ТекСтрокаНоменклатура.Количество;
Движение.Сумма =
ТекСтрокаНоменклатура.Сумма;
КонецЦикла;
КонецПроцедуры
// обработка распроведения
Процедура ОбработкаУдаленияПроведения(Отказ)
Если Не ОтменитьПроведениеРодителей(ЭтотОбъект.Ссылка) Тогда //
отменитиь проведение задач-родителей
Отказ = Истина;
Возврат;
КонецЕсли;
КонецПроцедуры
// отменить проведение всех родителей ДокСсылкаРебенок
Функция ОтменитьПроведениеРодителей(ДокСсылкаРебенок)
МассивОтменяемых =
ОбщийСрв.СформироватьСписокОтменяемых(ДокСсылкаРебенок); //
сформировать массив распроводимых документов
Если МассивОтменяемых.Количество() Тогда // если есть хоть один -
сообщить
Сообщить ("Отмена выполнения " +
ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект)
+ " приводит к отмене выполнения задач-родителей...");
КонецЕсли;
Для Каждого СтрокаОтменяемый Из МассивОтменяемых Цикл // для
каждого документа из распроводимых
Если
ОбщийСрв.ВЗакрытомПериоде(СтрокаОтменяемый.Значение) Тогда // если
находится в закрытом периоде
Сообщить("Отмена выполенния " +
ОбщийСрв.ПредставлениеЗадачи(ДокСсылкаРебенок)
+ " приводит к отмене выполенния " +
ОбщийСрв.ПредставлениеЗадачи(СтрокаОтменяемый.Значение)

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)