Автоматизация работы столовой ООО «Сибирь»

Автор работы: Пользователь скрыл имя, 21 Апреля 2014 в 09:26, курсовая работа

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

Целью данной курсовой работы является исследование работы столовой ООО «Сибирь», взаимосвязь работы с предприятиями-потребителями, рассмотрение проблемных участков в эффективности работы, и разработка программного обеспечения предназначенное для облегчения работы кассира столовой.
Результатом использования средств вычислительной техники во многих самых различных сферах деятельности человека является значительное снижение затрат труда на выполняемые операции, ускорения процессов получения необходимых результатов, а также сведение к минимуму возможности возникновения каких – либо неточностей, возникающих при работе человека. Разрабатываемое программное обеспечение позволит быстро и безошибочно найти необходимую пользователю информацию, а также правильно произвести все необходимые расчеты.

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

Курсовая работа готово.docx

— 661.53 Кб (Скачать файл)

 

Для хранения введенной информации и получения отчетных данных служат объекты конфигурации: регистры сведений и регистры накопления.

  1. В конфигурации задано несколько регистров сведений:
  • «СостояниеРаботника»

Измерения регистра (измерения регистра описывают разрезы, в которых хранится информация, а ресурсы регистра непосредственно содержат хранимую информацию):  

  • «Номер карты» - тип значения «Строка», длина 10, допустимая длина «Переменная»
  • «НомерВОрионе» - ти тип значения «Строка», длина 16, допустимая длина «Переменная»

Ресурсы:

  • «ФизЛицо» - тип значения СправочникСсылка.ФизЛица;
  • «НачалоДействияКарты» - тип значения «Дата», состав даты «Дата и время»;
  • «ОкончаниеДействияКарты» - тип значения «Дата», состав даты «Дата и время»;
  • «Организация» - тип значения СправочникСсылка.Организации.

 

  • «ЛимитНаПитание»

Ресурсы:

  • «Суммы» - тип значения «Число», длина 10, точность 0.

 

 

 

  • «КлиентыСтоловой»

Измерения регистра (измерения регистра описывают разрезы, в которых хранится информация, а ресурсы регистра непосредственно содержат хранимую информацию):  

  • «ФизЛицо» - тип значения СправочникСсылка.ФизЛица

Ресурсы:

  • «Обслуживается» - тип значения «Булевое».

 

  • «МестоРаботы»

Измерения регистра (измерения регистра описывают разрезы, в которых хранится информация, а ресурсы регистра непосредственно содержат хранимую информацию):  

  • «ФизЛицо» - тип значения СправочникСсылка.ФизЛица

Ресурсы:

  • «Подразделение» - тип значения СправочникСсылка.Подразделения.

 

 

 

 

 

 

  • «Меню»

Измерения регистра (измерения регистра описывают разрезы, в которых хранится информация, а ресурсы регистра непосредственно содержат хранимую информацию):  

  • «ВидБлюд» - тип значения ПеречислениеСсылка.ВидыБлюд;
  • «Блюдо» - тип значения СправочникСсылка.Блюда.

Ресурсы:

  • «Подразделение» - тип значения «Число», длина 10, точность 2.

 

  1. В конфигурации задан один регистр накопления «ЗадолженностьРаботника».  Регистр накопления образует многомерную систему измерений и позволяет "накапливать" числовые данные в разрезе нескольких измерений.

 

  1. Отчеты - предназначены для вывода информации из базы данных. 

В системе разработано  5 отчетов:

  • «Сводный чек» (алгоритм формирования отчетов можно увидеть в модуле формы, перейти на закладку «Модуль»)

Алгоритм:

Процедура КнопкаСформироватьНажатие(Кнопка)

///формируем запрос и печатаем сводный чек за установленный период

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

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

  "ВЫБРАТЬ

  | ЗадолженностьРаботникаОбороты.СуммаПриход КАК СуммаПриход,

  | ЗадолженностьРаботникаОбороты.ФизЛицо КАК ФизЛицо

  |ИЗ

  | РегистрНакопления.ЗадолженностьРаботника.Обороты(

  |  &ДатаНач,

  |  &ДатаКон,

  |  Период,

  |  ПунктОбслуживания = &ПунктОбслуживания

  |   И Организация = &Организация) КАК ЗадолженностьРаботникаОбороты";

  Запрос.УстановитьПараметр("ДатаНач",НачалоДня(ДатаНач));

  Запрос.УстановитьПараметр("ДатаКон",КонецДня(ДатаКон));

  Запрос.УстановитьПараметр("ПунктОбслуживания",ПунктОбслуживания);

  Запрос.УстановитьПараметр("Организация",Организация);

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

  Сумма = 0;

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

   Сумма = Сумма + Выборка.СуммаПриход;

  КонецЦикла;

 

  ВыборкаЧеков = Документы.Чек.Выбрать(НачалоДня(ДатаНач),КонецДня(ДатаКон),Новый Структура("ПунктОбслуживания",ПунктОбслуживания));

  КолвоЧеков = 0;

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

  Если ВыборкаЧеков.Проведен = Истина и ВыборкаЧеков.Организация = Организация и ВыборкаЧеков.Сумма<>0 Тогда

  КолвоЧеков = КолвоЧеков +1;

  КонецЕсли;

  КонецЦикла;

 

  Если НаЭкран Тогда

  ВывестиОтчетНаЭкран(КолвоЧеков,Сумма,Организация);

  Иначе

  НапечататьСводныйЧек(КолвоЧеков,Сумма,Организация);

  КонецЕсли;

 

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

 

 

  • «Задолженность сотрудников»

Алгоритм:

Процедура ЗадолженностьРаботников(ТабДок, ДатаКон, ДатаНач, ФизЛицо,Организация) Экспорт

