Розробка системи інформаційної підтримки діяльності менеджера з закупівель мережі ресторанів «Мисливець»

Автор: Пользователь скрыл имя, 17 Февраля 2013 в 20:06, дипломная работа

Описание работы

Завданнями даної роботи є:
аналіз діяльності та вивчення специфіки роботи мережі ресторанів «Мисливець»;
дослідження і аналіз діяльності менеджера з закупівель та обґрунтування необхідності розробки системи інформаційної підтримки його діяльності;
визначення основних вимог до створюваної системи, функцій, які вона повинна виконувати, та їх зазначення у поставновці задачі на розроблення системи;
розробка модулів системи інформаційної підтримки діяльності менеджера з закупівель та їх інтеграція в єдину інформаційну систему підприємства.

Содержание

ВСТУП 9
РОЗДІЛ 1. СИСТЕМНИЙ АНАЛІЗ ДІЯЛЬНОСТІ МЕНЕДЖЕРА З ЗАКУПІВЕЛЬ МЕРЕЖІ РЕСТОРАНІВ «МИСЛИВЕЦЬ» ТА ПОСТАНОВКА ЗАДАЧІ НА ПРОЕКТУВАННЯ СИСТЕМИ ІНФОРМАЦІЙНОЇ ПІДТРИМКИ ЙОГО ДІЯЛЬНОСТІ 12
1.1. Загальна характеристика мережі ресторанів «Мисливець» 12
1.2. Організаційна структура підприємства, роль та взаємодія підрозділів 14
1.3. Характеристика діяльності менеджера з закупівель мережі ресторанів «Мисливець» та обґрунтування необхідності розробки системи інформаційної підтримки його діяльності 22
1.3.1. Функції менеджера з закупівель 22
1.3.2. Моделювання процесу здійснення централізованих закупівель за допомогою CASE-засобу BPWin 23
1.3.3. Обґрунтування необхідності розробки системи інформаційної підтримки діяльності менеджера з закупівель 25
1.4. Дослідження та аналіз існуючої інформаційної системи 28
1.4.1. Ресторанна система «2К Ресторан» 28
1.4.2. 1С-конфігурація «2К Бухгалтерія» 30
1.5. Аналіз аналогів розробки та їх порівняння з існуючою інформаційною системою підприємства 34
1.5.1. Система «R-Keeper» 34
1.5.2. Система «Trio Ресторан» 36
1.6. Постановка задачі на розроблення системи 38
1.6.1. Призначення та цілі створення системи 38
1.6.2. Функції, які повинна виконувати система 38
1.6.3. Вхідні та вихідні дані системи 39
1.6.4. Вимоги до системи та програмного забезпечення 39
РОЗДІЛ 2. РОЗРОБКА КОМПЛЕКСУ ЗАДАЧ АВТОМАТИЗАЦІЇ 40
2.1. Програмне середовище розробки 40
2.2. Логічна та фізична модель системи 43
2.3. Реалізація функцій системи 45
2.4. Інструкція користувача 59
2.5. Місце розробки в комп’ютерній мережі підприємства 62
2.6. Розрахунок техніко-економічного ефекту від впровадження системи 64
2.6.1. Розмір оплати праці за розроблення програмного забезпечення системи 64
2.6.2. Витрати на розробку програмного забезпечення 65
2.6.3. Витрати на придбання та установку ПК 67
2.6.4. Витрати на підготовку приміщення 67
2.6.5. Витрати на навчання персоналу 67
2.6.6. Загальна вартість розробки та впровадження системи 67
3. ОХОРОНА ПРАЦІ 69
3.1. Основні поняття про горіння та пожежну безпеку речовин та матеріалів 69
3.2. Поняття про пожежну безпеку 72
3.3. Системи пожежної сигналізації, оповіщення та зв’язку 73
3.4. Протипожежне водопостачання 76
3.5. Вогнегасні речовини та сполуки 78
3.6. Класифікація пожеж 81
3.7. Первинні засоби та стаціонарні установки пожежегасіння 81
4. ТЕХНІКА БЕЗПЕКИ 86
4.1. Вимоги електробезпеки при роботі з ЕОМ 87
4.2. Вимоги безпеки під час експлуатації ЕОМ 90
4.3. Вимоги безпеки під час обслуговування, ремонту та налагодження ЕОМ 91
ВИСНОВКИ 94
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 95
ДОДАТКИ 98
Додаток А. Функціональна модель здійснення централізованих закупівель 99
Додаток Б. Логічна модель даних 105
Додаток В. Фізична модель даних 108
Додаток Г. Програмний код модулів системи 111
Додаток Д. Відеокадри інтерфейсу користувача 129

