- Неявная компиляция исходного кода сервиса в исполняемый файл (dll). Службу можно написать и с использованием программы «Блокнот», указать путь к файлу в IIS и сервис заработает,
- Неограниченные возможности по созданию программного кода. Доступны все технологии платформы программирования от Microsoft. Я использовал технологию доступа к данным . Никаких проблем с её использованием не возникало.
Приложение написано так, что нет дублирования программного кода – задача раздробленна на процедуры и функции – public и private. Служба представляет собой класс. Создание WEB службы аналогично написанию программы на «Java». Язык программирования «С» отличался от «Java» (для программиста) тем, что в «Java» можно пользоваться лишь классами (их процедурами, функциями, переменными), программируя их взаимодействие. В Visual C# всё так же скрыто за классами. С такими тенденциями, через пару лет останется только ООП ввиду всех его преимуществ.
WEB служба функционирует на сервере 1С, а данные передаются через сеть на WEB сервер. Схему локальной сети можно посмотреть на рисунке 1. Основную часть времени работы службы составляет выполнение процедур 1С. Время сериализации набора данных и время на отклик службы можно не учитывать(настолько оно мало). Таким образом можно сказать, что WEB служба показывает максимальную производительность.
2.4 Функции приложения
Структура страниц *.aspx и связей между ними (для построения использовался продукт «MS Visio Studio 2005»). Вид главного окна на этапе разработки представлен на рисунке 5.

Рисунок 5 – главное окно приложения Visual Studio на этапе разработки
2.4.1 Схема работа Интернет сайта

Рисунок 6 – Схема работы Интернет портала
Таблица 1 - Графические обозначения:
Графическое обозначение | Описание |
| Стартовая страница |
| Файл с расширением «aspx» - серверная страница, формируемая на стороне сервера в HTML код при запросе её пользователем. Конкретизация по именам файлов страниц. |
| Файл с расширением «ascx». Пользовательский элемент управления. |
| Файл в формате XML. |
| WEB Служба. В моей работе она одна. |
| База данный MS SQL Server. Конкретизация по именам задействованных таблиц. |
| Обработка, выполняющаяся на стороне сервера. Пояснение обработок содержится в подпункте «Описание действий». |
| Графический файл (Bitmap). |
| Файл в формате Microsoft Excel |
| Отправка почтового сообщения |
Стрелки показывают направление движения данных. Например, стрелка под номером 16 означает, что данные, полученные с формы «Skolko. aspx» меняют или добавляют записи в таблица. Стрелка под номером 26 показывает аналогично предыдущей, но показывает, что данные не только пишутся в данную таблицу, но и берутся из неё для отображения пользователю. Стрелка под номером «14» показывает, что данные берутся из таблицы «_Nomenklatura», но записи таблицы не изменяются.
В схеме не отражено:
- Протоколирование всех действий в таблицу _Statistika,
- Схема авторизации пользователей.
2.4.2 Функциональное назначение страниц
- Default.aspx. Стартовая страница приложения. Данная страница представлена на рисунке в следующем подразделе. На неё возложены такие функции: отображение информации о предприятии, авторизация пользователя, заказ товара,
- Men.aspx. Страница для менеджеров. На данной странице осуществляется авторизация менеджеров, запускается процедура переноса данных с 1С через WEB службу в MS SQL Server, выгрузка остатков с удалённых магазинов, переход к административным страницам «Zakazi. aspx», «Statistika. aspx», «Polzovateli. aspx»,
- Zakazi.aspx. Административная страница. Служит для просмотра всех заказов, их детального просмотра и изменения статуса выбранного заказа,
- Statistika.aspx. Административная страница для просмотра статистики по использованию сайта,
- Polzovateli.aspx. Административная страница для редактирования списка пользователей, добавления новых пользователей и получения статистики по выбранному пользователю,
- Skolko.aspx. Задание количества выбранного товара в заказе при его формировании на странице «default. aspx»,
- ShemaProezda.aspx. Информация о торговых точках компании. Схема проезда, график работы, телефоны, адреса,
- Kontakt.aspx. Отправка текстового сообщение на электронный адрес выбранному должностному лицу. Не модерируется. Отправка происходит мгновенно,
- Prajs.aspx. С этой страницы происходит запуск формирования прайс листа в формате xls и передача полученного файла пользователю через диалоговое окно «Сохранить Как…»,
- Zakaz.aspx. Просмотр формируемого заказа пользователем, его редактирование и подтверждение.
В программе использовались «пользовательские элементы управления». Под этим понятием подразумевается динамически включаемый код из файла с расширением «ascx». Я использовал два подобных элемента. В какие страницы они включаются показано на рисунке 6. Данные объекты написаны на языке JavaScript. Код для объекта «derevo. ascx» позаимствован из [11] и доработан до нужного результата.
3 ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ ПРИЛОЖЕНИЯ
3.1 Общие принципы организации информационной базы
Все данные централизованно хранятся на сервере 1С. С сервера 1С поступают на удалённые торговые точки накладные, а на Web сервер поступают данные по ассортименту, остаткам и текущим ценам. С удалённых магазинов регулярно снимаются остатки, которые идут в базу данных Web сервера.
3.2 Передача данных удалённым точкам
Передача данных описана в разделе 2.2.
Передаются документы «Реализация», в том числе:
- наименование номенклатурной позиции,
- количество переданного товара,
- страна производитель,
- единицы учёта,
- цена отпускная,
- цена закупочная.
3.3 Ведение БД на WEB сервере с использованием SQL Server 2000
Концептуальная модель базы данных SQL Server показана на рисунке 7.

