АИС "Работа с покупателями"

ФункцияглВернутьЦену(Номенклатура,ТипЦены,ДатаЦены=0,ЦенаЦены=0,ЕдЦены=0,ВалЦены=0,НаценкаЦены=0,НайденнаяЦена=0,НеДобавИздержки=0)ЭкспортДалее ФункцияGlVozrOst(кд_ном)ЭкспортДалее ФункцияGlVozrCeni()ЭкспортДалее ФункцияGlVozrNom()ЭкспортДалее //############################################################################### //БлокдляработысинтернетмагазиномчерезWebслужбу //******************************************************************* //Функциявозвращаетпараметрпоимениизфайлаnastr.txtрабочегокаталога //Форматфайла: //строкиначинающиесяс#-коментарии //имяпараметразадаётсякак[имя],азначениележитнастрочкувнизу ФункцияПарамПоИмени(пар) ПеремномСтрок; Перемстр; Ткст=СоздатьОбъект("Текст"); Ткст.КодоваяСтраница(0); Ткст.Открыть(КаталогИБ()+"nastr.txt"); номСтрок=1; ПоканомСтрок<=Ткст.КоличествоСтрок()Цикл стр=Ткст.ПолучитьСтроку(номСтрок); //удаляемпробелывначалеиконцестроки СокрЛП(стр); ЕслистрДлина(стр)>0Тогда //Есликоментарий,топропускаем ЕслиЛев(стр,1)="#"Тогда номСтрок=номСтрок+1; Продолжить; КонецЕсли; //Есликакойтопараметр,тогда ЕслиЛев(стр,1)="["Тогда стр=лев(стр,стрДлина(стр)-1); стр=прав(стр,стрДлина(стр)-1); //Еслиэтотпараметр-искомый Еслистр=парТогда ВозвратСокрЛП(Ткст.ПолучитьСтроку(номСтрок+1)); КонецЕсли; КонецЕсли; КонецЕсли; номСтрок=номСтрок+1; КонецЦикла; Возврат"0";//Еслиничегоненашли-возвращаетноль КонецФункции //****************************************************************** //Функциявозвращаетколичествотоварапоегокоду,преднозначенадлявыводачерезWebслужбу ФункцияGlVozrOst(кд_ном)Экспорт ПеремОст; Ном=создатьОбъект("Справочник.Номенклатура"); Склд=СоздатьОбъект("Справочник.Склады"); Регр=СоздатьОбъект("Регистр.ОстаткиТМЦ"); Склд.НайтиПоКоду("00001"); Ном.НайтиПоКоду(кд_ном); Ост=0; Ост=Регр.СводныйОстаток(,ном.ТекущийЭлемент(),Склд.ТекущийЭлемент(),,"Количество"); ВозвратОст; КонецФункции //******************************************************************* //Функциявозвращаеттаблицузначений-номенклатурускодомиеёпараметры ФункцияGlVozrNom()Экспорт ПеремОст,ТабЗн; ПеремКатВыгр; Запрос=СоздатьОбъект("Запрос"); ТекстЗапроса= "//{{ЗАПРОС(Номенклатура) |Ном=Справочник.Номенклатура.ТекущийЭлемент; |ГруппировкаНом;"//}}ЗАПРОС ; ЕслиЗапрос.Выполнить(ТекстЗапроса)=0Тогда Предупреждение("Ошибкавзапросе"); КонецЕсли; КатВыгр=ПарамПоИмени("КаталогВыгр")+ПарамПоИмени("Ном"); ДБФ=СоздатьОбъект("XBase"); ДБФ.ДобавитьПоле("EtoGruppa",1,1,0); ДБФ.ДобавитьПоле("KodNom",2,9,0); ДБФ.ДобавитьПоле("Otec",2,9,0); ДБФ.ДобавитьПоле("Strana",2,20,0); ДБФ.ДобавитьПоле("Naimenov",2,250,0); ДБФ.СоздатьФайл(КатВыгр+"nomen.dbf"); ДБФ.КодоваяСтраница(1); Запрос.ВНачалоВыборки(); ПокаЗапрос.Группировка(1)=1Цикл ДБФ.Добавить(); ДБФ.KodNom=Запрос.Ном.Код; ДБФ.Otec=Запрос.Ном.Родитель.Код; ДБФ.Strana=Запрос.Ном.СтранаПроисхождения.Наименование;; ДБФ.Naimenov=Запрос.Ном.Наименование; ДБФ.EtoGruppa=Запрос.ЭтоГруппа(1); ДБФ.Записать(); КонецЦикла; Возврат1; КонецФункции //******************************************************************* //Возвращаетценупоуказаннымпарметрам-используетсявзапросевнизу ФункцияВозрНомерПрайса(Кд)Экспорт ЕслиКд="00002"Тогда Возврат1; ИначеЕслиКд="00003"Тогда Возврат2; ИначеЕслиКд="00004"Тогда Возврат3; ИначеЕслиКд="00005"Тогда Возврат4; ИначеЕслиКд="00006"Тогда Возврат5; ИначеЕслиКд="00007"Тогда Возврат6; ИначеЕслиКд="00001"Тогда Возврат0; Иначе Возврат33;//Еслиошибка.0нельзя,т.к.вдругэтоунасболеенизкие КонецЕсли; КонецФункции //******************************************************************* //Функциявозвращаетценынаноменклатуруиномерпрайса ФункцияGlVozrCeni()Экспорт ПеремОст,ТабЗн; ПеремКатВыгр; ПеремизПроц; Запрос=СоздатьОбъект("Запрос"); ТекстЗапроса= "//{{ЗАПРОС(Цены) |Номенклатура=Справочник.Цены.Владелец; |ТипКод=Справочник.Цены.ТипЦен.Код; |Тип=Справочник.Цены.ТипЦен; |Цен=Справочник.Цены.ТекущийЭлемент; |ГруппировкаЦен; |"//}}ЗАПРОС ; ЕслиЗапрос.Выполнить(ТекстЗапроса)=0Тогда Предупреждение("Ошибкавзапросе"); КонецЕсли; КатВыгр=ПарамПоИмени("КаталогВыгр")+ПарамПоИмени("Цен"); ДБФ=СоздатьОбъект("XBase"); ДБФ.ДобавитьПоле("Cena",1,8,2); ДБФ.ДобавитьПоле("Nomen",2,9,0); ДБФ.ДобавитьПоле("Prajs",1,2,0); ДБФ.СоздатьФайл(КатВыгр+"Ceni.dbf"); ДБФ.КодоваяСтраница(1); Запрос.ВНачалоВыборки(); ПокаЗапрос.Группировка(1)=1Цикл Если(Запрос.ТипКод<>"00010")Тогда ДБФ.Добавить(); глВернутьЦену(Запрос.Номенклатура,Запрос.Тип,,изПроц,,,,0); ДБФ.Cena=изПроц; ДБФ.Nomen=Запрос.Номенклатура.Код; ДБФ.Prajs=ВозрНомерПрайса(Запрос.ТипКод); ДБФ.Записать(); КонецЕсли; КонецЦикла; Возврат1; КонецФункции //******************************************************************* //Функциявозвращаетостаткиноменклатуры ФункцияGlVozrOstatki()Экспорт ПеремкатВыгр,дат; Перемск; ОСТ=СоздатьОбъект("XBase"); ОСТ.ДобавитьПоле("Kod",2,9,0); ОСТ.ДобавитьПоле("Ostatok",1,5,0); катВыгр=ПарамПоИмени("КаталогВыгр")+ПарамПоИмени("Ост"); ОСТ.СоздатьФайл(катВыгр+"ost.dbf");