Работа содержит 1 файл

Бакалаврська робота Анцебурової Людмили.doc

— 3.35 Мб (Скачать)

ПолеКво = "КвоЧт";                                               

ДеньНедели = Перечисление.ДниНедели.Четверг;

ИначеЕсли  я=5 Тогда                                                             

ПолеКво = "КвоПт";                                               

ДеньНедели = Перечисление.ДниНедели.Пятница;

ИначеЕсли  я=6 Тогда 

ПолеКво = "КвоСб";                                               

ДеньНедели = Перечисление.ДниНедели.Суббота;

ИначеЕсли  я=7 Тогда 

ПолеКво = "КвоВс";                                               

ДеньНедели = Перечисление.ДниНедели.Воскресенье;

КонецЕсли;

лКонтрагент="";

НунаЗаписать=0;

ДокЗаказНаПост = СоздатьОбъект("Документ.ЗаказНаПоставку");

ТЗдоков.ВыбратьСтроки();

Пока ТЗдоков.ПолучитьСтроку()=1 Цикл

Если ТЗдоков.ПолучитьЗначение(ТЗдоков.НомерСтроки,ПолеКво)=0 Тогда

Продолжить;

КонецЕсли;

Если лКонтрагент<>ТЗдоков.Контрагент Тогда

Если лКонтрагент<>"" Тогда

глУстановитьНомерДокумента(ДокЗаказНаПост);      

ДокЗаказНаПост.Выгружать=1;

ДокЗаказНаПост.Записать();

ВыбратьСтроки();

Пока ПолучитьСтроку()=1 Цикл

Если (Контрагент=лКонтрагент)и(ПолучитьАтрибут(ПолеКво)<>0) Тогда   УстановитьАтрибут("НомЗаказа"+Прав(ПолеКво,2),ДокЗаказНаПост.ТекущийДокумент());

КонецЕсли;

КонецЦикла;

НунаЗаписать=0;

КонецЕсли;     

ТекДатаДок = ДатаДок;

Пока глДеньНедели(ТекДатаДок,1)<>ДеньНедели Цикл

ТекДатаДок=ТекДатаДок+1;

КонецЦикла;                                   

Результат = НайтиЗаказНаПоставку(ДокЗаказНаПост, ТекДатаДок, Фирма, ТекущийДокумент(), ТЗдоков.Контрагент);

фНовыйДок=0;

Если Результат = 1 Тогда

ДокЗаказНаПост.УдалитьСтроки();

фНовыйДок=0;

ИначеЕсли Результат = 0 Тогда

ДокЗаказНаПост.Новый();

фНовыйДок=1;

Иначе          

Сообщить("Транзакция отменена");  

ОтменитьТранзакцию();

Возврат;

КонецЕсли;  

ДокЗаказНаПост.Контрагент = ТЗдоков.Контрагент;

ДокЗаказНаПост.Фирма = Фирма;

ДокЗаказНаПост.ДатаДок = ТекДатаДок;

ДокЗаказНаПост.НомерЗаявки = ТекущийДокумент();

ДокЗаказНаПост.ДокументОснование = ТекущийДокумент();

лКонтрагент=ТЗдоков.Контрагент;

ДокЗаказНаПост.СтатусЗаказа = Перечисление.СтатусЗНП.Создан;

ДокГрафик = НайтиДокументГрафикЗаказов(ТЗдоков.Контрагент);

Если ДокГрафик<>"" Тогда

Плановый=0;

ДокГрафик.ВыбратьСтроки();

Пока ДокГрафик.ПолучитьСтроку()=1 Цикл

Если ДокГрафик.ДеньЗаказа=ДеньНедели Тогда

 Плановый=1;

 Прервать;

КонецЕсли;

КонецЦикла;

ДокЗаказНаПост.Внеплановый = ?(Плановый=1,0,1);     

КонецЕсли;

КонецЕсли;       

ДокЗаказНаПост.НоваяСтрока();   

ДокЗаказНаПост.ТоварЦБ = ТЗдоков.ТоварЦБ;

ДокЗаказНаПост.Количество = ТЗдоков.ПолучитьЗначение(ТЗдоков.НомерСтроки,ПолеКво);

НунаЗаписать=1;

КонецЦикла;       

Если НунаЗаписать=1 Тогда  

Если фНовыйДок=1 Тогда

