Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
диплом / 1.rtf
Скачиваний:
44
Добавлен:
05.06.2015
Размер:
32.92 Mб
Скачать

2.5 Требования к по на розничных торговых точках

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

Удаленное подключение к основному серверу;

Считывание с основного сервера, при запуске, данных, необходимых для торговли и связанных только с торговой точкой, на которой была запущенна программа;

Работа с несколькими кассирами;

Наличие системы авторизации;

Разделение пользователей на две группы (группа с правами кассира и группа с правами разработчика);

Записывать удаленно на основной сервер данные о совершенных продажах и поступивших заказах;

Возможность работать в автономном режиме. Данная функция отсутствует для роли "Кассир-кладовщик", поскольку обеспечить склады надежным постоянным интернет-соединением будет проще и выгоднее, в отличие от торговых розничных точек. Это объясняется тем, что торговые точки могут часто менять местоположение или вовсе закрываться (например, не приносящие прибыли);

Подключение и работа с фискальным регистратором. Выдача товарного чека;

Панель настроек соединения с основным сервером СУБД.

3. Проектирование базы данных. разработка и настройка необходимых ПО

3.1 Проектирование баз данных основного и архивного серверов

В данном параграфе будет спроектирована база данных только для основного сервера, так как база данных на архивном сервере будет иметь аналогичную структуру и организацию. Но, тем не менее, работа с одной из баз данных, будет сильно отличаться от работы с дрогой [12]. Назначения каждого сервера были описаны в постановке задаче. Согласно назначению архивного сервера, все отношения базы данных на нем должны иметь атрибуты, указывающие на тип совершенной операции с данными (добавление, модификация и запись) и дату совершения операции.

3.1.1 Описание предметной области

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

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

Списки категорий и реализуемой продукции доступны на каждом складе и на каждой торговой розничной точке. Причем на сладах и торговых точках устанавливается своя цена на один и тот же товар.

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

Каждый склад должен определяться наименованием, наименованием района в котором расположен, адресом, и процентами надбавки на минимальные оптовые и розничные цены.

О каждом реализованном товаре должно быть известно: номер сделки купли-продажи (зависит от места реализации), сотрудник отпустивший товар, склад/торговая точка на котором отпущен товар, наименование реализованной продукции, количество проданного товара, цена проданного товара, точное время реализации и итоговая сумма.

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

Сотрудники предприятия делятся на несколько групп. Каждая группа имеет свой уровень доступа к базе данных: для кассиров предназначен самый низкий уровень, а для программистов самый высокий. О каждом сотруднике должно быть известно: ФИО, имя пользователя, пароль, склад/торговая точка на котором работает, адрес, контактный номер и уровень доступа.

Поставка продукции на склады осуществляется непосредственно самими производителями. О каждом производителе должно быть известно: наименование, ИНН, ОГРН, ФИО представителя, юридический адрес и контактный номер. Построение реляционной модели данных

3.1.2 Построение реляционной модели данных

В данном проекте используется реляционная модель данных [6]. Поскольку на сегодняшний день реляционные СУБД стали доминирующим типом программных продуктов для обработки данных. В реляционной модели все данные логически структурированы внутри отношений (таблиц). Каждое отношение имеет имя и состоит из именованных атрибутов (столбцов) данных. Каждый кортеж (строка) данных содержит по одному значению каждого из атрибутов. Большое преимущество реляционной модели заключается именно в этой простоте логической структуры. Хотя, конечно же, за этой простотой скрывается серьезный теоретический фундамент, которого нет у моделей первого поколения (т.е. у сетевых и иерархических моделей). В проектируемой базе данных используются следующие отношения: "l_product" отношение сущности "Товар"; "l_category" отношение сущности категориях товар; "l_stock" и "l_store" отношения сущностей "Склад" и "Торговая точка"; "l_sale", "l_delivery" и "l_zakaz" отношения связей "Реализует", "Поставляет" и "Заказывает"; "l_staff" отношение сущности "Сотрудник"; "l_manufacturer" сущности "Производитель". Структуры отношений проектируемой базы данных:

Таблица 1 - Структура отношения "l_manufacturer"

Наименование атрибута

Описание атрибута

Тип данных

Manufacturer_id

ID производителя

INT(11)

Name

Наименование

VARCHAR(255)

Juristic_person

Юридическое лицо

VARCHAR(255)

Address

Адрес производителя

VARCHAR(255)

OGRN

ОГРН

INT(20)

INN

ИНН

INT(20)

Contact

Контактная информация

VARCHAR(255)

Таблица 2 - Структура отношения "l_product"

Наименование атрибута

Описание атрибута

Тип данных

Product_id

ID продукта

INT(11)

Manufacturer_id

ID производителя

INT(11)

Name

Наименование

VARCHAR(255)

Price

Цена

DECIMAL(15,4)

Date_available

Дата вступления в продажу

DATETIME

Status

Статус активности

INT(1)

Cost

Закупочная цена

DECIMAL(15,4)

Main_category_id

ID родительской категории

INT(11)

Description

Описание

TEXT

Таблица 3 - Структура отношения "l_category"

Наименование атрибута

