В данной статье я подробно опишу процесс организации веб- доступа к базам данных «1С:Предприятие» 8.3 на веб-сервере IIS (Internet Information Server), входящего в поставку Microsoft Windows Server. Для более старых версий «1С:Предприятие» (8.1 и 8.2 ) алгоритм публикации баз данных в целом аналогичен. Будет рассмотрен алгоритм настройки IIS для работы «1С:Предприятие», а также описан процесс публикации баз данных на веб-сервере как для 32-разрядного , так и для 64-разрядного модуля расширения веб-сервера.
1. Что понадобится
- Компьютер отвечающий для работы веб-сервера под управлением одной из операционных систем:
- Права локального администратора на данном компьютере.
- Дистрибутив для установки компонент «1С:Предприятие». Для настройки 64-разрядного модуля расширения веб-сервера, дистрибутив для установки 64-разрядного сервера «1С:Предприятие». В данном примере используется версия 8.3.4.389 . Для более старых версий «1С:Предприятие» (8.1 и 8.2 ) алгоритм публикации баз данных в целом аналогичен.
2. Установка веб-сервера IIS
Устанавливаем веб-сервер Internet Information Server, который по умолчанию входит в поставку Microsoft Windows Server. При установке обязательно выбираем компоненты:
- Общие функции HTTP (Common HTTP Features)
- Статическое содержимое (Static Content)
- Документ по умолчанию (Default Document)
- Обзор каталогов (Directory Browsing)
- Ошибки HTTP (HTTP Errors)
- Разработка приложений (Application Development)
- ASP.NET 3.5
- Расширяемость.NET 3.5 (.NET Extensibility 3.5)
- Расширения ISAPI (ISAPI Extensions)
- Фильтры ISAPI (ISAPI Filters)
- Исправление и диагностика (Health and Diagnostics)
- Ведение журнала HTTP (HTTP Logging)
- Монитор запросов (Request Monitor)
- Средства управления (Management Tools)
- Консоль управления IIS (IIS Management Console)
Подробно про процесс развертывания веб-сервера IIS я писал:
- В Microsoft Windows Server 2012 (R2) — . IIS версии 8, после установки должны увидеть страницу Default Web Site вида:
- В Microsoft Windows Server 2008 (R2) — . IIS версии 7, после установки должны увидеть страницу Default Web Site вида:
3. Установка компонент «1С:Предприятие»
На этот же сервер, где развернут веб-сервер IIS, (32-разрядные компоненты) обязательно выбрав при установке компоненты:
- 1С:Предприятие
- Модули расширения веб-сервера
Если планируется настроить 64-разрядный модуль расширения веб-сервера, то необходимо дополнительно запустить из соответствующей поставки «1С:Предприятие» и установить компоненту:
- Модуль расширения веб-сервера
4. Настройка операционной системы
Теперь необходимо установить необходимые права на ключевые папки, используемые при работе веб-доступа к базам данных «1С:Предприятие». Для каталога хранения файлов веб-сайтов, опубликованных на веб-сервере (по умолчанию C:\inetpub\wwwroot\ ) необходимо дать полные права группе «Пользователи » (Users). В принципе, этот шаг можно пропустить, но тогда для публикации или изменения публикации базы данных надо будет запускать «1С:Предприятие» от имени администратора. Для настройки безопасности данного каталога, кликаем по нему правой кнопкой мыши и в контекстном меню выбираем «Свойства » (Properties).
В открывшемся окне свойств, переходим на вкладку «Безопасность » (Security) и нажимаем кнопку «Изменить » (Edit…), для изменения действующих разрешений. Появится окно разрешений для данного каталога. В списке Групп или пользователей (Groups or user names) выделим группу «Пользователи » (Users) и в списке разрешений для выбранной группы установим флаг «Польный доступ » (Full control). Затем нажмем «Применить » (Apply) для записи изменений и закроем все окна при помощи кнопки «ОК ».
Далее необходимо дать полные права на каталог с установленными файлами «1С:Предприятие» (по умолчанию C:\Program Files (x86)\1cv8\ для 32-разрядного модуля расширения и C:\Program Files\1cv8\ для 64-разрядного) группе IIS_IUSRS . Для этого выполняем аналогичные описанным выше действия, с той лишь разницей, что для того чтобы необходимая группа появилась в списке «Группы или пользователи » (Groups or user names) необходимо нажать расположенную под списком кнопку «Добавить » (Add..), а в окне выбора групп или пользователей нажать «Дополнительно » (Advanced…).
Затем нажимаем расположенную справа кнопку «Поиск » (Find Now), после чего выбираем необходимую группу IIS_IUSRS в таблице результатов поиска и нажимаем «ОК ».
Группа IIS_IUSRS появится в списке групп или пользователей. Даем ей полные права на на выбранную директорию и нажимаем «Применить » (Apply) для сохранения изменений.
Ну и наконец, если публикация выполняется для файловой базы, необходимо также дать группе IIS_IUSRS полные права на каталог с расположенными файлами данной информационной базы.
5. Публикация базы данных на веб-сервере
Переходим к непосредственной публикации базы данных на веб-сервере. Для этого запускаем «1С:Предприятие» в режиме Конфигуратор для той базы, которую требуется опубликовать. Затем в меню выбираем «Администрирование » — «Публикация на веб-сервере… »
Откроется окно настройки свойств публикации на веб-сервере. Основные поля необходимые для публикации уже заполнены по умолчанию:
- Имя виртуального каталога — имя по которому будет происходить обращение к база данных на веб-сервере. Может состоять только из символов латинского алфавита.
- Веб сервер — выбирается из списка найденных на текущем компьютере веб-серверов. В нашем случае это Internet Information Services.
- Каталог — физическое расположение каталога, в котором будут располагаться файлы виртуального приложения.
- Соответствующими флагами можно указать типы клиентов для публикации, а также указать возможность публикации Web-сервисов. В расположенной ниже таблице можно отредактировать список Web-сервисов которые будут опубликованы, а также в столбце «Адрес » изменить синоним, по которому будет происходить обращение к данному Web-сервису.
- Также для веб-сервера IIS есть возможность указать необходимость выполнения аутентификации на веб-сервере средствами ОС, установив соответствующий флаг.
Выбрав необходимые настройки публикации нажимаем «Опубликовать ».
Если публикация прошла без ошибок, увидим соответствующее сообщение.
Публикация на веб-сервере IIS всегда выполняется для веб-сайта по умолчанию и для пула приложения по умолчанию. Стоит иметь ввиду, что при выполнении публикации из конфигуратора будет зарегистрирован 32-разрядный модуль расширения веб-сервера, а используемый по умолчанию пул приложений — DefaultAppPool — без настройки работает только с 64-разрядными приложениями. Соответственно, дальнейшие действия зависят от разрядности модуля расширения веб-сервера, который планируется использовать. Для 32-разрядного модуля расширения веб-сервера, необходимо разрешить пулу приложений использовать 32-разрядные приложения, либо же зарегистрировать 64-разрядный модуль расширения веб-сервера. Об этом пойдет речь ниже
6. Настройка IIS для использования 32-разрядного модуля расширения веб-сервера
Средства » (Tools) — «Диспетчер служб IIS
Default Web Site — появился преобразованный в приложение виртуальный каталог с именем, которое мы задавали при публикации базы данных. Для завершения публикации осталось только разрешить 32-разрядные приложения для пула приложений по умолчанию. Для этого перейдем в дереве подключений на вкладку «Пулы приложений » (Application Pools).
В списке пулов приложений найдем пул с именем DefaultAppPool . Кликнем по нему правой кнопкой мыши и в контекстном меню выберем пункт «Дополнительные параметры » (Advanced Settings).
В открывшемся окне параметров пула приложения, в группе «Общие » (General) найдем пункт «Разрешены 32-разрядные приложения » (Enable 32-Bit Applications) и установим значение параметра равным True . Затем сохраним изменения нажав «ОК ».
7. Настройка IIS для использования 64-разрядного модуля расширения веб-сервера
Зарегистрировать 64-разрядный модуль расширения веб-сервера можно с помощью утилиты webinst.exe соответствующей версии, расположенной в каталоге bin , каталога с установленной программой «1С:Предприятие», либо воспользоваться приведенным ниже способом.
Запустим Диспетчер служб IIS (Internet Information Services (IIS) Manager). Сделать это можно из Диспетчера серверов (Server Manager) выбрав в меню пункт «Средства » (Tools) — «Диспетчер служб IIS » (Internet Information Services (IIS) Manager).
Здесь, развернув дерево в окне подключений, увидим, что для веб-сайта по умолчанию — Default Web Site — появился преобразованный в приложение виртуальный каталог с именем, которым мы задавали при публикации базы данных. Для завершения публикации осталось только указать данному приложению использовать 64-разрядный обработчик запросов. Для этого откроем страницу настройки сопоставления обработчиков для данного виртуально каталога, выбрав пункт «Сопоставление обработчиков » (Handler Mappings) на начальной странице приложения.
В таблице сопоставлений обработчиков найдем обработчик «1С Web-service Extension». Откроем данный обработчик, кликнув 2 раза по соответствующей строке в таблице.
Отредактируем обработчик, заменив путь к исполняемой dll 32-разрядного модуля расширения веб-сервера, который выбран в данный момент, на путь к 64-разрядной версии библиотеки. В данном примере меняем путь c «C:\Program Files (x86)\1cv8\8.3.4.389\bin\wsisapi.dll » на «C:\Program Files\1cv8\8.3.4.389\bin\wsisapi.dll » воспользовавшись кнопкой выбора. Изменив путь нажимаем «ОК » для сохранения изменений.
8. Подключение к опубликованной информационной базе через веб-браузер
Ну вот вроде и все. Для подключений к только что опубликованной базе данных, запускаем Internet Explorer, и в строке адреса вводим путь вида http://localhost/<Имя публикации информационной базы> . В данном примере это http://localhost/DemoAccounting/.
К данной информационной базе также можно подключиться и с любого компьютера в сети, обратившись к веб-серверу по его внутреннему (или если прокинут порт 80 , по внешнему) IP-адресу.
В этом случае, для корректной работы «1С:Предприятие», имя домена, на который идет обращение (или IP-адрес) должен быть добавлен в надежные узлы Internet Explorer, а также для него должны быть разрешены всплывающие окна. Подробнее про настройку Internet Explorer для работы веб-клиента «1С:Предприятие» читайте .
9. Подключение к опубликованной информационной базе через клиент «1С:Предприятия»
К опубликованной на веб-сервере информационной базе можно подключиться и с помощью тонкого клиента «1С:Предприятия». Для подключения откроем окно запуска «1С:Предприятие» и нажмем кнопку «Добавить » для добавления информационной базы.
В окне добавления информационной базы/группы установим переключатель в «Добавление в список существующей информационной базы » и нажмем «Далее ».
Введем имя базы данных, как она будет отображаться в списке информационных баз (должно быть уникальным для данного списка), тип расположения выберем «На веб-сервере » и нажмем «Далее ».
Вводим строку адреса для подключения к информационной базе (без префикса /ru_RU/). Также здесь можно указать параметры прокси-сервера (если есть) и способ аутентификации на веб-сервере. Указав необходимые настройки снова жмем «Далее ».
Указываем параметры запуска для информационной базы и нажимаем «Готово » для завершения работы мастера.
После чего данная информационная база появится в списке баз окна запуска «1С:Предприятие». Обратим внимание что режим запуска Конфигуратор недоступен для данного типа подключения. Нажимаем «1С:Предприятие » для подключения к информационной базе.
10. Конфигурационные файлы виртуального каталога
Рассмотрим подробнее структуру файлов, которые были созданы в процессе публикации. Если веб-доступ к опубликованной информационной базе по каким-то причинам не заработал, конфигурационные файлы можно отредактировать вручную, для достижения желаемого результата (конфигурационные файлы из данной статьи для 64-разрядного модуля расширения веб-сервера можно скачать ).
Перейдем в каталог, который мы указывали во время публикации базы данных. В нем увидим два файла:
- default.vrd
- web.config
Оба файла доступны для просмотра и редактирования с помощью любого текстового редактора, например программы «Блокнот» (Notepad). Рассмотрим структуру этих файлов подробнее.
10.1. Файл default.vrd
В файле default.vrd
описываются опубликованные Web-сервисы (элемент
Ib="File="C:\1C_BASE\DemoAccounting";"
Как видно из примера, если в строке подключения встречаются символы, недопустимые с точки зрения стандарта XML (http://www.w3.org/TR/xml11/), они должны быть заменены соответствующим образом.
В строке подключения можно указать логин и пароль пользователя. В этом случае, подключение к информационной базе будет выполняться от имени указанного пользователя. Например, для подключения от имени пользователя Продавец, строка подключения будет следующей:
Ib="File="C:\1C_BASE\DemoAccounting";Usr=Продавец;Pwd=123;"
Для строка подключения будет иметь вид:
Ib="Srvr="WIN2012"e;;Ref="e;Accounting"e;;"
Где WIN2012 — имя кластера серверов «1С:Предприятие», а Accounting — имя базы данных в кластере.
Подробнее про структуру данного файла можно почитать в книге «Руководство администратора» 2-е издание, Приложение 2, глава 3.12.
10.2. Файл web.config
Файл web.config — это файл, определяющий параметры для ASP.NET web-приложения. В каждом web-приложении должен быть файл web.config , находящийся в его корневом каталоге. Наш виртуальный каталог не является исключением. В текущем файле содержатся данные об обработчике «1С Web-service Extension», обрабатывающем запросы к данному приложению. Обработчик настроен таким образом, что все запросы передаются библиотеке wsisapi.dll , расположенной в каталоге bin , каталога с файлами «1С:Предприятие». В случае использования серверных информационных баз, версия библиотеки должна соответствовать версии кластера серверов «1С:Предприятия».
Данный обработчик можно найти (или добавить, если его нет) в Диспетчере служб IIS. Для этого необходимо выделить вкладку с текущим приложением и в окне свойств выбрать пункт «Сопоставления обработчиков » (Handler Mappings).
В таблице сопоставлений обработчиков увидим наш обработчик «1С Web-service Extension». Если такого обработчика в списке нет, его следует добавить выбрав в окне «Действия » (Actions) пункт «Добавление сопоставления сценария с подстановочными знаками » (Add Wildcard Script Map…).
При добавлении вводим имя обработчика и указываем путь к файлу wsisapi.dll . Данные параметры можно изменить и для действующего обработчика выбрав пункт «Изменить… » (Edit…) в окне списка действий.
Необходимо также убедиться, что для обработчика стоит флаг «Выполнение » (Execute) в окне изменений разрешений функции. Вызвать данное окно можно выбрав пункт «Изменение разрешений функции… » (Edit Feature Permissions…) в окне «Действия » (Actions).
Помогла ли Вам данная статья?
Одной из приятных особенностей технологии 1С:Предприятие является то, что прикладное решение, разработанное по технологии управляемых форм, может запускаться как в тонком (исполняемом) клиенте под Windows, Linux, MacOS X, так и как веб-клиент под 5 браузеров – Chrome, Internet Explorer, Firefox, Safari, Edge, и все это – без изменения исходного кода приложения. Более того – внешне приложение в тонком клиенте и в браузере функционирует и выглядит практически идентично.
Найдите 10 отличий (под катом 2 картинки):
Окно тонкого клиента на Linux:
То же окно в веб клиенте (в браузере Chrome):
Зачем мы сделали веб-клиент? Говоря несколько пафосно, такую задачу перед нами поставило время. Уже давно работа через Интернет стала необходимым условием для бизнес-приложений. Вначале мы добавили возможность работы через Интернет для нашего тонкого клиента (некоторые наши конкуренты, кстати, на этом и остановились; другие, напротив, отказались от тонкого клиента и ограничились реализацией веб-клиента). Мы же решили дать нашим пользователям возможность выбрать тот вариант клиента, который им подходит больше.
Добавление возможности работы через Интернет для тонкого клиента было большим проектом с полной сменой архитектуры клиент-серверного взаимодействия. Создание же веб-клиента - и вовсе новый проект, начинавшийся с нуля.
Постановка задачи
Итак, требования к проекту: веб-клиент должен делать то же самое, что и тонкий клиент, а именно:- Отображать пользовательский интерфейс
- Исполнять клиентский код, написанный на языке 1С
Клиентский код на языке 1С может содержать в себе серверные вызовы, работу с локальными ресурсами (файлами и т.п.), печать и многое другое.
И тонкий клиент (при работе через веб), и веб-клиент пользуются одним и тем же набором веб-сервисов для общения с сервером приложений 1С. Реализация у клиентов, конечно, разная – тонкий клиент написан на С++, веб-клиент – на JavaScript.
Немного истории
Проект создания веб-клиента стартовал в 2006 году, в нем (в среднем) участвовала команда из 5 человек. На отдельных этапах проекта привлекались разработчики для реализации специфической функциональности (табличного документа, диаграмм и т.д.); как правило, это были те же разработчики, что делали эту функциональность в тонком клиенте. Т.е. разработчики заново писали на JavaScript компоненты, ранее созданные ими на C++.С самого начала мы отвергли идею какой-либо автоматической (хотя бы частичной) конверсии C++ кода тонкого клиента в JavaScript веб-клиента ввиду сильных концептуальных различий этих двух языков; веб-клиент писался на JavaScript с чистого листа.
В первых итерациях проекта веб-клиент конвертировал клиентский код на встроенном языке 1С непосредственно в JavaScript. Тонкий клиент поступает иначе - код на встроенном языке 1С компилируется в байт-код, и затем этот байт-код интерпретируется на клиенте. Впоследствии так же стал делать и веб-клиент – во-первых, это дало выигрыш в производительности, во-вторых – позволило унифицировать архитектуру тонкого и веб-клиентов.
Первая версия платформы 1С:Предприятие с поддержкой веб-клиента вышла в 2009 году. Веб-клиент на тот момент поддерживал 2 браузера – Internet Explorer и Firefox. В первоначальных планах была поддержка Opera, но из-за непреодолимых на тот момент проблем с обработчиками закрытия приложения в Opera (не удавалось со 100%-ной уверенностью отследить, что приложение закрывается, и в этот момент произвести процедуру отключения от сервера приложений 1С) от этих планов пришлось отказаться.
Структура проекта
Всего в платформе 1С:Предприятие есть 4 проекта, написанных на JavaScript:- WebTools – общие библиотеки, используемые остальными проектами (сюда же мы включаем Google Closure Library).
- Элемент управления ФорматированныйДокумент
- Элемент управления Планировщик (реализован на JavaScript и в тонком клиенте, и в веб-клиенте)
- Веб-клиент
Структурно веб-клиент по-крупному разделяется на следующие подсистемы:
- Управляемый интерфейс клиентского приложения
- Общий интерфейс приложения (системные меню, панели)
- Интерфейс управляемых форм, включающий, в том числе, около 30 элементов управления (кнопки, различные типы полей ввода – текстовые, цифровые, дата/время и пр., таблицы, списки, графики и т.д.)
- Объектная модель, доступная разработчикам на клиенте (всего более 400 типов: объектная модель управляемого интерфейса, настройки компоновки данных, условного оформления и пр.)
- Интерпретатор встроенного языка 1С
- Расширения браузеров (используются для функциональности, не поддерживаемой в JavaScript)
- Работа с криптографией
- Работа с файлами
- Технология внешних компонент, позволяющая их использовать как в тонком, так и веб-клиенте
Особенности разработки
Реализация всего вышеописанного на JavaScript – дело непростое. Возможно, веб-клиент 1С – одно из самых больших client-side приложений, написанных на JavaScript – около 450.000 строк. Мы активно используем в коде веб-клиента объектно-ориентированный подход, упрощающий работу с таким большим проектом.Для минимизации размера клиентского кода мы вначале использовали свой собственный обфускатор, а начиная с версии платформы 8.3.6 (октябрь 2014) стали использовать Google Closure Compiler . Эффект использования в цифрах – размер фреймворка веб-клиента после обфускации:
- Собственный обфускатор – 1556 кб
- Google Closure Compiler – 1073 кб
Google Closure Compiler очень хорошо работает с объектно-ориентированным кодом, поэтому его эффективность именно для веб-клиента максимально высокая. Closure Compiler делает для нас несколько хороших вещей:
- Статическая проверка типов на этапе сборки проекта (обеспечивается тем, что мы покрываем код аннотациями JSDoc). В итоге получается статическая типизация, очень близкая по уровню к типизации в С++. Это помогает отловить достаточно большой процент ошибок на стадии компиляции проекта.
- Уменьшение размера кода через обфускацию
- Ряд оптимизаций выполняемого кода, например, такие как:
- inline-подстановки функций. Вызов функции в JavaScript – достаточно дорогая операция, и inline-подстановки часто используемых небольших методов существенно ускоряют работу кода.
- Подсчет констант на этапе компиляции. Если выражение зависит от константы, в него будет подставлено фактическое значение константы
Для анализа кода мы используем SonarQube , куда интегрируем статические анализаторы кода. С помощью анализаторов мы отслеживаем деградацию качества исходного кода на JavaScript и стараемся ее не допускать.
Какие задачи решали/решаем
В ходе реализации проекта мы столкнулись с рядом интересных задач, которые нам пришлось решать.Обмен данными с сервером и между окнами
Существуют ситуации, когда обфускирование исходного кода может помешать работе системы. Код, внешний по отношению к исполняемому коду веб-клиента, вследствие обфускации может иметь имена функций и параметров, отличающиеся от тех, которые наш исполняемый код ожидает. Внешним кодом для нас является:- Код, приходящий с сервера в виде структур данных
- Код другого окна приложения
/**
* @constructor
* @extends {Base.SrvObject}
*/
Srv.Core.GenericException = function ()
{
/**
* @type {string}
* @expose
*/
this.descr;
/**
* @type {Srv.Core.GenericException}
* @expose
*/
this.inner;
/**
* @type {string}
* @expose
*/
this.clsid;
/**
* @type {boolean}
* @expose
*/
this.encoded;
}
А чтобы избежать обфускации при взаимодействии с другими окнами мы используем так называемые экспортируемые интерфейсы (интерфейсы, у которых все методы являются экспортируемыми).
/** * Экспортируемый интерфейс контрола DropDownWindow * * @interface * @struct */ WebUI.IDropDownWindowExp = function(){} /** * Перемещает выделение на 1 вперед или назад * * @param {boolean} isForward * @param {boolean} checkOnly * @return {boolean} * @expose */ WebUI.IDropDownWindowExp.prototype.moveMarker = function (isForward, checkOnly){} /** * Перемещает выделение в начало или конец * * @param {boolean} isFirst * @param {boolean} checkOnly * @return {boolean} * @expose */ WebUI.IDropDownWindowExp.prototype.moveMarkerTo = function (isFirst, checkOnly){} /** * @return {boolean} * @expose */ WebUI.IDropDownWindowExp.prototype.selectValue = function (){}
We used Virtual DOM before it became mainstream)
Как и все разработчики, имеющие дело со сложным Веб UI, мы быстро поняли, что DOM плохо подходит для работы с динамическим пользовательским интерфейсом. Практически сразу был реализован аналог Virtual DOM для оптимизации работы с UI. В процессе обработки события все изменения DOM запоминаются в памяти и, только при завершении всех операций, накопленные изменения применяются к DOM-дереву.Оптимизация работы веб-клиента
Чтобы наш веб-клиент работал быстрее, мы по максимуму стараемся задействовать штатные возможности браузера (CSS и т.п.). Так, командная панель формы (расположенная практически на каждой форме приложения) отрисовывается исключительно средствами браузера, динамической версткой на базе CSS.Тестирование
Для функционального тестирования и тестирования производительности мы используем инструмент собственного производства (написанный на Java и C++), а также набор тестов, построенных на базе Selenium .Наш инструмент универсален – он позволяет тестировать практически любые оконные программы, а потому подходит для тестирования как тонкого клиента, так и веб-клиента. Инструмент записывает действия пользователя, запустившего прикладное решение «1С», в файл-сценарий. В это же время происходит запись изображений рабочей области экрана - эталонов. При контроле новых версий веб-клиента сценарии проигрываются без пользовательского участия. В случаях несовпадения скриншота с эталонным на каком-либо шаге тест считается провалившимся, после чего специалист по качеству проводит расследование – ошибка это или запланированное изменение поведения системы. В случае запланированного поведения эталоны автоматически подменяются на новые.
Инструмент также проводит замеры производительности приложений с точностью до 25 миллисекунд. В ряде случаев мы закольцовываем части сценария (например, несколько раз повторяем ввод заказа) для анализа деградации времени выполнения со временем. Результаты всех замеров записываются в лог для анализа.
Наш инструмент тестирования и тестируемое приложение
Наш инструмент и Selenium дополняют друг друга; например, если какая-то кнопка на одном из экранов поменяла свое местоположение – Selenium это может не отследить, но наш инструмент заметит, т.к. делает попиксельное сравнение скриншота с эталоном. Также инструмент в состоянии отследить проблемы с обработкой ввода с клавиатуры или мыши, так как именно их он и воспроизводит.
Тесты на обоих инструментах (нашем и Selenium) запускают типовые сценарии работы из наших прикладных решений. Тесты автоматически запускаются после ежедневной сборки платформы «1С:Предприятие». В случае замедления работы сценариев (по сравнению с предыдущей сборкой) мы проводим расследование и устраняем причину замедления. Критерий у нас простой – новая сборка должна работать не медленнее предыдущей.
Для расследования инцидентов замедления работы разработчики используют разные инструменты; в основном используется Dynatrace AJAX Edition производства компании DynaTrace . Проводится запись логов выполнения проблемной операции на предыдущей и на новой сборке, затем логи анализируются. При этом время выполнения единичных операций (в миллисекундах) может не быть решающим фактором – в браузере периодически запускаются служебные процессы типа уборки мусора, они могут наложиться на время выполнения функций и исказить картину. Более релевантными параметрами в этом случае будет количество выполненных инструкций JavaScript, количество атомарных операций над DOM и т.п. Если количество инструкций/операций в одном и том же сценарии в новой версии увеличилось – это почти всегда означает падение быстродействия, которое нужно исправлять.
Также одной из причин падения производительности может быть то, что Google Closure Compiler по какой-то причине не смог сделать inline-подстановку функции (например, потому что функция рекурсивная или виртуальная). В этом случае мы стараемся исправить ситуацию, переписав исходный код.
Расширения браузеров
В случае, когда прикладному решению нужна функциональность, которой нет в JavaScript, мы используем расширения браузеров:- для работы с файлами
- для работы с криптографией
- работа с внешними компонентами
При работе в Safari наши расширения используют NPAPI, при работе в Internet Explorer - технологию ActiveX. Microsoft Edge пока не поддерживает расширения, поэтому веб-клиент в нем работает с ограничениями.
Дальнейшее развитие
Одна из групп задач для команды разработки веб-клиента – это дальнейшее развитие функциональности. Функциональность веб-клиента должна быть идентична функциональности тонкого клиента, вся новая функциональность реализуется одновременно и в тонком, и в веб-клиенте.Другие задачи - развитие архитектуры, рефакторинг, повышение производительности и надежности. Например, одно из направлений – дальнейшее движение в сторону асинхронной модели работы. Часть функциональности веб-клиента на настоящий момент построена на синхронной модели взаимодействия с сервером. Асинхронная модель сейчас становится в браузерах (и не только в браузерах) более актуальной, и это заставляет нас модифицировать веб-клиент путем замены синхронных вызовов на асинхронные (и соответствующего рефакторинга кода). Постепенный переход к асинхронной модели объясняется необходимостью поддержки выпущенных решений и постепенной их адаптации.
Теги: Добавить метки
Веб-клиент - это одно из клиентских приложений системы 1С:Предприятие 8. В отличие от "привычных" клиентских приложений (толстого клиента и тонкого клиента), его не нужно предварительно устанавливать на компьютер пользователя. У веб-клиента нет исполняемого файла. Веб-клиента вы не найдете ни в меню, ни среди исполняемых файлов. Потому он и веб-клиент, что ему для начала работы не нужно иметь никаких файлов на компьютере пользователя.
Веб-клиент, в отличие от толстого и тонкого клиентов, исполняется не в среде операционной системы компьютера, а в среде интернет-браузера (Windows Internet Explorer, Mozilla Firefox, Google Chrome или Safari). Поэтому любому пользователю достаточно всего лишь запустить свой браузер, ввести адрес веб-сервера, на котором опубликована информационная база, – и веб-клиент сам "приедет" к нему на компьютер и начнет исполняться.
Веб-клиент использует технологии DHTML и HTTPRequest. При работе веб-клиента клиентские модули, разработанные в конфигурации, компилируются автоматически из встроенного языка 1С:Предприятия 8 и непосредственно исполняются на стороне веб-клиента.
Таким образом, независимо от клиентского приложения (толстый, тонкий, веб-клиент), вся разработка прикладного решения ведется полностью в конфигураторе 1С:Предприятия, серверный и клиентский код пишется на встроенном языке 1С:Предприятия.
Работа Интернет-браузере без установки системы на компьютер пользователя
Для работы в режиме веб-клиента требуется веб-сервер, настроенный на работу с 1С:Предприятием 8. Браузер клиента взаимодействует с веб-сервером по протоколу HTTP или HTTPS. Веб-сервер, в свою очередь, взаимодействует с 1С:Предприятием 8 в файловом или клиент-серверном варианте работы.
В качестве веб-сервера используется Apache или IIS.
Работа под управлением различных операционных систем
Все основные компоненты платформы способны функционировать как под управлением операционной системы Windows, так и под управлением операционной системы Linux. Кроме этого веб-клиент способен работать еще и на компьютерах под управлением Mac OS X.
Благодаря тому, что взаимодействие процессов между собой осуществляется по протоколу TCP/IP, в составе системы могут присутствовать компоненты с различными операционными системами. Подробнее...
Работа на iPad
Браузеры, работающие на мобильных устройствах, имеют ряд ограничений и специфических требований. Поэтому специально для комфортной работы на iPad в веб-клиенте были выполнены доработки, учитывающие особенности мобильного браузера Safari и специфику самого устройства iPad.
В результате веб-клиент, работающий на iPad, поддерживает сенсорный ввод, списки не имеют боковых полос прокрутки и прокручиваются пальцем, для удобства работы увеличена высота строк в таблицах, в выпадающих списках, увеличена ширина кнопок в поле ввода, увеличены размеры календаря.
Понадобилось сделать вход в 1С 8.2 базу через интернет, посредством браузера. Раньше ничего такого не реализовывал, поэтому решил ознакомится и сделать. Версия платформы 8.2 может работать в режиме тонкого клиента, толстого клиента(нужна клиентская часть) и как веб-приложение, то есть практически в любом современном браузере. Начать решил с настройки IIS и подготовки необходимых файлов. Знаю, что 1С можно настраивать и в связке с Apache. Об этом написано много статей.
Весь процесс по подготовке связки 1С — IIS производился в 2 этапа:
1. Установка и настройка IIS
2. Установка 1С 8.2 и публикация базы на веб-сервере
После установки IIS все настройки у меня остались по умолчанию. IIS устанавливался на имеющийся сервер Win 2003. Корневой каталог оказался в директории C:\Inetpub\wwwroot\
Вот так у меня выглядела консоль приложений и диспетчер служб IIS, дальше создается папочка 1cv8, хотя Вы вправе ее называть как захотите.
Особых настроек для этой папки не требуется.
Так выглядят настройки веб-узла поумолчанию
Содержимое файла default.vrd:
XHTML
|
где
ИМЯ_СЕРВЕРА:ПОРТ — название сервера на котором стоит база 1С, у меня одновременно установлены платформы 8.1 и 8.2, причем для 8.2 используется порт 1641
НАЗВАНИЕ_БАЗЫ — имя базы на сервере 1С 8.2
Этот файл, как я узнал позже автоматически создается после публикации базы на сервере, поэтому не обязательно создавать его вручную:)
Далее необходимо на этот же компьютер где и установлен IIS установить 1С платформу, а при установке поставить галочку на веб-расирение. После установки платформы в соответствующем программном каталоге у Вас должен появится файл wsisapi.dll который отвечает за расширение веб-служб iis.
Подключаем этот файл в консоли управления IIS в расширениях веб-служб<
Производим публикацию базы.
Публикация базы.
Чтобы запустить 1С Предприятие через браузер, необходимо зайти в Личный кабинет
, в разделе "Информационные базы
" нажать на название базы 1С, доступ к которой вы желаете открыть.
В окне информации о базе нажмите кнопку "Опубликовать базу "
После завершения процесса публикации появится ссылка, с помощью которой вы сможете зайти в базу.
Настройка и использование веб-браузера Google Chrome
Для этого откройте меню Инструменты (Tools) , выберите пункт Параметры (Options) , на закладке Расширенные (Under the Hood) нажмите кнопку Настройки содержания (Content settings) и выполните настройки:
-
на закладке Файлы cookie (Cookies) выберите Разрешить сохранять локальные данные (рекомендуется) (Allow local data to be set (recommended)) или настройте исключения; -
на закладке JavaScript выберите Разрешить всем сайтам использовать JavaScript (рекомендуется) (Allow all sites to run JavaScript (recommended) или настройте исключения; - Разрешите всплывающие окна:
на закладке Всплывающие окна (Pop-ups) выберите Разрешить всплывающие окна для всех сайтов (Allow all sites to show pop-ups) или настройте исключения.
- Откройте меню Инструменты (Tools) , выберите пункт Параметры (Options) ;
- На закладке Расширенные (Under the Hood) в разделе Загрузки (Downloads) установите флажок Запрашивать место для сохранения каждого файла перед загрузкой (Ask where to save each file before download) .
Настройка и использование веб-браузера Microsoft Internet Explorer
Для того, чтобы отключить блокировку всплывающих окон, нужно нажать кнопку "Сервис " - "Свойства обозревателя ".
В открывшемся окне перейти на вкладку "Конфиденциальность" и снять отметку с поля "Включить блокирование всплывающих окон ".
После этого необходимо заново открыть базу 1С в браузере.
В случае, если приведенные действия не помогли, можно выполнить настройки по инструкции:
Особенности использования
Для работы с веб-клиентом в операционной системе Windows XP SP 2 требуется наличие системной библиотеки jscript.dll версии 5.6.0.8834 или выше.
Библиотека находится в каталоге system32 операционной системы. Если на вашем компьютере установлена более ранняя версия библиотеки, то возможно значительное замедление работы веб-клиента. Для обновления версии необходимо скачать пакет обновлений, находящийся по адресу http://support.microsoft.com/kb/942840/en-us .
Настройки использования веб-браузера
Для использования веб-браузера необходимо выполнить настройку свойств обозревателя. Для этого
- В меню Сервис (Tools) выберите пункт Свойства обозревателя (Internet Options) и выполните настройки:
- Разрешите выполнение JavaScript скриптов:
- на вкладке Безопасность (Security) для зоны Internet нажмите кнопку Другой (Custom level) ;
- в разделе Сценарии (Scripting) для параметра Активные сценарии (Active scripting) установите Разрешить (Enable) и нажмите кнопку "OK" .
- Разрешите всплывающие окна:
- перейдите на вкладку Конфиденциальность (Privacy) ;
- в разделе Блокирование всплывающих окон (Pop-up Blocker) снимите флажок Блокировать всплывающие окна (Block Pop-ups) .
- Разрешите использование cookies:
- на вкладке Конфиденциальность (Privacy) с помощью регулятора выберите уровень использования cookies - не выше Умеренно высокий (Medium High) .
Если предполагается совместная работа со сканером штрих-кодов, электронными весами или другими внешними компонентами, необходимо выполнить следующую настройку веб-браузера:
- на вкладке Безопасность (Security) нажмите кнопку Другой (Custom level) ;
- в открывшемся окне необходимо установить Разрешить (Enable)
для следующих параметров:
- Запрос разрешения для ActiveX объектов (Automatic promting for ActiveX controls) ;
- Загрузка подписанных ActiveX объектов с разрешения пользователя (Download signed ActiveX controls) ;
- Работа с ActiveX объектам и плагинами (Run ActiveX controls and plug-ins) ;
- Работа с объектами, помеченными как безопасные (Script ActiveX controls marked safe for scripting) .
При каждом открытии вспомогательных окон раскладка клавиатуры выбирается из настроек операционной системы. Если она не совпадает с языком ввода данных, то чтобы исключить переключение языка рекомендуется в настройках указать нужный язык ввода.
Для настройки языка ввода по умолчанию выполните следующие действия:
- откройте настройки операционной системы "Язык и региональные стандарты" ("Regional and Languages Options") ;
- на закладке "Языки" ("Languages") в разделе "Языки и службы текстового ввода" ("Text services and input languages") нажмите кнопку "Подробнее..." ("Details...") ;
- в открывшемся окне на закладке "Параметры" ("Settings") в разделе "Язык ввода по умолчанию" ("Default input language") выберите нужный язык;
- нажмите кнопку "OK" .
При работе в Internet Explorer 8 в некоторых ситуациях при переходе к уже открытому окну из другого окна будет выдаваться диалог с текстом "Нажмите OK для перехода к окну" и кнопкой OK. После нажатия кнопки будет осуществлен переход к окну.
Особенности использования расширенных средств работы с файлами
Реализация для Internet Explorer требует установки специального ActiveX компонент "1С:Предприятие 8.2. Расширение работы с файлами для Internet Explorer (x86)" , либо ее 64 разрядный вариант для 64 разрядного Internet Explorer. Компонент включен в платформу, но ее установка должна быть предусмотрена в конфигурации (должен быть реализован вызов метода УстановитьРасширениеРаботыСФайлами).
Для работы с компонентом, в браузере должны быть предоставлены права на установку и использование подписанных ActiveX компонентов для зоны, в которой находится веб-сайт.
Настройка и использование веб-браузера Mozilla Firefox
При первом запуске 1С в браузере, может появится следующее сообщение с предложением установить расширения браузера, разрешите Firefox установить нужное расширение.
После окончания процесса установки, перезапустите браузер Firefox.
После выполнения указанных действий, база 1С должна успешно запуститься. Иначе воспользуйтесь следующей инструкцией:
Особенности использования
Все операции с файловой системой (получение файла с сервера, передача файла на сервер, удаление файла и т.п.) выполняются строго интерактивно. Если выполнение действия не требует взаимодействия с пользователем (например, выбора файла), то выдается диалог-предупреждение, требующий от пользователя подтверждения.
Настройки использования веб-браузера
Для подключения к информационным базам 1С:Предприятия 8 с помощью Mozilla Firefox нужно выполнить следующие настройки:
- Откройте браузер, в меню Инструменты (Tools) выберите пункт Настройки (Options) ;
- Содержимое (Content)
- Снимите флажок ;
- Установите флажок Использовать JavaScript (Enable JavaScript) .
- Перейдите в раздел Приватность (Privacy)
установите следующие настройки:
- Установите флажок Принимать cookies с сайтов (Assept cookies from sites) ;
- Для детальной настройки приема или отклонения cookies щелкните кнопку Исключения (Exeptions) и следуйте пояснениям диалога настройки.
Модификацию остальных параметров, которые могут потребоваться для работы с веб-клиентом 1С:Предприятия, можно осуществить с помощью команды "Сервис - Настройка веб-браузера" . В окне выполняются настройки, которые можно также выполнить в настройках самого веб-браузера в диалоге запроса привилегий.
В окне осуществляется настройка следующих параметров обозревателя (в круглых скобках указывается аналогичные параметры настроек веб-браузера):
- Разрешить работу с буфером обмена, расширением работы с файлами, внешними компонентами (signed.applets.codebase_principal_support) - для работы с буфером обмена, внешними компонентами и расширенной работы с файлами (значение true);
- Разрешить использование в параметрах строки запуска не латинских символов (network.standard-url.encode-query-utf8) - для использования не латинских символов в адресной строке (значение true);
- Разрешить использование клавиатуры для переключения между окнами приложений (dom.popup_allowed_events) - для разрешения навигации по окнам приложения с клавиатуры (добавляет к значению параметра событие keydown);
- Использовать аутентификацию операционной системы (network.automatic-ntlm-auth.trusted-uris) - если установлен, то будет выполняться аутентификация операционной системы.
Данные параметры можно также настроить вручную. Для этого необходимо в адресной строке веб-браузера набрать about:config , затем в строке фильтра набрать любое слово из имени параметра (например, principal ) и поменять его значение в списке.
- Откройте браузер, в меню Инструменты (Tools) выберите пункт Настройки (Options) ;
- В открывшемся окне перейдите в раздел Основные ;
- Установите флажок Всегда выдавать запрос на сохранения файла .
Особенности использования расширенных средств работы с файлами
Все операции с файловой системой (получение файла с сервера, передача файла на сервер, удаление файла и т.п.) выполняются строго интерактивно. Если выполнение действия не требует взаимодействия с пользователем (например, выбора файла), то выдается диалог-предупреждение, требующий от пользователя подтверждения.
Расширение для работы с файлами требует предоставления привилегии UniversalXPConnect . Веб-браузер Mozilla FireFox выполняет запрос привилегии интерактивно, но пользователь может запомнить решение для данного веб-сайта.
Настройка и использование веб-браузера Apple Safari
Для использования веб-браузера необходимо выполнить настройку свойств обозревателя.
Для этого откройте меню выберите пункт Настройки (Preferences) и выполните настройки:
- Разрешите выполнение JavaScript скриптов:
на закладке Безопасность (Security) выберите Подключить JavaScript (Enable JavaScript) - Разрешите использование cookies:
на закладке Безопасность (Security) в группе Принимать cookies (Accept cookies) выберите Только от посещаемых сайтов (Only from sites I visit) ; - Разрешите всплывающие окна:
на закладке Безопасность (Security) снимите флажок Блокировать всплывающие окна (Block pop-up windows) .
- В меню Настройки Safari (Safari Settings) выберите пункт Настройки (Preferences) ;
- На закладке Основные (General) установите флажок Всегда выполнять запрос перед загрузкой (Always prompt before downloading) .
Помогла ли вам эта статья? Нет Да (Голосов: 19, Рейтинг: 0.95)