АИС Работа с покупателями

Реферат

Компьютеры, программирование

Другие рефераты по предмету

Компьютеры, программирование

Сдать работу со 100% гаранией
о которое системой 1С гарантируется, что данные в регистрах соответствуют действительности. Слово «Группировка» осуществляет группировку записей по внутренним переменным, позволяя перебирать результаты выполненного запроса по группировке, а функция «КонОст» указывает запросу вернуть значение переменной на конец периода (в нашем случае на «точку актуальности»).

Также на этом маленьком фрагменте можно увидеть преимущества использования русских слов при написании программы. Комментарии в коде просто не нужны.

Так же, как и при описании обработки сохранения данных на флеш накопитель.

 

4.2 Автоматизация работы кассира в магазине

Кроме создания распределённой базы данных автоматизация включает в себя такие пункты как:

  1. Создание обработки, позволяющей ускорить печать ценников,
  2. Доработка документа «Реализация» для печати чеков продажи на фискальном регистраторе,
  3. Доработка документа «Возврат продажи» для печати чеков возврата продажи,
  4. Создание обработки, выводящей отчёт по продажам кассирам в указанном временном интервале,
  5. Изменение интерфейса кассира.

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

Работа пользователя с обработками и моими доработками ядра системы подробно описана в руководстве пользователя, представленного в разделе 5.1.

Фискальный регистратор устройство для печати чеков по операциям купли-продажи. Данные по суммам продаж хранятся во внутренней памяти. Устройство регистрируется в налоговых органах, и ими же могут проверяться такие моменты:

  1. Каждому покупателю выдаётся чек,
  2. Каждый чек содержит информацию о компании продавце,
  3. Сумма продаж и возвратов продаж за месяц.

В компании используются фискальные регистраторы модели «ШТРИХ ФР-К». К каждому устройству прилагаются драйвера, документация и пример работы для «1С Предприятия 7.7». Устройство подключается к компьютеру через интерфейс «RS-232». С помощью прилагаемого программного обеспечения были настроены параметры вывода информации на чек:

  1. Наименования отделов,
  2. Вывод дробной части суммы,
  3. Информационное сообщение.

Возврат может осуществляться только при наличии чека. Для сопоставления чека с документом «Реализация» на каждом чеке выводится номер документа реализации. При оформлении возврата оператору надо выбрать документ-основание, номер которого она берёт из чека. Номер печатается под служебной информацией, без пояснения, не привлекая взгляд.

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