глУстановитьНомерДокумента(ДокЗаказНаПост); 

КонецЕсли;        

ДокЗаказНаПост.Выгружать=1;

ДокЗаказНаПост.Записать();

ВыбратьСтроки();

Пока ПолучитьСтроку()=1 Цикл

Если (лКонтрагент=Контрагент)и(ПолучитьАтрибут(ПолеКво)<>0) Тогда

УстановитьАтрибут("НомЗаказа"+Прав(ПолеКво,2),ДокЗаказНаПост.ТекущийДокумент());

КонецЕсли;

КонецЦикла;

КонецЕсли;

КонецЦикла;     

Сообщить("Документы  записаны");

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

Записать();

СписПараметров=СоздатьОбъект("СписокЗначений");

СписПараметров.Установить("НомерЗаявки",ТекущийДокумент());

ОткрытьФорму("Журнал.ЗаказыНаПоставку",СписПараметров);

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

 

Програмний код модулю звіту «ПотребностьВСырье»:

Перем _тзТов;

Процедура РазложитьБлюдо(фВУ,_состав,_произкво=1,фДатаДок)

_состав.ВыбратьСтроки();

Пока _состав.ПолучитьСтроку() = 1 Цикл

Если (ПустоеЗначение(_состав.ТМЦ) = 1) Тогда

Продолжить;

КонецЕсли;

Если (ПустоеЗначение(_состав.Сезон)=0)и(глПроверитьСезонность(_состав.Сезон,фДатаДок)=0) Тогда

Продолжить;

КонецЕсли;

Если _состав.ТМЦ.Вид() = "НоменклатураДляКалькуляций" Тогда              

_тзТов.НоваяСтрока();

_тзТов.ТМЦ = _состав.ТМЦ;

_тзТов.КвоПродажа = _произкво*_состав.кво;

_тзТов.Единица=  _состав.Ед;     

Иначе            

_ск = "";

_ск = _состав.тмц.СоставКалькуляцииУпр.Получить(фДатаДок);

Если (ПустоеЗначение(_ск) = 1) Тогда

Возврат;

КонецЕсли;  

_накво = _состав.тмц.КвоПродукции*_произкво * _состав.кво;

РазложитьБлюдо(фВУ,_ск,_накво,фДатаДок);      

КонецЕсли;        

КонецЦикла;

КонецПроцедуры //РазложитьБлюдо() 

Функция ПроверкаСклада(Склад)

Если  ВыбСклад.РазмерСписка()>0 Тогда

Для я=1 по ВыбСклад.РазмерСписка() Цикл

Если ВыбСклад.ПолучитьЗначение(я).ЭтоГруппа()=1 Тогда

Если Склад.ПринадлежитГруппе(ВыбСклад.ПолучитьЗначение(я))=1 Тогда

Возврат 1;

КонецЕсли;

ИначеЕсли ВыбСклад.ПолучитьЗначение(я)=Склад  Тогда 

Возврат 1;

КонецЕсли;

КонецЦикла;   

Возврат 0;

Иначе

Возврат 1;

КонецЕсли;

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

Процедура ОбработкаЯчейкиТаблицы(аЗначение, аФлагСтандОбраб, аТаблица, аАдрес)

аФлагСтандОбраб=0;  

ОткрытьФорму("Отчет.КарточкаСчета",аЗначение);

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

Процедура Сформировать()      

Заг="";

Если ВыбФирма.Выбран()=1 Тогда

Заг="По фирме: "+СокРЛП(ВыбФирма);

Иначе 

Заг="По всем фирмам. ";

КонецЕсли;                            

Заг = Заг + ?(ВыбСклад.РазмерСписка()>0," По складу: ","По всем складам.");

Для я=1 по ВыбСклад.РазмерСписка() Цикл

  Заг = Заг + СокрЛП(ВыбСклад.ПолучитьЗначение(я))+"; ";

КонецЦикла; 

_тзТов.УдалитьСтроки();

Если глПроверкаПериода(ДатаНачала,ДатаКонца) = 0 Тогда

Возврат;

КонецЕсли;

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

|Период с ДатаНачала  по ДатаКонца;

|ОбрабатыватьДокументы Проведенные;

|Фирма   = Документ.Заказ.Фирма;

|ТМЦ   = Документ.Заказ.ТМЦ;

|КодТМЦ   = Документ.Заказ.ТМЦ.Код;

|ДатаДока  = Документ.Заказ.ДатаДок; 

