Web-расширение.
Часть 3.Пример Web-приложения «Портал реализатора»
Портал реализатора является Web-приложением, обеспечивающим доступ через Web к общей торговой системе предприятия. Возможности доступа через портал ограничены функциями, необходимыми для реализаторов. Используя портал, реализаторы могут связываться с торговым предприятием без ограничений на место и время связи и работать с торговой системой, отчитываясь за проданные товары и заказывая новые. Конфигурация для портала основана на типовой конфигурации «Торговля+Склад» ред.8. Так как доступ реализаторов к 1С:Предприятию в ней изначально не предполагался, то конфигурация доработана для использования с порталом.
Все документы, создаваемый реализатором, записываются в торговую систему, но не проводятся - их проведением управляет администратор портала или менеджер. До проведения документы доступны для просмотра и модификации, после проведения - только для просмотра.
Пользователь может работать в портале в следующих режимах:
Для каждого режима в системе присутствует краткое описание назначения режима и возможные действия в этом режиме. Для вызова справки на каждой странице расположена ссылка «подробнее об этом режиме».
Завершение работы с порталом осуществляется выбором пункта меню «Завершение работы».
В качестве конфигурации используется типовая конфигурация «Торговля+Склад» 7.70.808. В конфигурацию добавлена обработка Сессия, содержащая модуль сессии, и табличный документ Прайс, используемый при подготовке прайс-листа. Для работы с Web-сервером добавлены два пользователя WebSessionI и WebSession2 с правом на Web-расширение.
Для редактирования информации для реализаторов используется внешний отчет InfoSet.ert. Вся информация организована следующим образом:
· на верхнем уровне находятся категории сообщений. Названия категорий выводятся в заголовки «окон» сообщений на информационной странице;
· каждая категория содержит сообщения, выводимые в «окна» категорий.
· кажадя категория может быть специально помечена. В этом случае «окно» категории выводится в левом столбце информационной страницы. Непомеченные категории выводятся в правом столбце страницы. Категории, не содержащие сообщений, на информационную страницу не выводятся.
В остальном конфигурация оставлена неизменной.
Для защиты от неавторизованного входа в систему в начале каждой страницы находится код:
Если ПроверкаРегистрации(Response) = 0 Тогда Перейти -Выход;
КонецЕсли ;
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "no-cache") ;
Функция модуля сессии ПроверкаРегистрации проверяет авторизацию пользователя в портале. Если пользователь не прошел через процедуру регистрации в системе, функция перенаправляет запрос на вход портала Default.asp-После успешного входа в портал все последующие действия записываются в журнал регистрации с указанием имени пользователя, указанного при входе. Строки Response. CacheConrol и Response. AddHeader запрещают кэширование страницы на компьютере пользователя - это необходимо для правильной работы портала при перемещениях по кнопкам браузера Back и Next.
Страница с информацией появляется сразу после входа в систему и предназначена для получения общей информации, касающейся реализатора: долги, лучшие товары, рекомендации по ценам и рекламе и т.д. Вся информация, кроме данных по долгам, одинакова для всех реализаторов и редактируется внешним отчетом InfbSet.ert.
Товары могут быть как выбраны из каталога (для этого используется ссылка «Выбор товаров из каталога»), так и добавлены к заказу по заранее известному коду. По каталогу товаров можно передвигаться как произвольно - используя список групп, так и последовательно -по приведенным ссылкам на группы товаров. Количество заказанного товара можно изменять, при этом для автоматического изменения цены достаточно перейти в другое поле ввода или элемент управления.
Если нужно найти некоторые товары по подстроке из названия, то можно воспользоваться поиском «Поиск товаров по строке». Строка поиска может содержать пробелы для поиска товаров с наменованиями, содержащими в качестве подстрок все строки, разделенные пробелами- Общая сумма документа автоматически изменяется при изменении количества заказываемого товара. Щелкнув по ссылке «Заказанные товары», в любой момент можно просмотреть список товаров в текущем заказе. При необходимости можно начать подбор товаров заново, полностью очистив текущий заказ (для этого небходимо нажать кнопку «Очистить»). При входе на страницу параметры нового заказа заполняются автоматически, но при необходимости можно создать новый заказ, нажав кнопку «Новый». При нажатии кнопки «Записать» вся информация о текущем заказе будет записана в соответствующий документ торговой системы. Удаление текущего заказа выпоняется кнопкой "Удалить". Для просмотра предыдущих документов нужно ввести начало и конец нужного периода и щелкнуть по ссылке "Показать заказы за период".
Следует принимать во внимание, что вся информация о текущем заказе до нажатия кнопки «Записать» не занесена в информационную базу.
Эта страница используется для выбора нужного заказа из списка имеющихся документов. Заказы выводятся только за указанный период. Для выбора заказа щелкните по ссылке, соответствующей нужному документу. Если заказ еще не проведен, то его можно удалить, нажав кнопку «X».
Эта страница предназначена для ввода реализатором документов о реализации имеющегося у него товара и просмотра ранее введенных документов. В списке товаров выводятся только товары, реально имеющиеся у реализатора на момент реализации или соответствующие просматриваемому документу. Вы можете как ввести данные по новой реализации (нажав «Новый»), так и просмотреть и изменить документы о предыдущих реализациях. Для внесения данных о реализации введите дату реализации и количество реализованных товаров и нажмите кнопку «Записать». Для просмотра предыдущих документов нужно ввести начало и конец нужного периода и щелкнуть по ссылке «Показать список реализации за период». Для удаления документа о реализации нажмите кнопку «Удалить».
Следует принимать во внимание, что вся информация о текущем реализации до нажатия кнопки «Записать» не занесена в информационную базу.
Эта страница используется для выбора нужной реализации из списка имеющихся документов. Документы о реализации выводятся только за указанный период.
Эта страница предназначена для проведения реализатором инвентаризации имеющегося у него товара. В списке товаров выводятся только товары, реально имеющиеся у реализатора на момент инвентаризации. Вы можете как вести данные для новой инвентаризации, так и просмотреть и изменить предыдущие инвентаризации. Изменения в предыдущих инвентаризациях возможны только в случае, если соответствующие документы еще не проведены в торговой организации.
Для ввода инвентаризации введите дату инвентаризации и остатки по товарам и нажмите кнопку «Записать». Для просмотра предыдущих инвентаризаций введите начало и конец нужного периода и нажмите ссылку «Показать список инвентаризаций». Для изменения предыдущих инвентаризаций необходимо при просмотре списка инвентаризаций выбрать нужный документ, внести в него изменения и нажать «Записать». Для удаления документа об инвентаризации нажмите кнопку «Удалить».
Эта страница используется для выбора нужной инвентаризации из списка имеющихся документов. Документы об инвентаризации выводятся только за указанный период.
Для выбора инвентаризации введите начало и конец нужного периода и затем нажмите ссылку, соответствующую нужному документу.
Эта страница предназначена для получения информации о расчетах между реализатором и торговым предприятием. Для получения этой информации можно использовать три различных варианта отчета:
· краткий. Показывает изменение общей задолженности за указанный период.
· развернутый. Кроме изменения задолженности приводит список документов, образующих задолженность.
· подробный. В дополнение к развернутому отчету приводятся взаимопогашения документов.
Для получения отчета введите начало и конец нужного периода и нажмите кнопку, соответствующую выбранному типу отчета. Отчет можно вывести в отдельном окне браузера, установив флаг показа "Показать отчет в отдельном окне".
Эта страница предназначена для получения информации о реализации товаров, полученных реализатором от торгового предприятия. Для получения этой информации можно использовать три различных варианта отчета:
· краткий. Показывает изменение остатков товаров за указанный период.
· развернутый. Кроме изменения остатков выводит список документов, изменявших остатки товаров.
· подробный. В дополнение к развернутому отчету приводятся документы по изменениям остатков товаров в течение указанного периода.
Для получения отчета введите начало и конец нужного периода и нажмите кнопку, соответствующую выбранному типу отчета. Отчет можно вывести в отдельном окне браузера, установив флаг показа "Показать отчет в отдельном окне".
Эту страницу можно распечатать как готовый прайс-лист, так и использовать ее как предварительный шаблон для подготовки к печати прайс-листа конкретного реализатора. Для использования страницы как шаблона ее необходимо сохранить в файл и затем использовать полученный файл в программе подготовки прайс-листа (например, Microsoft Word или Excel).
Далее перечислены страницы проекта, составляющие портал. Для передачи данных между браузером и Web-сервероми используется стандартный метод передачи параметров GET. Это позволяет обращаться к значениям параметров из языка, используя стандартную функцию Request.QueryString.
Common.js Содержит функции на JavaScript, исполняемые клиентским приложением. Common.js содержит единственную функцию ShowHelp, используемую при показе контекстной справки по режиму.
Содержит стили, определяющие общий дизайн приложения и используемые при визуализации отчетов.
Файл, содержащий реализацию предопределенных функций приложения Session_OnStart и Session_OnStop.
Страница, формирующая общий вид приложения. В левой области располагается основное меню приложения, в правой -информация, соответствующая текущему режиму работы.
Страница, содержащая основное меню приложения.
Начальная страница приложения. На этой странице расположена идентификация пользователя. На эту страницу переадресовываются все запросы клиентского приложения, если пользователь еще не авторизован в портале.
Страница, завершающая сессию пользователя с порталом.
Информационная страница. Информация о задолженности реализатора формируется функцией Информация_Досье из модуля сессии. Остальной текст страницы одинаков для всех реализаторов и берется из файла Web_Info.val, формируемый внешним отчетом InfoSetert.
Достаточно сложная страница, предназначенная для просмотра предыдущих товарных заказов и редактирования документов о заказах. Order.asp состоит из двух областей (frames), верхняя область предназначена для управления и всегда содержит страницу Ord_Head.asp, нижняя область при выполнении различных действий может содержать одну из страниц Ord_Cat.asp, Ord_FG.asp, Ord_Item.asp, Ord_List.asp.
Страница обрабатывает параметр Action со следующими значениями:
• New. Это значение эквивалентно отсутствию параметра Action. По этому значению создается новый документ
«Документ. Расход наяРеализатора» с атрибутами
Заказ.Клиент = Реализатор;
Заказ.Валюта = Реализатор.ВалютаВзаиморасчетов;
Заказ.ТипЦен = Перечисление. ТипыРасхЦен. Мелкооптовые ;
Заказ.ПризнакНакладной = Перечисление.ПризнРасхНакл.Продажа ;
Заказ.Дата_Курса = Заказ.ДатаДок;
Заказ.Курс = Заказ.Валюта.Курс.Получить(Заказ.Дата_Курса) ;
Заказ.Склад = Константа.ОсноанойСклад;
• Edit. Это значение предназначено для просмотра и редактирования уже существующего документа. Дополнительно к параметру Action в запрос включается параметр Order с значением, возвращенным функцией ЗначениеВСтрокуВнутр для нужного документа. В нижнюю область формы заказа выводится страница Ord_Item.asp.
• Delete. Это значение используется для удаления текущего заказа из системы. Удаление реализовано функцией модуля сессии УдалитьДокумент, в которую передается заказ, реализатор и переменная, в которую помещается сообщение об ошибке при удалении документа (если такая произошла).
Страница для перехода по ветвям каталога товаров и выбора необходимого товара. Эта страница выводится по умолчанию в нижней части формы заказа при переходе в режим заказа. В дальнейшем она может быть вызвана по ссылке «Выбор товаров из каталога». Страница использует функцию Заказ_Изменения из модуля сессии.
Страница для вывода результатов поиска товаров. Эта страница обрабатывает параметр Action со следующими значениями:
• ClearOrder. Это значение удаляет все строки заказа. Страница использует функцию Заказ_Изменения из модуля
Страница для просмотра текущего заказа. Обрабатывает параметр Action со следующими значениями:
• Delline. Это значение удаляет строки с номером, указанным в параметре LineNumber;
• ClearOrder. Это значение удаляет всех строк заказа.
Страница использует функцию Заказ_ Изменения из модуля сессии.
Страница для просмотра заказов за конкретный период. Обрабатывает параметр Action со следующими значениями:
• DelOrder. Это значение предназначено для удаления заказа с реквизитами, указанными в параметре Order.
Параметры BegDate и EndDate используются для указания соответственно начальной и конечной даты периода. Страница использует функцию УдалитьДокумент из модуля сессии.
Страница, предназначенная для просмотра предыдущих реализации и редактирования документов о реализованных товарах.
Страница обрабатывает параметр Action со следующими значениями:
• Write. Это значение используется для записи заполненного документа о реализации. В параметре Date передается дата документа, в параметре Changes -изменения в документе по сравнению с предыдущей записью.
• Delete. Это значение используется для удаления документа о реализации.
• New. Это значение предназначено для создания нового документа о реализации.
• Edit. Это значение используется для отображения ранее записанного документа. Документ записывается в значение параметра Sale функцией ЗначениеВСтрокуВнутр.
В графах Товар и Количество выводится название реализуемого товара и оставшееся (по документам) количество, в колонке Продано можно ввести количество реализованного товара.
Страница использует функции ЗаписатьДокумент, УдалитьДокумент, ПолучитьПараметры_Номер и ЗапросТоварНаРеализации из модуля сессии.
Список предыдущих реализации за указанный период. Из списка можно выбрать и отредактировать каждую конкретную реализацию. Страница обрабатывает параметр Action со следующими значениями:
• DelSale. Это значение предназначено для удаления документа, записанного в параметр Sale функцией ЗначениеВСтрокуВнутр
Страница для инвентаризации реализуемых товаров.
Страница обрабатывает параметр Action со следующими значениями:
• Write. Это значение используется для записи заполненного документа о реализации. В параметре Date передается дата документа, в параметре Changes -изменения в документе по сравнению с предыдущей записью.
• Delete. Это значение используется для удаления документа о реализации.
• New. Это значение предназначено для создания нового документа о реализации.
• Edit. Это значение используется для отображения ранее записанного документа. Документ записывается в значение параметра Sale функцией ЗначениеВСтрокуВнутр.
В графах Товар и Количество выводится название реализуемого товара и оставшееся (по документам) количество, в колонке Осталось можно ввести точное количество товара.
Страница использует функции ЗаписатьДокумент, УдалитьДокумент, ПолучитьПараметры_Номер и ЗапросТоварНаРеализации из модуля сессии.
Список предыдущих инвентаризаций за указанный период. Из списка можно выбрать и отредактировать каждую конкретную инвентаризацию.
Страница обрабатывает параметр Action со следующими значениями:
• Dellnventory. Это значение предназначено для удаления документа, записанного в параметр Inventory функцией ЗначениеВСтрокуВнутр.
Страница для получения отчетов о расчетах по реализации. CFA.asp состоит из двух областей (frames). Верхняя область страницы содержит CFA_Set.asp, нижняя - CFA_Data.asp.
Страница для ввода параметров отчета. Для создания отчета используется функция MakeReport с параметром Mode - типом создаваемого отчета. Все параметры отчета передаются в страницу CFA_Data.asp.
Страница для отображения отчета о расчетах. Обрабатывает параметр Mode с значениями:
• 1. Краткий отчет.
• 2. Развернутый отчет.
• 3. Подробный отчет.
и параметры BegDate и EndDate - соответственно начальная и конечная даты отчета. Страница использует функции Взаиморасчеты_0тчет, Взаиморасчеты_Досье, Взаиморасчеты_ТовКредит и Взаиморасчеты_Документ из модуля сессии.
Страница для формирования отчетов по реализациям. Report.asp состоит из двух областей (frames). Верхняя область страницы содержит Rep_Set.asp, нижняя - Rep_Data.asp.
Страница для ввода параметров отчета. Для создания отчета используется функция MakeReport с параметром Mode – типом создаваемого отчета. Все параметры отчета передаются в страницу Rep_Data.asp.
Страница для отображения отчета по реализациям. Обрабатывает параметр Mode с значениями:
• 1. Краткий отчет.
• 2. Развернутый отчет.