При возврате продажи оформляется документ «возврат продажи», при проведении которого автоматически печатается чек на возврат.

В конце рабочего дня оператор должен запустить обработку «Акт сверки», которая покажет ему сумму продаж (за минусом возвратов) за день. Данная сумма должна совпадать с фискальным отчётом (отчёт фискального регистратора по продажам при закрытии смены) и денежной суммой в кассе. Данная обработка представлена в разделе 5.1.6.

 

4.3 WEB приложение

Стартовая страница приложения показана на рисунке 10.

Рисунок 10 стартовая страница web портала

На рисунке 10 отмечены пользовательские элементы управления.

 

4.3.1 Условия на работу WEB приложения у удалённого пользователя.

При разработке Интернет портала приходится выбирать между кроссплатформеностью и наглядностью приложения. В данном случае было выбранно удобство и красота конечного продукта. При возникновении потребности приложение может быть модернизировано соответствующим образом. Требования к компьютеру WEB пользователя таковы:

  1. Internet Explorer 6 x,
  2. Разрешение экрана выше, либо равное 1024x768,
  3. Разрешение всплывающих окон (для Windows XP SP2),
  4. Разрешение использования Java Script.

 

4.3.2 Используемые средства

 

4.3.2.1 Стандартные средства «WEB программирования»

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

 

4.3.2.2 ASP.NET 2.0

Были использованы следующие объекты ASP.NET 2.0:

  1. FileUpload используется на странице «men.aspx». Объект служит для загрузки выбранного пользователем файла на сторону сервера. Данный объект был использован для загрузки на сторону сервера файла «ost.dbf», содержащего остатки розничного магазина. Этот файл автоматически сохраняется на внешний носитель информации при выгрузке накладной через обработку, описанную в разделе 5.1.8,
  2. DataView таблица отображения данных. В «Visual Studio 2003» для отображения данных в табличном виде использовался компонент «DataGrid», требующий большего объёма программного кода, чем «DataView». В данном компоненте автоматизированы такие действия, как: постраничный вывод указанного количества записей, выбор строки, редактирование строки. В качестве источника данных используется объект типа «SqlDataSource»,
  3. Label. Для отображения пояснительных надписей,
  4. Login. Данный класс служит для авторизации пользователя. Представляет собой объединённые в одну структуру поля для ввода имени пользователя, пароля, и поясняющие надписи к ним.

 

4.3.2.3 ADO.NET

Большая часть кода приложения это работа с БД. Для работы с SQL Server использовались классы: «SqlConnection», «SqlCommand». Не буду описывать работу из Visual Studio с MS SQL Server. Она хорошо описана в [16], [22], [23].

Были использованы такие методы работы с данными как:

  1. Выполнение хранимых процедур на SQL Servere без возврата значения (напиример «NomenObnovi», «DobTov»)
  2. Выполнение хранимых процедур на SQL Servere с возвратом значений («NewZakaz»)
  3. Выполнение SQL кода, сформированного WEB сервером по параметрам (например сохранение прайс-листа в формате Excel представлен в приложении Е).
  4. Выгрузка данных в DataSet с помощью метода Fill.

Тексты некоторых хранимых процедур представлены в приложении Е.

 

4.3.3 Получение данных от WEB Службы

Для подключения к WEB службе используется мастер Visual Studio. После этого в окне «SolutionExplorer» появляется пункт «WebReferences» с ссылкой на WEB службу. После этого доступ к методам WEB службы можно получить лишь одной строкой: «Sluzba.Service ws = new Sluzba.Service();». Теперь методы WEB можно вызывать с помощью конструкции: ws.«Имя метода».

Фрагмент кода страницы «men», работы с Web службой представлен в приложении Д. Важное свойство WEB службы это время ожидания ответа (Timeout). По умолчанию оно составляет 1 минуту. Но максимальное время работы методов WEB службы разрабатываемой АИС составляет 3 минуты, поэтому этому свойству было присвоено значение равное 5 минутам (задаётся в секундах). Далее работа с Web службой такая же, как с обычным классом.

Получение результата от WEB службы занимает максимум 3 минуты. Полторы минуты занимает перенос в таблицу «_Nomenklatura» (10000 записей), 70 секунд занимает перенос в таблицу «_Ostatki» (10000 записей) и чуть более двух минут происходит выгрузка цен (63000 записей). Более долгая задержка выгрузки цен объясняется не большим (ударение на «о») количеством записей, а большим временем, затрачиваемым системой 1С на расчёт динамических цен. Я считаю, что было получено максимально допустимое быстродействие по получению и передачи данных.

 

4.3.4 Кэширование данных

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

В WEB приложении было использовано и явное кэширование. Для предотвращения повторной загрузки дерева номенклатуры в файле «derev.ascx» используется директива: «<%@ OutputCache Duration = "600" VaryByParam="none" %>». Данная строка указывает, что данный фрагмент страницы нужно кэшировать и на стороне пользователя и на стороне сервера (это выставленно по умолчанию) в течении 600 секунд.

 

4.3.5

Похожие работы

<< < 2 3 4 5 6 7 8 9 10 > >>