Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
moy_kursach.doc
Скачиваний:
34
Добавлен:
07.06.2015
Размер:
2.61 Mб
Скачать

Глава II. Реализация проекта

3.1. Разработка экранных форм

Для работы с постоянной и условно постоянной информацией с некоторым множеством значений в системе используются объекты типа «Справочник».

Механизм поддержки справочников позволяет спроектировать и поддерживать самые различные справочники. На этапе конфигури­рования можно описать, какими свойствами обладает каждый кон­кретный справочник. К настраиваемым свойствам относятся, напри­мер, длина и тип кода, количество уровней, поддержка уникальности кодов, набор реквизитов справочника.

Помимо кода и наименования, механизм работы со справочника­ми позволяет создавать набор реквизитов для хранения любой до­полнительной информации об элементе справочника. Для реквизи­тов справочника возможно указание типа «Периодический» для от­слеживания истории изменения значений реквизитов.

Для каждого справочника может быть задано несколько форм просмотра и редактирования.

Справочник «Продукты» предназначен для хранения информации о продуктах (рис. 3.1.1). Справочник «Меню» предназначен для хранения информации о блюдах (рис. 3.1.2.). Справочник «Сотрудники» позволяет хранить информацию о сотрудниках (рис. 3.1.3), аналогичный справочник «Клиенты» служит хранилищем для информации о клиентах. В справочнике «Склад» можно указать на каком именно складе хрянятся продукты (рис. 3.1.4.).

Рис. 3.1.1 Форма справочника «Продукты»

Рис. 3.1.2 Форма справочника «Меню»

Рис. 3.1.2 Форма справочника «Сотрудники»

Рис. 3.1.2 Форма справочника «Склады»

3.2. Разработка модулей для прикладных решений

Документ — одно из основных понятий системы «1С: Предприятие». При помощи документов организуется ввод в систему информации о совершаемых хозяйственных действиях, ее просмотр и, если необхо­димо, корректировка.

В большинстве своем документы, которые создаются в процессе настройки конфигурации, являются электронными аналогами стандартных бумажных документов, однако, использование этого типа данных может выходить далеко за рамки простой фиксации информации о хозяйственных операциях.

В конфигураторе создается, строго говоря, не сам документ, а средство ввода документа в компьютер — шаблон документа. Каждый создаваемый в конфигураторе документ является описанием множества документов одного вида. Например, созданный в конфигураторе документ «Накладная» при работе с системой 1С: Предприятие позволит формировать накладные, кото­рые будут иметь разное содержание, но одинаковый набор реквизи­тов, одинаковую логику поведения и так далее.

В информационной системе представлены следующие документы: Приходная накладная, Списание, Калькуляционная карта и Заказ.

Документ «Приходная накладная» предназначен для ввода закупленных продуктов (рис. 3.2.1.). Данный документ двигает регистр накопления «Остатки продуктов», вид движения – приход. Аналогично выглядит документ списание, который позволяет нам списывать продукты в связи с порчей и др. (рис. 3.2.2.). Двигает регистр накопления «Остатки продуктов», вид движения – расход. Процедура обработки проведения у данных документов будут похожи, имея различия только в виде движения.

Рис. 3.2.1. Форма документа «Приходная накладная»

Рис. 3.2.2. Форма документа «Списание»

Документ «Списание», модуль объекта

Процедура ОбработкаПроведения(Отказ, Режим)

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

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

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

Для Каждого ТекСтрокаПродукты Из Продукты Цикл

Движение = Движения.ОстаткиПродуктов.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Движение.Период = Дата;

Движение.Продукты = ТекСтрокаПродукты.Продукты;

Движение.Склад = Склад;

Движение.Количество = ТекСтрокаПродукты.Количество;

КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

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

Документ «КалькКарта» предназначен для введения информации о составе блюд (рис. 3.2.3.), позволяет подсчитывать себестоимость блюда. Документ «Заказ» позволяет нам оформлять заказ клиента, подсчитывать сумму заказа и печатать чек (рис. 3.2.5.). Данный документ двигает регистр накопления «Остатка продуктов», с запросом данных из документа «КалькКарта». Вид движения – расход. Так же двигает, документ двигает регистр накопления «Продажи».