Рисунок 7 – Концептуальная модель базы данных на стороне WEB сервера (SQL Server).
Заполнение данной БД происходит посредством хранимых процедур, код некоторых из них приведён в приложении Г. В этом же приложение можно посмотреть пример выполнения SQL кода, формируемого в .
Разграничение доступа к БД на уровне пользователей не использовалось ввиду ненадобности. Организованно резервное копирование средствами СУБД. Также имеется ограничение ссылочной целостности. Все поля, по которым осуществляется поиск индексированны.
Таблицы БД. Их содержание и назначение:
Таблица 2 – список протоколируемых действий
Поле | Тип | Назначение |
KodDejstv | Int | Автоинкрементное ключевое поле |
Dejstvie | C(100) | Действие |
Таблица 3 – ведение статистики по действиям пользователей в системе
Поле | Тип | Назначение |
KodStat | Int | Автоинкрементное ключевое поле |
Dejstv | Int | Связь с таблицей _StoDel |
Data | Date | Дата и время действия |
Polzovatel | int | Ссылка на таблицу _Polzovateli. (Если пользователь авторизирован) |
Таблица 4 – список продаваемых товаров
Поле | Тип | Назначение |
KodNom | С(9) | Ключевое поле |
Otec | C(9) | Родитель (для построения дерева) |
Naimenov | Int | Полное наименование |
Strana | C(120) | Страна производитель |
MinPartija | int | Минимальное количество покупки для оптовика |
Photo | C(200) | Путь к фотографии товара |
Opisanie | C(600) | Описание товара |
EtoGruppa | smallInt | Позиция является группой |
Таблица 5 – цены на товары
Поле | Тип | Назначение |
KodCeni | Int | Автоинкрементное поле |
Cena | money | Цена в рублях |
Nomen | С(9) | Ссылка на _Nomenklatura |
NomerPrajsa | smallint | Номер прайса |
Таблица 6 – остатки товаров
Поле | Тип | Назначение |
KodOstatka | Int | Автоинкрементное поле |
Kolichestvo | Int | Остаток |
Magazin | Int | Ссылка на _Magazini |
Nomen | C(9) | Ссылка на _Nomenkalatura |
Таблица 7 – остатки товаров
Поле | Тип | Назначение |
KodMagazina | Int | Автоинкрементное ключевое поле |
Naimenovanie | C(200) | Название магазина |
Adress | C(200) | Адрес |
Telephon | C(30) | Телефоны |
VremjaRaboti | C(50) | Время работы |
ShemaProezda | C(120) | Путь к файлу. jpg, содержащему схему проезда к данному магазину |
DataOstatkov | DateTime | Дата и время прошлой выгрузки остатков в _Ostatki по данному магазину |
Таблица 8 – менеджеры (администраторы портала)
Поле | Тип | Назначение |
KodMenedzera | Int | Автоинкрементное ключевое поле |
Imja | C(20) | Имя доступа менеджера |
Pass | C(15) | Пароль для доступа |
C(12) | Электронный адрес | |
DataZahoda | DateTime | Время последнего посещения |
Таблица 9 – новости для покупателей.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 |











