Автор: Пользователь скрыл имя, 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
ПолеКво = "КвоЧт";
ДеньНедели = Перечисление.ДниНедели.
ИначеЕсли я=5 Тогда
ПолеКво = "КвоПт";
ДеньНедели = Перечисление.ДниНедели.
ИначеЕсли я=6 Тогда
ПолеКво = "КвоСб";
ДеньНедели = Перечисление.ДниНедели.
ИначеЕсли я=7 Тогда
ПолеКво = "КвоВс";
ДеньНедели = Перечисление.ДниНедели.
КонецЕсли;
лКонтрагент="";
НунаЗаписать=0;
ДокЗаказНаПост = СоздатьОбъект("Документ.
ТЗдоков.ВыбратьСтроки();
Пока ТЗдоков.ПолучитьСтроку()=
Если ТЗдоков.ПолучитьЗначение(
Продолжить;
КонецЕсли;
Если лКонтрагент<>ТЗдоков.
Если лКонтрагент<>"" Тогда
глУстановитьНомерДокумента(
ДокЗаказНаПост.Выгружать=1;
ДокЗаказНаПост.Записать();
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Если (Контрагент=лКонтрагент)и(
КонецЕсли;
КонецЦикла;
НунаЗаписать=0;
КонецЕсли;
ТекДатаДок = ДатаДок;
Пока глДеньНедели(ТекДатаДок,
ТекДатаДок=ТекДатаДок+1;
КонецЦикла;
Результат = НайтиЗаказНаПоставку(
фНовыйДок=0;
Если Результат = 1 Тогда
ДокЗаказНаПост.УдалитьСтроки()
фНовыйДок=0;
ИначеЕсли Результат = 0 Тогда
ДокЗаказНаПост.Новый();
фНовыйДок=1;
Иначе
Сообщить("Транзакция отменена");
ОтменитьТранзакцию();
Возврат;
КонецЕсли;
ДокЗаказНаПост.Контрагент = ТЗдоков.Контрагент;
ДокЗаказНаПост.Фирма = Фирма;
ДокЗаказНаПост.ДатаДок = ТекДатаДок;
ДокЗаказНаПост.НомерЗаявки = ТекущийДокумент();
ДокЗаказНаПост.
лКонтрагент=ТЗдоков.
ДокЗаказНаПост.СтатусЗаказа = Перечисление.СтатусЗНП.Создан;
ДокГрафик = НайтиДокументГрафикЗаказов(
Если ДокГрафик<>"" Тогда
Плановый=0;
ДокГрафик.ВыбратьСтроки();
Пока ДокГрафик.ПолучитьСтроку(
Если ДокГрафик.ДеньЗаказа=
Плановый=1;
Прервать;
КонецЕсли;
КонецЦикла;
ДокЗаказНаПост.Внеплановый = ?(Плановый=1,0,1);
КонецЕсли;
КонецЕсли;
ДокЗаказНаПост.НоваяСтрока();
ДокЗаказНаПост.ТоварЦБ = ТЗдоков.ТоварЦБ;
ДокЗаказНаПост.Количество
= ТЗдоков.ПолучитьЗначение(
НунаЗаписать=1;
КонецЦикла;
Если НунаЗаписать=1 Тогда
Если фНовыйДок=1 Тогда
глУстановитьНомерДокумента(
КонецЕсли;
ДокЗаказНаПост.Выгружать=1;
ДокЗаказНаПост.Записать();
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Если (лКонтрагент=Контрагент)и(
УстановитьАтрибут("НомЗаказа"+
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Сообщить("Документы записаны");
ЗафиксироватьТранзакцию();
Записать();
СписПараметров=СоздатьОбъект("
СписПараметров.Установить("
ОткрытьФорму("Журнал.
КонецПроцедуры
Програмний код модулю звіту «ПотребностьВСырье»:
Перем _тзТов;
Процедура РазложитьБлюдо(фВУ,_состав,_
_состав.ВыбратьСтроки();
Пока _состав.ПолучитьСтроку() = 1 Цикл
Если (ПустоеЗначение(_состав.ТМЦ) = 1) Тогда
Продолжить;
КонецЕсли;
Если (ПустоеЗначение(_состав.Сезон)
Продолжить;
КонецЕсли;
Если _состав.ТМЦ.Вид() = "НоменклатураДляКалькуляций" Тогда
_тзТов.НоваяСтрока();
_тзТов.ТМЦ = _состав.ТМЦ;
_тзТов.КвоПродажа = _произкво*_состав.кво;
_тзТов.Единица= _состав.Ед;
Иначе
_ск = "";
_ск = _состав.тмц.
Если (ПустоеЗначение(_ск) = 1) Тогда
Возврат;
КонецЕсли;
_накво = _состав.тмц.КвоПродукции*_
РазложитьБлюдо(фВУ,_ск,_накво,
КонецЕсли;
КонецЦикла;
КонецПроцедуры //РазложитьБлюдо()
Функция ПроверкаСклада(Склад)
Если ВыбСклад.РазмерСписка()>0 Тогда
Для я=1 по ВыбСклад.РазмерСписка() Цикл
Если ВыбСклад.
Если Склад.ПринадлежитГруппе(
Возврат 1;
КонецЕсли;
ИначеЕсли ВыбСклад.ПолучитьЗначение(я)=
Возврат 1;
КонецЕсли;
КонецЦикла;
Возврат 0;
Иначе
Возврат 1;
КонецЕсли;
КонецФункции
Процедура ОбработкаЯчейкиТаблицы(
аФлагСтандОбраб=0;
ОткрытьФорму("Отчет.
КонецПроцедуры
Процедура Сформировать()
Заг="";
Если ВыбФирма.Выбран()=1 Тогда
Заг="По фирме: "+СокРЛП(ВыбФирма);
Иначе
Заг="По всем фирмам. ";
КонецЕсли;
Заг = Заг + ?(ВыбСклад.РазмерСписка()>0," По складу: ","По всем складам.");
Для я=1 по ВыбСклад.РазмерСписка() Цикл
Заг = Заг + СокрЛП(ВыбСклад.
КонецЦикла;
_тзТов.УдалитьСтроки();
Если глПроверкаПериода(
Возврат;
КонецЕсли;
ТекстЗапроса = "
|Период с ДатаНачала по ДатаКонца;
|ОбрабатыватьДокументы
|Фирма = Документ.Заказ.
|ТМЦ = Документ.Заказ.ТМЦ;
|КодТМЦ = Документ.Заказ.ТМЦ
|ДатаДока = Документ.Заказ.
|Колво = Документ.Заказ.Кво;
|Группировка ТМЦ без Групп;
|Группировка Документ;
|Условие (Фирма = ВыбФирма);
|";
Запрос = СоздатьОбъект("
Если (Запрос.Выполнить(
Сообщить("Ошибка при выполнении запроса!");
Возврат;
КонецЕсли;
НомЭл=0;
Пока Запрос.Группировка(1)=1 Цикл
Пока Запрос.Группировка(2)=1 Цикл
_ск = "";
_ск = Запрос.ТМЦ.
Состояние("Обработка строк : "+СокРЛП(НомЭл));
НомЭл=НомЭл+1;
РазложитьБлюдо(Запрос.ВУ,_ск,
КонецЦикла;
КонецЦикла;
_тзТов.Свернуть("ТМЦ,Единица",
_тзТов.Сортировать("+ТМЦ");
_тзТов.НоваяКолонка("
ОперДок = СоздатьОбъект("Операция");
ДокРасход=СоздатьОбъект("
ДокРасход.ВыбратьДокументы(
Пока ДокРасход.
Если ДокРасход.Проведен()=0 Тогда
Продолжить;
КонецЕсли;
Если ПроверкаСклада(ДокРасход.
Продолжить;
КонецЕсли;
Если ДокРасход.
Продолжить;
КонецЕсли;
Если ОперДок.НайтиОперацию(
ОперДок.ВыбратьПроводки();
Пока ОперДок.ПолучитьПроводку(
Если ОперДок.Кредит.Счет.Код
= "282" Тогда
лСтр="";
Если _тзТов.НайтиЗначение(ОперДок.
_тзТов.ПолучитьСтрокуПоНомеру(
Иначе
_тзТов.НоваяСтрока();
_тзТов.Единица= ОперДок.Кредит.
КонецЕсли;
_тзТов.ТМЦ = ОперДок.Кредит.
_тзТов.КвоСписание = _тзТов.КвоСписание+ОперДок.Кол
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
_тзТов.Свернуть("ТМЦ,Единица",
_тзТов.Сортировать("+ТМЦ");
_тзТов.НоваяКолонка("
_тзТов.НоваяКолонка("
_тзТов.НоваяКолонка("
_тзТов.НоваяКолонка("
_тзТов.НоваяКолонка("
_тзТов.НоваяКолонка("КвоКонОст
лТаб=СоздатьОбъект("Таблица");
лТаб.ИсходнаяТаблица("Таблица"
лТаб.ВывестиСекцию("Шапка");
БИ=СоздатьОбъект("
БИ.ИспользоватьПланСчетов(
Если ПустоеЗначение(ВыбФирма)=
БИ.ИспользоватьРазделительУчет
КонецЕсли;
БИ.ИспользоватьСубконто(
БИ.ИспользоватьСубконто(
БИ.ВключатьСубсчета(1, 1);
БИ.ВыполнитьЗапрос(ДатаНачала,
БИ.ВыбратьСубконто(2);
Пока БИ.ПолучитьСубконто(2)=1 Цикл
лСтр="";
Если _тзТов.НайтиЗначение(БИ.
_тзТов.ПолучитьСтрокуПоНомеру(
Иначе
_тзТов.НоваяСтрока();
_тзТов.Единица= БИ.Субконто(2).БазЕдиница;
_тзТов.ТМЦ = БИ.Субконто(2);
КонецЕсли;
_тзТов.КвоНачОст=БИ.СНД(3)+БИ.
_тзТов.КвоКонОст=БИ.СКД(3)+БИ.
_тзТов.КвоПриход=_тзТов.
_тзТов.КвоСписИПрод =_тзТов.КвоСписИПрод+БИ.КО(3);
БИ.ВыбратьКорСчета();
Пока БИ.ПолучитьКорСчет()=1 Цикл
Если БИ.КорСчет.Код = "282" Тогда
_тзТов.КвоПриход=_тзТов.
_тзТов.КвоСписИПрод =_тзТов.КвоСписИПрод-БИ.КорКО(
КонецЕсли;
КонецЦикла;
ИтогПлан = _тзТов.КвоПродажа+_тзТов.
Дельта = ИтогПлан-_тзТов.КвоПриход;
лТаб.ВывестиСекцию("СтрокаТМЦ"
КонецЦикла;
лТаб.ТолькоПросмотр(1);
лТаб.Опции(0,0,7,0);
лТаб.Показать("");
КонецПроцедуры
Процедура ПриОткрытии()
_тзТов = СоздатьОбъект("
_тзТов.НоваяКолонка("ТМЦ","
_тзТов.НоваяКолонка("Единица",
_тзТов.НоваяКолонка("
КонецПроцедуры
Програмний код модулю
звіту «РазвернутыйОтчетПоЗакуп
Процедура Сформировать()
ВидУчета = глВидУчетаВОтчете(
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "//{{ЗАПРОС(ПН)
|Период с НачДата по КонДата;
|Фирма = Документ.ПриходнаяНакладная.
|Контрагент = Документ.ПриходнаяНакладная.
|ТМЦ = Документ.ПриходнаяНакладная.
|ЦенаСНДС = Документ.ПриходнаяНакладная.
|СуммаСНДС = Документ.ПриходнаяНакладная.
|Количество = Документ.ПриходнаяНакладная.
|Ед = Документ.ПриходнаяНакладная.
|Функция Сум = Сумма(СуммаСНДС);
|Функция Кво = Сумма(Количество);
|Группировка ТМЦ без групп;
|Группировка Документ;
|Условие (ТМЦ.Вид() = ""ТМЦ"");
|Условие (Фирма в выбФирма);
|Условие (ТМЦ в спТМЦ);
|";
текстЗапроса = текстЗапроса + "Без итогов;
|ОбрабатыватьДокументы Проведенные;
|"//}}ЗАПРОС;
Если Запрос.Выполнить(
Возврат;
КонецЕсли;
тбОтчета = СоздатьОбъект("
Запрос.Выгрузить(тбОтчета,1);
тбОтчета.НоваяКолонка("Товар",
тбОтчета.НоваяКолонка("
тбОтчета.ВыбратьСтроки();
Пока тбОтчета.ПолучитьСтроку() = 1 Цикл
тбОтчета.Товар = тбОтчета.ТМЦ.Номенклатор;
тбОтчета.ГруппаТоваров = тбОтчета.ТМЦ.Категория;
КонецЦикла;
тбОтчета.Свернуть("Товар,