Рис. 3.2.3. Форма документа «КалькКарта»

Рис. 3.2.4. Форма документа «Заказ»

Документ «Заказ», модуль объекта

Процедура ОбработкаПроведения(Отказ, Режим)

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

Запрос.Текст = "ВЫБРАТЬ

| ЗаказЗаказ.Блюдо,

| ЗаказЗаказ.Количество КАК КоличествоБлюда,

| КалькКартаПродукты.Продукт,

| КалькКартаПродукты.Количество КАК КоличествоПродукта,

| ОстаткиПродуктовОстатки.Склад,

| ОстаткиПродуктовОстатки.КоличествоОстаток КАК ОстатокПродукта,

| КалькКартаПродукты.Продукт.Наименование

|ИЗ

| Документ.Заказ.Заказ КАК ЗаказЗаказ

| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.КалькКарта.Продукты КАК КалькКартаПродукты

| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиПродуктов.Остатки(&Период, ) КАК ОстаткиПродуктовОстатки

| ПО КалькКартаПродукты.Продукт = ОстаткиПродуктовОстатки.Продукты

| ПО ЗаказЗаказ.Блюдо = КалькКартаПродукты.Ссылка.Блюдо

|ГДЕ

| ЗаказЗаказ.Ссылка = &Ссылка";

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

Если Режим = РежимПроведенияДокумента.Оперативный Тогда

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

Иначе

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

КонецЕсли;

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

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

КоличествоСписать = Выборка.КоличествоБлюда * Выборка.КоличествоПродукта;

ОстатокПродукта = ?(Выборка.ОстатокПродукта = Null, 0, Выборка.ОстатокПродукта);

Если (КоличествоСписать <= ОстатокПродукта) Тогда

Если Не Отказ Тогда

Движение = Движения.ОстаткиПродуктов.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Движение.Период = Дата;

Движение.Склад = Выборка.Склад;

Движение.Продукты = Выборка.Продукт;

Движение.Количество = КоличествоСписать;

КонецЕсли;

Иначе

Отказ = Истина;

Сообщить("Не хватает продукта " + Выборка.ПродуктНаименование + " в количестве " + Строка(КоличествоСписать - ОстатокПродукта));

КонецЕсли;

КонецЦикла;

Если Не Отказ Тогда

Для Каждого ТекСтрокаЗаказ Из Заказ Цикл

// регистр Продажи

Движение = Движения.Продажи.Добавить();

Движение.Период = Дата;

Движение.Блюдо = ТекСтрокаЗаказ.Блюдо;

Движение.Количество = ТекСтрокаЗаказ.Количество;

Движение.Выручка = ТекСтрокаЗаказ.Сумма;

КонецЦикла;

КонецЕсли;

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

Цены продуктов в документ «КалькКарта» заполняются из регистра сведений «Цены поступления», цены блюд в документ «Заказ» заполняются из регистра сведений «Цены блюд».

3.3. Разработка отчетов

Для простоты работы с имеющейся информацией, в информационной системе были созданы следующие отчеты: Остатки продуктов, Продажи, Прайс, Выручка. Отчет «Остатки продуктов» содержит сведенья об остатках продуктов на складе (рис. 3.3.1.). «Прайс» содержит блюда и цены на них (рис. 3.3.2.). «Выручка» позволяет получить полную информацию о поступлении денежных средств в кассу (рис. 3.3.4.).

Рис. 3.3.1. Отчет «Остатки продуктов»

Рис. 3.3.3. Отчет «Выручка»

ЗАКЛЮЧЕНИЕ

Неоспоримым преимуществом автоматизированных систем управления является то, что они не требуют никаких дополнительных вложений. Автоматизированные системы управления достаточно легко поддаются необходимым корректировкам в соответствии с требованиями рабочего процесса предприятия.

В результате выполнения данного курсового проекта все поставленные цели и задачи были выполнены. Были описаны технологии функционирования ИС, выполнено физическое проектирование БД, разработаны экранные форм ввода-вывода и отчеты, разработаны функциональные модули.