|Колво   = Документ.Заказ.Кво; |Функция СумКолво = Сумма(Колво) когда

|Группировка  ТМЦ без Групп;

|Группировка  Документ; 

|Условие   (Фирма = ВыбФирма);

|";                                                                     

Запрос = СоздатьОбъект("Запрос");

Если (Запрос.Выполнить(ТекстЗапроса)=0) Тогда

Сообщить("Ошибка при  выполнении запроса!");

Возврат;

КонецЕсли;                                    

НомЭл=0;

Пока Запрос.Группировка(1)=1 Цикл

Пока Запрос.Группировка(2)=1 Цикл       

_ск  = "";

_ск = Запрос.ТМЦ.СоставКалькуляцииУпр.Получить(Запрос.ДатаДока);

Состояние("Обработка  строк : "+СокРЛП(НомЭл));

НомЭл=НомЭл+1;

РазложитьБлюдо(Запрос.ВУ,_ск,Запрос.СумКолво,Запрос.ДатаДока);

КонецЦикла;

КонецЦикла;

_тзТов.Свернуть("ТМЦ,Единица","КвоПродажа");                                     

_тзТов.Сортировать("+ТМЦ");                                     

_тзТов.НоваяКолонка("КвоСписание","Число",12,3);

ОперДок = СоздатьОбъект("Операция");

ДокРасход=СоздатьОбъект("Документ.КалькуляцияОбщепит");

ДокРасход.ВыбратьДокументы(ДатаНачала,ДатаКонца);

Пока ДокРасход.ПолучитьДокумент()=1 Цикл

Если ДокРасход.Проведен()=0 Тогда

Продолжить;

КонецЕсли;

Если ПроверкаСклада(ДокРасход.МестоХранения)=0 Тогда

Продолжить;

КонецЕсли; 

Если ДокРасход.СформированАвтоматически=1 Тогда

Продолжить;

КонецЕсли;

Если ОперДок.НайтиОперацию(ДокРасход)=1 Тогда

ОперДок.ВыбратьПроводки();

Пока ОперДок.ПолучитьПроводку()=1 Цикл

Если ОперДок.Кредит.Счет.Код = "282" Тогда                                                             

лСтр="";

Если _тзТов.НайтиЗначение(ОперДок.Кредит.НоменклатураДляКалькуляций,лСтр,"ТМЦ")=1 Тогда

_тзТов.ПолучитьСтрокуПоНомеру(лСтр);

Иначе

_тзТов.НоваяСтрока();

_тзТов.Единица=  ОперДок.Кредит.НоменклатураДляКалькуляций.БазЕдиница;      

КонецЕсли;

_тзТов.ТМЦ = ОперДок.Кредит.НоменклатураДляКалькуляций;

_тзТов.КвоСписание = _тзТов.КвоСписание+ОперДок.Количество;

КонецЕсли;

КонецЦикла;

КонецЕсли;

КонецЦикла;     

_тзТов.Свернуть("ТМЦ,Единица","КвоПродажа,КвоСписание");                                     

_тзТов.Сортировать("+ТМЦ");                                     

_тзТов.НоваяКолонка("КвоНачОст","Число",12,3);

_тзТов.НоваяКолонка("КвоПриход","Число",12,3);

_тзТов.НоваяКолонка("КвоСписание","Число",12,3);

_тзТов.НоваяКолонка("КвоСписИПрод","Число",12,3);

_тзТов.НоваяКолонка("КвоИнвентаризация","Число",12,3);

_тзТов.НоваяКолонка("КвоКонОст","Число",12,3);

лТаб=СоздатьОбъект("Таблица");

лТаб.ИсходнаяТаблица("Таблица");

лТаб.ВывестиСекцию("Шапка");  

БИ=СоздатьОбъект("БухгалтерскиеИтоги");

БИ.ИспользоватьПланСчетов(глУпрПланСчетов);

Если ПустоеЗначение(ВыбФирма)=0 Тогда

БИ.ИспользоватьРазделительУчета(глПолучитьРазделительУчетаПоПлануСчетов(глУпрПланСчетов,ВыбФирма));

КонецЕсли;   

БИ.ИспользоватьСубконто(ВидыСубконто.МестаХранения,ВыбСклад,1);

БИ.ИспользоватьСубконто(ВидыСубконто.НоменклатураДляКалькуляций,,1);

БИ.ВключатьСубсчета(1, 1);

БИ.ВыполнитьЗапрос(ДатаНачала,ДатаКонца,"282",,,3,,"СК");