Описание атрибута

Тип данных

Category_id

ID категории

INT(11)

Parent_id

ID родительской категории

INT(11)

Name

Наименование

VARCHAR(255)

Date_added

Дата добавления

DATETIME

Таблица 4 - Структура отношения "l_stock"

Имя атрибута

Описание атрибута

Тип данных

Stock_id

ID склада

INT(11)

Name

Наименование

VARCHAR(255)

Zone

Район

VARCHAR(255)

Address

Адрес

VARCHAR(255)

Markup_wholesale

Процент оптовой надбавки

DECIMAL(15,4)

Markup_retail

Процент розничной надбавки

DECIMAL(15,4)

Таблица 5 - Структура отношения "l_stores"

Наименование атрибута

Описание атрибута

Тип данных

Store_id

ID торговой точки

INT(11)

Stock_id

ID снабжающего склада

INT(11)

Name

Наименование

VARCHAR(255)

Address

Адрес

VARCHAR(255)

Markup_retail

Процент розничной надбавки

DECIMAL(15,4)

Таблица 6 - Структура отношения "l_staff"

Наименование атрибута

Описание атрибута

Тип данных

Staff_id

ID сотрудника

INT(11)

POE_id

ID склада/торговой точки

INT(11)

UserName

Имя пользователя

VARCHAR(255)

Password

Пароль

VARCHAR(255)

FirstName

Имя

VARCHAR(255)

LastName

Фамилия

VARCHAR(255)

Contact

Контактный номер

INT(11)

LOA

Уровень доступа к БД

INT(3)

Таблица 7 - Структура отношения "l_count_to_stock"

Наименование атрибута

Описание атрибута

Тип данных

Stock_id

ID склада

INT(11)

Product_id

ID продукта

INT(11)

Count

Количество

INT(11)

Таблица 8 - Структура отношения "l_sale"

Наименование атрибута

Описание атрибута

Тип данных

Sale_id

ID продажи

INT(11)

Order_num

№ сделки купли-продажи

INT(11)

Product_id

ID продукта

INT(11)

POS_id

ID склада/торговой точки

INT(11)

Staff_id

ID сотрудника

INT(11)

Time

Время и время продажи

DATETIME

Price

Цена

DECIMAL(15,4)

Count

Количество

INT(11)

Summa

Сумма

DECIMAL(15,4)

Таблица 9 - Структура отношения "l_zakaz"

Наименование атрибутаОписание атрибутаТип данных

Zakaz_id

ID заказа

INT(11)

Order_num

№ заказа

INT(11)

Product_id

ID продукта

INT(11)

POS_id

ID склада/торговой точки

INT(11)

Staff_id

ID сотрудника

INT(11)

Time

Дата и время заказа

DATETIME

Price

Цена

DECIMAL(15,4)

Count

Количество

INT(11)

Summa

Сумма

DECIMAL(15,4)

Таблица 10 - Структура отношения "l_delivery"

Наименование атрибута

Описание атрибута

Тип данных

Delivery_id

ID поставки

INT(11)

Delivery_num

№ поставки

INT(11)

Date

Дата поставки

DATE

Provider_id

ID поставщика

INT(11)

Stock_id

ID склада

INT(11)

Product_id

ID продукта

INT(11)

Count

Количества

INT(11)

.2 Разработка конфигурации 1С: Предприятие

.2.1 Выбор платформы 1С

Эффективность работы с СУБД во многом зависит от версии платформы 1С, на котором будут, собственно, реализовываться задачи по управлению данными. Передо мной, как и перед многими разработчиками, стоял выбор между платформами версий 7.х и 8.х. С одной стороны проверенная временем версия, наличие обильной справочной информации в сети и множество готовых решений. А с другой стороны новая версия, предоставляющая новые возможности, которые не использовать в данной дипломной работе было бы глупо.

Я, конечно же, выбрал последнее. Следует напомнить, так же, что используемый в проекте "движок" интеренет-магазина, в скором времени, возможно, предоставит возможность обмена данными с 1С. Данный модуль пишется для платформ версии 8.2.

Больше всего меня заинтересовал новый объект конфигурации в редакции 8.2.14: "Внешние источники данных". Именно эта версия платформы будет использоваться в нашем проекте.

Объект "Внешние источники данных" позволяет подключаться к внешним источникам данных и использовать эти данные при формировании отчетов [1]. Внешними источниками данных могут быть:

SQL Server

MySQL

- Microsoft Access (*.mdb)

- Microsoft dBase (*.dbf)

Microsoft Excel (*.xls)

Microsoft Paradox (*.db )

Microsoft Text (*.txt; *.csv)

Microsoft Visual FoxPro (*.dbf)

SQL Server Native Client 10.0

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

3.2.2 Доступа к данным через объект "Внешние источники данных"

В разработанной конфигурации используется объект "Внешние источники данных" с именем MySQLDB. На вкладке "Данные" (Рисунок 4), данного объекта, задается список таблиц соответствующих выбираемым таблицам базы данных (Рисунок 3). Список таблиц был задан с через прямое подключение к источнику данных, то есть к базе данных, с использованием строки соединения (Рисунок 2). Объект MySQLDB используется только для формирования отчетов.