В результате проделанной работы было разработано приложение для работы кафе. Оно автоматизирует доступ к базе данных и оптимизирует работу персонала.

Информационная система разработана на платформе «1С: Предприятие» версии 8.1. Данный выбор обусловлен широкими возможностями по ведению учета хозяйственных операций, предоставляемыми системой.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Белоусов, П. Н., Островерх, А. Д. 1С:Предприятие: от 8.0 к 8.1[Текст] / П.Н. Белоусов, А.Д. Островерх. – Питер: "1С-Паблишинг", 2008. – 577 стр.

2. Вендров, А. М. Проектирование программного обеспечения экономических информационных систем: Учебник для студентов, обучающихся по специальности «Прикладная информатика» и «Прикладная математика и информатика [Текст] / А.М. Вендров. – М.: Финансы и статистика, 2001. – 221 с.

3. Габец, А. П., Гончаров, Д. И. 1С:Предприятие 8.1. Простые примеры разработки [Текст] / А.П. Габец, Д.И. Гончаров. – Питер: "1С-Паблишинг", 2009. – 383 стр.

4. Информационные системы в экономике в вопросах и ответах: Учебн. пособие. – М.: ТК Велби, Издательство «Проспект», 2004. – 280 с.

5. Маклаков, С. В. BPwin и ERwin. CASE - средства разработки информационных систем. Учебное пособие [Текст] / С.В. Маклаков.–Москва: Диалог – МИФИ, 1999. – 256с.

6.Радченко, М. А. 1С:Предприятие 8.1. Практическое пособие разработчика. Примеры и типовые приемы [Текст] / М. А. Радченко. – Питер: "1С-Паблишинг", 2009. – 512 стр.

7.Хрусталева, Е. Ю. Разработка сложных отчетов в 1С:Предприятии 8 Система компоновки данных [Текст] / Е.Ю. Хрусталева – Питер: "1С-Паблишинг", 2009. – 489 стр.

8. Борисов, В.В. Компьютерная поддержка сложных организационно- технических систем. [Текст]:/ В.В Борисов, И.А. Бычков, А.В. Дементьев. - Горячая линия - Телеком, 2002 -300с.

9. Гайдамакин, Н. А. Автоматизированные информационные системы, базы и банки данных . ввод. курс [Текст]: учеб. пособие для вузов ./ Н.А. Гайдамакин - М. : Гелиос АРВ , 2002 . - 101 с.

10. Баженова, И. Ю. Основы проектирования приложений баз данных . [Текст]: учеб. пособие ./ И.Ю.Баженова - М. : Интернет-Ун-т Информ Технологий БИНОМ. Лаб. знаний , 2006 . - 252 с.

11. Сайт компании 1с [Электронный ресурс] URL: http://www.1с.ru

ПРИЛОЖЕНИЯ

Общий модуль «Работа с ценой»:

Функция ЦенаПоступления(АктуальнаяДата, ЭлементПродукт) Экспорт

// Создать вспомогательный объект Отбор

Отбор = Новый Структура("Продукт",ЭлементПродукт);

// Получить актуальные значения ресурсов регистра

ЗначенияРесурсов = РегистрыСведений.ЦеныПостПродуктов.ПолучитьПоследнее(АктуальнаяДата, Отбор);

Возврат ЗначенияРесурсов.Цена;

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

Общий модуль «Работа со справочниками»:

Функция РозничнаяЦена(АктуальнаяДата, ЭлементБлюдо) Экспорт

// Создать вспомогательный объект Отбор

Отбор = Новый Структура("Блюдо",ЭлементБлюдо);

// Получить актуальные значения ресурсов регистра

ЗначенияРесурсов = РегистрыСведений.ЦеныБлюд.ПолучитьПоследнее(АктуальнаяДата, Отбор);

Возврат ЗначенияРесурсов.Цена;

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

Общий модуль «Работа с документами»:

Процедура РассчитатьСумму(СтрокаТабличнойЧасти) Экспорт

СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;

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

Документ «Приходная накладная», модуль объекта:

Процедура ОбработкаПроведения(Отказ, Режим)

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

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

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

Для Каждого ТекСтрокаПродукты Из Продукты Цикл

// регистр ОстаткиПродуктов Приход

Движение = Движения.ОстаткиПродуктов.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход;

Движение.Период = Дата;

Движение.Продукты = ТекСтрокаПродукты.Продукты;

Движение.Склад = Склад;

Движение.Количество = ТекСтрокаПродукты.Количество;

КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

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

Документ «Приходная накладная», модуль формы:

Процедура ПродуктыКоличествоПриИзменении(Элемент)

СтрокаТабличнойЧасти = ЭлементыФормы.Продукты.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

Процедура ПродуктыЦенаПриИзменении(Элемент)

СтрокаТабличнойЧасти = ЭлементыФормы.Продукты.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

Документ «Списание», модуль объекта:

Процедура ОбработкаПроведения(Отказ, Режим)

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

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

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

Для Каждого ТекСтрокаПродукты Из Продукты Цикл

// регистр ОстаткиПродуктов Расход

Движение = Движения.ОстаткиПродуктов.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Движение.Период = Дата;

Движение.Продукты = ТекСтрокаПродукты.Продукты;

Движение.Склад = Склад;

Движение.Количество = ТекСтрокаПродукты.Количество;

КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

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

Документ «Списание», модуль формы:

Процедура ПродуктыКоличествоПриИзменении(Элемент)

СтрокаТабличнойЧасти = ЭлементыФормы.Продукты.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

Процедура ПродуктыЦенаПриИзменении(Элемент)

СтрокаТабличнойЧасти = ЭлементыФормы.Продукты.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

Документ «КалькКарта», модуль формы:

Процедура ПродуктыКоличествоПриИзменении(Элемент)

СтрокаТабличнойЧасти = ЭлементыФормы.Продукты.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

Процедура ПродуктыЦенаПриИзменении(Элемент)

СтрокаТабличнойЧасти = ЭлементыФормы.Продукты.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

Процедура ПродуктыПродуктПриИзменении(Элемент)

// Получить текущую строку табличной части

СтрокаТабличнойЧасти = ЭлементыФормы.Продукты.ТекущиеДанные;

// Установить цену

СтрокаТабличнойЧасти.Цена = РаботаСЦеной.ЦенаПоступления(Дата,Элемент.Значение);

// Пересчитать сумму строки

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

Документ «Заказ», модуль формы:

Процедура ЗаказКоличествоПриИзменении(Элемент)

СтрокаТабличнойЧасти = ЭлементыФормы.Заказ.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

// Вставить содержимое обработчика.

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

Процедура ЗаказЦенаПриИзменении(Элемент)

СтрокаТабличнойЧасти = ЭлементыФормы.Заказ.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

Процедура ЗаказБлюдоПриИзменении(Элемент)

// Получить текущую строку табличной части

СтрокаТабличнойЧасти = ЭлементыФормы.Заказ.ТекущиеДанные;

// Установить цену

СтрокаТабличнойЧасти.Цена=РаботаСоСправочниками.РозничнаяЦена(Дата,Элемент.Значение);

// Пересчитать сумму строки

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

Процедура Печать(Элемент)

//{{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ(Печать)

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

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

ТабДок = Новый ТабличныйДокумент;

Макет = Документы.Заказ.ПолучитьМакет("Печать");

// Заголовок

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

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

// Шапка

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

Шапка.Параметры.Заполнить(ЭтотОбъект);

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

// Заказ

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

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

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

Для Каждого ТекСтрокаЗаказ Из Заказ Цикл

ОбластьЗаказ.Параметры.Заполнить(ТекСтрокаЗаказ);

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

КонецЦикла;

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

Область.Параметры.ВсегоПоДокументу = Заказ.Итог("Сумма");

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

ТабДок.ОтображатьСетку = Ложь;

ТабДок.Защита = Ложь;

ТабДок.ТолькоПросмотр = Ложь;

ТабДок.ОтображатьЗаголовки = Ложь;

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

//}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ

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

Заказ Форма печати

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]