БИ.ВыбратьСубконто(2);

Пока БИ.ПолучитьСубконто(2)=1 Цикл

лСтр="";

Если _тзТов.НайтиЗначение(БИ.Субконто(2),лСтр,"ТМЦ")=1 Тогда

_тзТов.ПолучитьСтрокуПоНомеру(лСтр);

Иначе

_тзТов.НоваяСтрока();

_тзТов.Единица=  БИ.Субконто(2).БазЕдиница;      

_тзТов.ТМЦ = БИ.Субконто(2);

КонецЕсли;

_тзТов.КвоНачОст=БИ.СНД(3)+БИ.СНК(3);

_тзТов.КвоКонОст=БИ.СКД(3)+БИ.СКК(3);

_тзТов.КвоПриход=_тзТов.КвоПриход+БИ.ДО(3);

_тзТов.КвоСписИПрод =_тзТов.КвоСписИПрод+БИ.КО(3); 

БИ.ВыбратьКорСчета();

Пока БИ.ПолучитьКорСчет()=1 Цикл     

Если БИ.КорСчет.Код = "282" Тогда    

_тзТов.КвоПриход=_тзТов.КвоПриход-БИ.КорДО(3);

_тзТов.КвоСписИПрод =_тзТов.КвоСписИПрод-БИ.КорКО(3);

КонецЕсли;

КонецЦикла; 

ИтогПлан = _тзТов.КвоПродажа+_тзТов.КвоСписание-_тзТов.КвоНачОст;

Дельта = ИтогПлан-_тзТов.КвоПриход;

лТаб.ВывестиСекцию("СтрокаТМЦ");  

КонецЦикла;

лТаб.ТолькоПросмотр(1);

лТаб.Опции(0,0,7,0);

лТаб.Показать("");

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

Процедура ПриОткрытии()

_тзТов = СоздатьОбъект("ТаблицаЗначений");

_тзТов.НоваяКолонка("ТМЦ","Справочник.НоменклатураДляКалькуляций");

_тзТов.НоваяКолонка("Единица","Справочник.ЕдиницыИзмерения");

_тзТов.НоваяКолонка("КвоПродажа","Число",12,3);

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

Програмний код модулю звіту «РазвернутыйОтчетПоЗакупкам»:

Процедура Сформировать()

ВидУчета = глВидУчетаВОтчете(Контекст);

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса = "//{{ЗАПРОС(ПН)

|Период с НачДата по КонДата;                             

|Фирма   = Документ.ПриходнаяНакладная.Фирма;

|Контрагент  = Документ.ПриходнаяНакладная.Контрагент;

|ТМЦ    = Документ.ПриходнаяНакладная.ТМЦ;

|ЦенаСНДС   = Документ.ПриходнаяНакладная.ЦенаСНДС;

|СуммаСНДС   = Документ.ПриходнаяНакладная.СуммаСНДС;

|Количество  = Документ.ПриходнаяНакладная.Кво;

|Ед    = Документ.ПриходнаяНакладная.Ед;

|Функция Сум  = Сумма(СуммаСНДС);              

|Функция Кво = Сумма(Количество);

|Группировка ТМЦ без  групп; 

|Группировка Документ;

|Условие (ТМЦ.Вид() = ""ТМЦ"");    

|Условие (Фирма в  выбФирма);  

|Условие (ТМЦ в спТМЦ);

|";

текстЗапроса = текстЗапроса + "Без итогов;

|ОбрабатыватьДокументы  Проведенные;

|"//}}ЗАПРОС;

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

Возврат;

КонецЕсли;

тбОтчета = СоздатьОбъект("ТаблицаЗначений");

Запрос.Выгрузить(тбОтчета,1);

тбОтчета.НоваяКолонка("Товар","Справочник.НоменклаторЦентральный");

тбОтчета.НоваяКолонка("ГруппаТоваров","Справочник.КлассификаторНоменклатуры"); 

тбОтчета.ВыбратьСтроки();

Пока тбОтчета.ПолучитьСтроку() = 1 Цикл

тбОтчета.Товар = тбОтчета.ТМЦ.Номенклатор;

тбОтчета.ГруппаТоваров = тбОтчета.ТМЦ.Категория;

КонецЦикла;                                        

тбОтчета.Свернуть("Товар,ГруппаТоваров,ЦенаСНДС,Документ,Ед,ВУ","Кво,Сум");

Информация о работе Розробка системи інформаційної підтримки діяльності менеджера з закупівель мережі ресторанів «Мисливець»