Рисунок 2 - Параметры подключения к источнику данных

Рисунок 3 - База данных "Lora_BD"

Рисунок 4 - Добавленные таблицы в информационную базу

3.2.3 Создание подключения к базе данных для управления данными

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

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

Что бы, не устанавливать новое соединение, при каждом запросе к базе данных, в модуле обычного приложения объявлена глобальная переменная, хранящая экземпляр объекта ADO с активным соединением.

В модуле обычного приложения так же следует написать строки, которые закрывают соединение при выходе из 1С. Обычно соединения закрываются автоматически при выходе из приложения, однако лучше закрывать соединения явным образом, когда приложение завершает доступ к базе данных, чтобы занятые ресурсы могли использовать и другие программы. Что бы данная операция запускалась автоматически при выходе из программы, код закрытия соединения будет записан в тело предопределенной процедуры "ПриЗавершенииРаботыСистемы".

3.2.4 Организация объектов информационной базы

.2.4.1 Справочники

Всякий справочник информационной базы соответствует одному или нескольким отношениям базы данных. Все реквизиты справочников имеют тип данных соответствующих им атрибутов отношений. В информационной базе имеются следующие справочники: "Производители", иерархический справочник "Номенклатура", "Склады", "ТорговыеРозничныеТочки" и "Сотрудники" [2].

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

В форме элемента, каждого справочника, с событием ПередЗаписью связанна процедура записи в БД нового элемента справочника, или же обновление уже существующей записи. А при удалении элементов справочника, соответствующие записи таблиц удаляются.

3.2.4.2 Константы

Основными объектами, разрабатываемой информационной базы, индивидуализирующие работу складов, являются константы. Значения многих констант, как и список элементов справочников, обновляются при запуске приложения [3]. Константы "Идентификатор", "НомерПоследнегоРасхода" и "НомерПоследнейПоставки" не обновляются и связанны с определенными задачами. Группа констант так же хранят настройки подключения к базе данных, и имеют свою форму.

Константа "Идентификатор" хранит идентификационный номер склада, через который из базы данных извлекается информация, касающееся только данного склада, и присваивается остальным константам: "Наименование", "Адресс", "ОптоваяНадбавка" и "РозничнаяНадбавка". Так же значение константы "Идентификатор" используется при обновлении пользователей информационной базы. Список пользователей обновляется при завершении работы системы, причем каждый склад получает собственный список пользователей, в соответствии с идентификационным номером склада.

Константы "НомерПоследнегоРасхода" и "НомерПоследнейПоставки" хранят общее количество совершенных операции расхода и прихода, и так же являются последними номерами данных операции. Значение константы "НомерПоследнегоРасхода" увеличивается на единицу, при каждом совершении сделки купли-продажи, а значение константы "НомерПоследнейПоставки" увеличивается на единицу при каждой поставке продукции.

3.2.4.3 Документы

В информационной базе фигурируют три объекта типа "Документы": "Приходная накладная", "Расходная накладная" и "Обработка заказов" [4].

Первые два документа заносят записи в таблицы "l_delivery" и "l_sale". Формы данных документов соответствуют этим таблицам по структуре и типам данных. Записи документов при завершении работы полностью удаляются. Это связанно с тем, что справочник "Номенклатура", информационной базы, обновляется при каждом запуске системы, после чего ссылки на объекты номенклатуры становятся недействительными. Все же возможно и обновление поля "товар", в проведенных документах, ссылающегося на объект Справочники.Номенклатура, посредством поиска элемента по коду, но данная операция потребует неоправданных затрат ресурсов интернет-соединения, при передачи больших объемов информации. Так же проведение документов "Приходная накладная" и "Расходная накладная" меняют записи таблицы "l_count_to_stock", для учета количества продукции на складе.

Документ "Обработка заказов" связан с таблицей "l_zakaz". И отображает заказы с торговых розничных точек. Данный документ имеет ту же структуру что и документ "РасходнаяНакладная" и выполняет те же процедуры при проведении, но при этом соответствующий поля, обработанного заказа, из таблицы "l_zakaz" удаляются.

3.2.4.4 Отчеты

В разработанной конфигурации используются два отчета: "Прибыль по районам" и "Рейтинг товаров". Оба отчета используют внешний источник данных "MySQLDB". Причем для соединения с архивным сервером используются методы объекта Внешние источники данных и строка соединения, используемая экземпляром объекта ADODB. В отчете "Прибыль по районам" для отображения результатов используется диаграмма (Рисунок 5). Каждый серия диаграммы соответствует одному району, и показывает уровень прибыли, за указанный период.

Рисунок 5 - Отчет о прибыльности по районам

Отчет "Рейтинг товар" показывает количество каждого проданного товара за установленный период времени, в виде диаграммы (Рисунок 6).

Рисунок 6 - Отчет по рейтингам товаров

Для проведения более сложных анализов следует использовать более подходящие программные продукты, специализированные на работе с базами данных, поскольку платформа 1С имеет мало инструментов для работы с внешними источниками данных.

Соседние файлы в папке диплом