//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(ЗадолженностьРаботников)

// Данный фрагмент построен конструктором.

// При повторном использовании  конструктора, внесенные вручную  изменения будут утеряны!!!

 

Макет = ОтчетОбъект.ПолучитьМакет("ЗадолженностьРаботников");

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

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

"ВЫБРАТЬ

ЗадолженностьРаботникаОбороты.ФизЛицо КАК Работник,

ЗадолженностьРаботникаОбороты.СуммаОборот КАК Сумма

|{ВЫБРАТЬ

| Работник.*,

| Сумма}

|ИЗ

| РегистрНакопления.ЗадолженностьРаботника.Обороты(&ДатаНач, &ДатаКон, ,";

Если Буфет = Истина и Столовая = ложь и ФизЛицо <> Справочники.ФизЛица.ПустаяСсылка()Тогда

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

|ПунктОбслуживания = &Буфет И ФизЛицо = &ФизЛицо  и Организация = &Организация)";

ИначеЕсли Буфет = Истина и Столовая = ложь и ФизЛицо = Справочники.ФизЛица.ПустаяСсылка()Тогда

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

|ПунктОбслуживания = &Буфет и Организация = &Организация)"; 

ИначеЕсли  Столовая = истина и Буфет = ложь и ФизЛицо <> Справочники.ФизЛица.ПустаяСсылка() Тогда

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

|ПунктОбслуживания = &Столовая И ФизЛицо = &ФизЛицо  и Организация = &Организация)";

ИначеЕсли  Столовая = истина и Буфет = ложь и ФизЛицо = Справочники.ФизЛица.ПустаяСсылка() Тогда

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

|ПунктОбслуживания = &Столовая и Организация = &Организация) ";

ИначеЕсли ФизЛицо <> Справочники.ФизЛица.ПустаяСсылка()Тогда

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

|ФизЛицо = &ФизЛицо и Организация = &Организация)";

Иначе  Запрос.Текст = Запрос.Текст + " 

|Организация = &Организация)";

КонецЕсли;

 

//Если  ФизЛицо <> Справочники.ФизЛица.ПустаяСсылка() Тогда

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

// |,ФизЛицо = &ФизЛицо)";

//Иначе  Запрос.Текст = Запрос.Текст + " 

// |)";

//КонецЕсли;

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

| КАК ЗадолженностьРаботникаОбороты

|

|УПОРЯДОЧИТЬ  ПО

| Работник

|{УПОРЯДОЧИТЬ  ПО

| Работник.*}

|ИТОГИ

| СУММА(Сумма)

|ПО

| Работник

|{ИТОГИ  ПО

| Работник.*}";

 

Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон));

Запрос.УстановитьПараметр("ДатаНач", НачалоДня(ДатаНач));

Запрос.УстановитьПараметр("ФизЛицо", ФизЛицо);

Запрос.УстановитьПараметр("Буфет",Перечисления.ПунктыОбслуживания.Буфет);

Запрос.УстановитьПараметр("Столовая",Перечисления.ПунктыОбслуживания.Столовая);

Запрос.УстановитьПараметр("Организация",Организация);

Результат = Запрос.Выполнить();

 

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

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

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

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

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

 

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

ОбластьЗаголовок.Параметры.ОписаниеПериода = СформироватьСтрокуВыводаПараметровПоДатам( ДатаНач,  ДатаКон);

ОбластьЗаголовок.Параметры.Организация = Организация;

 

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

Если ПоРаботникам = истина Тогда

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

КонецЕсли;

ТабДок.НачатьАвтогруппировкуСтрок();

 

ВыборкаФизЛицо = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

ТЗ = Новый ТаблицаЗначений;

ТЗ.Колонки.Добавить("Работник");

Тз.Колонки.Добавить("Сумма");

 

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

n = 0;

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

Строка = Тз.Добавить();

Строка.Работник = ВыборкаФизЛицо.Работник;

Строка.Сумма = ВыборкаФизЛицо.Сумма;

КонецЦикла;

 

Если ФИО = 1 Тогда

ТЗ.Сортировать("Работник Возр");

    Иначе 

ТЗ.Сортировать("Сумма Убыв");

    КонецЕсли;

 

Для каждого стр из ТЗ цикл

n = n+1;

Если ПоРаботникам = истина Тогда

ОбластьДетали.Параметры.номер = n;

ОбластьДетали.Параметры.Работник = Стр.Работник;

ОбластьДетали.Параметры.Сумма = Стр.Сумма;

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

КонецЕсли;

СуммаИтого = СуммаИтого + Стр.Сумма;

КонецЦикла;

 

ТабДок.ЗакончитьАвтогруппировкуСтрок();

ОбластьПодвалТаблицы.Параметры.СуммаИтого = СуммаИтого;

Если ПоРаботникам = истина Тогда

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

КонецЕсли;

Если ФизЛицо = Справочники.ФизЛица.ПустаяСсылка() Тогда

ОбластьПодвал.Параметры.Всего = Строка(n) + "  человек" ;

ОбластьПодвал.Параметры.СуммаИтого = Строка(СуммаИтого) + "  руб.";

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

КонецЕсли;

 

//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ

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

 

  • «Время посещения столовой»

Алгоритм:

Процедура ВремяПосещения(ТабДок, ДатаКон, ДатаНач, Работник)

Макет = ОтчетОбъект.ПолучитьМакет("ВремяПосещенияСтоловой");

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

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

"ВЫБРАТЬ

ЗадолженностьРаботникаОбороты.ФизЛицо,

ЗадолженностьРаботникаОбороты.Период КАК Время,

| МестоРаботыСрезПоследних.Подразделение

Информация о работе Автоматизация работы столовой ООО «Сибирь»