1с чем клиент лучше браузера. Настройка веб-серверов для работы с «1С:Предприятием

Пошаговая инструкция как настроить web-доступ к базам 1С. Писал для себя как инструкцию чтобы не забыть в будущем. Может еще кому пригодится.

Настройка клиент-серверного доступа к 1С через WEB-интерфейс

В этой статье изложена инструкция как организовать работу с конфигурацией 1С через Internet обозреватель.

Для статьи была использована настройка 1С для работы с базой MS SQL Server и в качестве web-сервера использовался Internet Information Services входящий в поставку операционной системы.

Перед началом установки должны быть установлена 1С с сервером приложений, SQL Server 2005 и выше, запущен Internet Information Services.

В качестве примера для описания статьи использовались следующие версии программного обеспечения:

Все описанные шаги могут работать как на старших релизах программ, так и на младших. Минимальные требования указаны на сайте 1С - http://v8.1c.ru/requirements/

Перед началом настроек, на компьютер должны быть установлены выше указанные в таблице продукты. При этом сервер 1С, сервер SQL могут находиться на разных физически или виртуальных компьютерах. Желательно чтобы Сервер 1С и Internet Information Services находились на одном физическом и логическом сервере (так будет меньше проблем с настройками).

Весь процесс настройки разбит на 5 шагов:

1 - Регистрация конфигурации и базы на серверах 1С и SQL

2 - Настройка IIS на сервере для публикации конфигурации

3 - Публикация WEB-приложения из 1С

4 - Настройка библиотек для работы в 64-х разрядной ОС

5 - Настройка прав доступа на папки и Брандмауэра Windows

Кроме того в статье содержится информация как зайти на опубликованный сайт

А также информация о используемых ресурсах

7. Используемые ресурсы

1. Регистрация базы на серверах 1С и SQL

1.1. Запустить Сервер 1С

После установки 1С необходимо убедиться что сервер 1С запущен. Автор обычно запускает сервер вручную. Но если вы уверены что сервер 1С запущен, то этот шаг делать не надо.

1.2. Зарегистрировать кластер 1С

Запустить утилиту администрирования серверов 1С:

В открывшемся окне зарегистрировать новый центральный сервер 1С предприятия:

В появившемся окне ввести сетевое имя компьютера, на котором запущен 1С Сервер (или его IP-адрес):

1.3. Зарегистрировать базу 1С на сервере SQL

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

Выбираем "Создание новой информационной базы":

В появившемся окне есть возможность создать базу из шаблона, или создать новую пустую базу (в последствии можно будет загрузить базу, загрузить конфигурацию или создать свою конфигурацию):

При этом необходимо заметить, что поле "Имя базы данных " - это названия базы на SQL сервере. А поле "Имя информационной базы " - название базы на сервере 1С.

После чего выбираем вариант аутентефикации в 1С (Выбирать автоматически) и жмем кнопку "Готово":

1.4. Загрузить или создать конфигурацию 1С

Запустить конфигуратор с базой:

Загрузить ранее выгруженную информационную базу:

2. Настройка IIS на сервере

Для этого пункта информация была взята из статьи: http://infostart.ru/public/71480/

2.1. Проверка установленных компонент IIS

Для работы веб-клиента 1С:Предприятия необходимы службы IIS, которые небыли установлены по умолчанию при установке Windows 8.1 x64.

Для их установки следует перейти "Пуск - Панель управления - Программы и компоненты - Включение или отключение компонентов Windows". В появившемся дереве, в ветке "Службы IIS - Службы интернета - Компоненты разработки приложений" отметить все компоненты, как показано на рисунке. Затем нажать кнопку "Ок":

2.2. Разрешение 32-разрядных приложений в пуле приложений

Веб-клиент 1С:Предприятия 8.3 является 32-разрядным приложением. Поэтому для 64-разрядной ОС необходимо разрешить работу оных в пуле приложений сервера IIS. Для этого необходимо перейти "Пуск - Панель управления - Администрирование - Диспетчер служб IIS". В диспетчере служб выбрать "Пулы приложений - DefaultAppPool - Дополнительные параметры". В списке дополнительных параметров переменной "Разрешены 32-разрядные приложения" установить значение "True":

Установить значение в True для параметра "Разрешены 32-разрядные приложения":

2.3. Установка удостоверения пула приложений в качестве удостоверения анонимного пользователя

По умолчанию в качестве анонимного пользователя установлен пользователь IUSR, которого нет в системе. Дабы не создавать оного можно просто включить удостоверение пула приложений в качестве удостоверения анонимного пользователя. Для этого необходимо перейти "Пуск - Панель управления - Администрирование - Диспетчер служб IIS". В диспетчере служб перейти в "Проверка подлинности:

На пункте "Анонимная проверка подлинности" вызвав контекстное меню "изменить":

В открывшемся диалоге отметить "Удостоверение пула приложений". Закрыть диалог, нажав кнопку "ОК".

3. Публикация WEB-приложения из 1С

Для публикации приложения необходимо иметь полный доступ на папку проектов IIS. Есть 2 способа публикации приложения из 1С. 1 - сначала создать необходимую папку в каталоге "C:inetpubwwwroot" в нашем случае это папка с названием "Base1C" и дать права текущему пользователю на полный доступ на эту папку. 2 способ зайти в 1С из под администратора а потом дать необходимые права на папку уже опубликованного приложения. В э статье описан второй путь.

3.1. Для публикации конфигурации на сервере IIS необходимо запустить 1С из под администратора:

Вызываем контекстное меню на ярлыке 1С и выбераем "Запуск от имени администратора"

Выбираем базу и запускаем 1С в режиме конфигуратора:

3.2. Запустить публикацию на web-сервере

Для начала публикации переходим в меню "Администрирование - Публикация на веб-сервере":

В появившемся окне указать имя публикации, указать веб-сервер и указать путь на веб-сервере.

1С позволяет публиковать на любой доступный веб-сервер в сети с помощью утиллиты webinst. В статье использовался пример публикации на локальный компьютер:

Более подробную информацию по пунктам в окне публикации можно получить из 1С конфигуратора нажав на кнопку F1.

4. Настройка библиотек для работы в 64-х разрядной ОС

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

Для настройки библиотек необходимо выполнить следующие действия.

Открываем через Панель Управления - Администрирование Диспетчер служб IIS .

В открывшемся окне раскрываем группу "Сайты" и наш сайт (в примере Base1C).

Нажимаем на "" в группе IIS:

В открывшемся окне ищем строку с именем "ISAPI-dll" и нажимаем пункт меню в действиях "Добавить сопоставление сценария..."

В открытом окне "Добавление сопоставления сценария" в поле "Путь запроса" ввести символ * (звездочка, т.е. все). В поле "Исполняемый файл" выбрать библиотеку wsisapi.dll с каталога установленной 32-х разрядной версии 1С. В поле "Имя" можно задать любое имя (в примере Имя = 1С):

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

Настроить ограничения запроса можно нажав на кнопку "Ограничение запроса" в окне Добавление сопоставления сценария. В открывшемся окне убрать отметку с "Вызывать обработчик только при сопоставлении запроса с:":

Нажать кнопку Ok.

На появившейся вопрос ответить "Да":

После чего необходимо перезапустить службу IIS. Для этого необходимо перейти в корень панели "Подключения" (на название сервера) и в меню действия справа выбрать "Перезапустить":

После чего можем проверить, работает ли подключенная библиотека. Для этого переходим в "Ограничения ISAPI и CGI":

Еще раз следует отметить, что данную процедуру настройки библиотек следует делать каждый раз после публикации приложения из 1С.

5. Настройка прав доступа на папки и Брандмауэра Windows

5.1. Настройка доступов к папкам

Для правильной работы всех пользователей, а не только администраторов с опубликованным веб-приложениям необходимо настроить некоторые права на папки.

Для настройки прав на пакпи необходимо в проводнике Windows вызвать контекстное меню для необходимой папки и выбрать в контекстном меню пункт "Свойства " и перейти на закладку "Безопасность "

В данном случае речь идет о правах на 3 папки:

1. "C:Program Files (x86)1cv88.3.5.1088bin" (в этой папке находится библиотека wsisapi.dll) (номер релиза "8.3.5.1088" может быть другой)

2. C:inetpubwwwrootBase1C (это созданная нами папка которая будет использоваться для доступа из интернет)

3. КаталогБазы (это база 1С, если используется файловый тип базы), в нашем примере база храниться на SQL сервере, поэтому каталога базы нет и доступа на него давать не надо.

Для всех папок (Пункты: 1,2,3) необходимо для пользователя IIS_IUSRS установить доступ "Полный доступ ":

Для папки с нашей базой (Пункт 3) данных для пользователя Users , установить доступ "Изменение ".

5.2. Настройка доступов к портам в Брандмауэре Windows

Если планируется использовать web-доступ не только локально, то необходимо настроить Брандмауэр Windows для доступа с внешних ресурсов, указав порт доступа 80. Автор не использовал настроек брандмауэра, а просто отключил его:

6. Доступ к опубликованной информационной базе

Для доступа к информационной базе надо зайти в обозреватель интернет (поддерживающий HTML5, например "многими любимый" Internet Explorer) и ввести в адресную строку:

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

Публикация 1С 8.3 на веб-сервере IIS отличается лишь установкой серверной части.

Установка веб-сервера Apache

Сначала нужно скачать дистрибутив сервера. Находится он по адресу http://www.apache.org . Скачиваем последнюю версию дистрибутива для Windows и запускаем установку.

Нажимаем «Next» до тех пор, пока не появится вот такое окно:

В первые два поля впишем «localhost» (или 127.0.0.1). Это означает, что сервер будет работать на локальном компьютере. В третьем поле укажите почтовый адрес, на него будут приходить ответы сервера.

Следует заметить, что программа Skype тоже может использовать 80 порт. Поэтому, если Вы ее используете, отключите в настройках 80 порт.

Нажимаем «Next».

В следующем окне я предлагаю выбрать типовую установку. При этом будут установлены все необходимые для работы компоненты.

Каталог установки тоже оставим по умолчанию. Нажимаем «Install». Начнется процесс установки.

Получите 267 видеоуроков по 1С бесплатно:

После окончания установки сервер должен автоматически запуститься. При этом в системном трее появится значок . Это означает, что сервер успешно запустился. Если кликнуть два раза на этой иконке, откроется следующее окно:

Публикация веб-клиента и веб-сервисов в 1С 8.3 (8.2) на сервере Apache

Сервер запущен. Теперь займемся программой 1С. Запустим Конфигуратор.

В Конфигураторе выбираем меню «Администрирование», далее «Публикация на веб-сервере».

Настройки здесь требуются минимальные. В основном все должно определиться по умолчанию.

Нужно только выбрать каталог, можно любой пустой. «Имя» нужно указать латинскими символами.

Можно выбирать по желанию. Можно отключить совсем. Главное, перейти на закладку HTTP-сервисы. Тут нужно сделать те же настройки, что и на предыдущей закладке:

Одной из приятных особенностей технологии 1С:Предприятие является то, что прикладное решение, разработанное по технологии управляемых форм, может запускаться как в тонком (исполняемом) клиенте под Windows, Linux, MacOS X, так и как веб-клиент под 5 браузеров – Chrome, Internet Explorer, Firefox, Safari, Edge, и все это – без изменения исходного кода приложения. Более того – внешне приложение в тонком клиенте и в браузере функционирует и выглядит практически идентично.
Найдите 10 отличий (под катом 2 картинки):

Окно тонкого клиента на Linux:

То же окно в веб клиенте (в браузере Chrome):

Зачем мы сделали веб-клиент? Говоря несколько пафосно, такую задачу перед нами поставило время. Уже давно работа через Интернет стала необходимым условием для бизнес-приложений. Вначале мы добавили возможность работы через Интернет для нашего тонкого клиента (некоторые наши конкуренты, кстати, на этом и остановились; другие, напротив, отказались от тонкого клиента и ограничились реализацией веб-клиента). Мы же решили дать нашим пользователям возможность выбрать тот вариант клиента, который им подходит больше.

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

Постановка задачи

Итак, требования к проекту: веб-клиент должен делать то же самое, что и тонкий клиент, а именно:
  1. Отображать пользовательский интерфейс
  2. Исполнять клиентский код, написанный на языке 1С
Пользовательский интерфейс в 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:
  1. WebTools – общие библиотеки, используемые остальными проектами (сюда же мы включаем Google Closure Library).
  2. Элемент управления ФорматированныйДокумент
  3. Элемент управления Планировщик (реализован на JavaScript и в тонком клиенте, и в веб-клиенте)
  4. Веб-клиент
Структура каждого проекта напоминает структуру Java-проектов (или.NET проектов – кому что ближе); у нас есть неймспейсы, и каждый неймспейс лежит в отдельной папке. Внутри папки лежат файлы и классы неймспейса. В проекте веб-клиента около 1000 файлов.

Структурно веб-клиент по-крупному разделяется на следующие подсистемы:

  • Управляемый интерфейс клиентского приложения
    • Общий интерфейс приложения (системные меню, панели)
    • Интерфейс управляемых форм, включающий, в том числе, около 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 помогло нам повысить быстродействие веб-клиента на 30% по сравнению с нашим собственным обфускатором. Кроме того, на 15-25% (в зависимости от браузера) снизился объем памяти, потребляемой приложением.

Google Closure Compiler очень хорошо работает с объектно-ориентированным кодом, поэтому его эффективность именно для веб-клиента максимально высокая. Closure Compiler делает для нас несколько хороших вещей:

  • Статическая проверка типов на этапе сборки проекта (обеспечивается тем, что мы покрываем код аннотациями JSDoc). В итоге получается статическая типизация, очень близкая по уровню к типизации в С++. Это помогает отловить достаточно большой процент ошибок на стадии компиляции проекта.
  • Уменьшение размера кода через обфускацию
  • Ряд оптимизаций выполняемого кода, например, такие как:
    • inline-подстановки функций. Вызов функции в JavaScript – достаточно дорогая операция, и inline-подстановки часто используемых небольших методов существенно ускоряют работу кода.
    • Подсчет констант на этапе компиляции. Если выражение зависит от константы, в него будет подставлено фактическое значение константы
В качестве среды разработки веб-клиента мы используем WebStorm.

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

Какие задачи решали/решаем

В ходе реализации проекта мы столкнулись с рядом интересных задач, которые нам пришлось решать.

Обмен данными с сервером и между окнами

Существуют ситуации, когда обфускирование исходного кода может помешать работе системы. Код, внешний по отношению к исполняемому коду веб-клиента, вследствие обфускации может иметь имена функций и параметров, отличающиеся от тех, которые наш исполняемый код ожидает. Внешним кодом для нас является:
  • Код, приходящий с сервера в виде структур данных
  • Код другого окна приложения
Чтобы избежать обфускации при взаимодействии с сервером мы используем тэг @expose:

/** * @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, мы используем расширения браузеров:
  • для работы с файлами
  • для работы с криптографией
  • работа с внешними компонентами
Наши расширения состоят из двух частей. Первая часть – то, что называется расширением браузера (как правило, написанные на JavaScript расширения для Chrome и Firefox), которые взаимодействуют со второй частью - бинарным расширением, реализующим нужную нам функциональность. Надо упомянуть, что мы пишем 3 версии бинарных расширений – под Windows, Linux и MacOS. Бинарное расширение поставляется в составе платформы 1С:Предприятие и находится на сервере приложений 1С. При первом вызове с веб-клиента оно загружается на клиентский компьютер и устанавливается в браузере.

При работе в Safari наши расширения используют NPAPI, при работе в Internet Explorer - технологию ActiveX. Microsoft Edge пока не поддерживает расширения, поэтому веб-клиент в нем работает с ограничениями.

Дальнейшее развитие

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

Другие задачи - развитие архитектуры, рефакторинг, повышение производительности и надежности. Например, одно из направлений – дальнейшее движение в сторону асинхронной модели работы. Часть функциональности веб-клиента на настоящий момент построена на синхронной модели взаимодействия с сервером. Асинхронная модель сейчас становится в браузерах (и не только в браузерах) более актуальной, и это заставляет нас модифицировать веб-клиент путем замены синхронных вызовов на асинхронные (и соответствующего рефакторинга кода). Постепенный переход к асинхронной модели объясняется необходимостью поддержки выпущенных решений и постепенной их адаптации.

Теги: Добавить метки

С выходом платформы 1С 8.2 появилась возможность использовать в работе с 1С веб-сервер для взаимодействия вашей базы со всемирной сетью. В дальнейшем, по мере выхода 8.3 и ее новых релизов, возможности интеграции все более расширялись. Уже сейчас для связи с интернет, другими информационными системами и предоставления доступа в базу через браузер, можно использовать веб-клиент, интерфейс ODATA, разрабатывать web-сервисы, http-сервисы.

В этой статье мы рассмотрим как установить веб-сервер Apache и опубликовать на нем вашу информационную базу всего лишь за одну минуту! Для этого мы разработали для вас простую обработку с двумя кнопками.

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

Для чего рядовому пользователю публикация 1С на веб-сервере

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

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

Как это работает

Для организации доступа в 1С через браузер необходимо:

  • Любая конфигурация, разработанная на управляемых формах
  • Установить и настроить веб-сервер
  • Опубликовать БД на веб-сервере

1С поддерживает два веб-сервера:

  • Apache

Веб-сервер Apache бесплатен, прост в установке и настройке и удовлетворит минимальным требованиям, поэтому мы будем использовать его в своей обработке.

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

Короткая инструкция для знакомых с внешними обработками:

  1. Делаем копию (backup) ИБ. Обработка абсолютна безопасна. Но это никогда не повредит. Читаем как это сделать .
  2. Скачиваете обработку - файл
  3. под администратором (администратор компьютера) . Не путаем с запуском конфигурации 1С под пользователем, обладающим полными (административными) правами
  4. В командном меню Файл - Открыть. Выбираем файл УстановкаВебСервера.epf/SetupWebServer.epf (версия может отличаться)
  5. На форме заполняем желаемое имя для публикации на веб-сервере. При старте автоматически заполняется из заголовка системы.
  6. При выходе в интернет через прокси-сервер, указываем параметры прокси
  7. Подтверждаем загрузка веб-сервера apache из интернета
  8. Ждем некоторое непродолжительное время
  9. Веб-север скачен и установлен, база опубликована и настроена - можно открывать по кнопке. Также, можно добавить адрес в избранное в браузере

Если у вас остались вопросы или не все понятно из короткой инструкции читаем подробную с картинками

  • Скачиваете обработку - файл

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

  • Входите в 1С, выполнив запуск платформы под администратором (администратор компьютера)

Открываем платформу (список ИБ) с правами локального администратора компьютера/сервера. Правой кнопкой мыши на ярлыке запуска, выбираем пункт "запуск от имени администратора". Это необходимо т.к. происходит запуск службы apache.

  • В командном меню Файл - Открыть. Выбираем УстановкаВебСервера.epf (версия может отличаться)

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

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

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

Если в процессе выполнения появляется сообщение о том, что не установлены модули расширения, читайте как это установить .

  • При выходе в интернет через прокси-сервер указываем параметры прокси

  • Нажимаем на кнопку "Выполнить"

После нажатия на кнопку появляется вот окно, как на изображении ниже. Нажимаем "Согласен".

  • База опубликована на веб-сервере и настроена - можно открывать по кнопке. Добавить адрес в избранное в браузере

  • Работать с 1С в браузере удобно и не требуется установка платформы

После выполнения обработки у вас будет запущен веб-сервер Apache. Увидеть, что он запущен, остановить и перезапустить можно в системном трее (правый нижний угол).

Кликнув правой кнопкой мыши по значку вы сможете запустить монитор веб-сервера (apache service monitor).

Проверить, что веб-сервер работает нормально можно вписав строку localhost в любой браузер на компьютере, на котором установлен apache. Если все в порядке вы должны увидеть надпись - It works!

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

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

Ниже приведено изображения запуска и выполнения обработки на пустой базе, в которую добавлен лишь один справочник "Номенклатура".

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

Если вашей целью является доступ в 1С из другой сети, из дома, командировки, даже с курорта, то помимо установки веб-сервера вам необходим внешний ("белый"/выделенный) IP адрес и корректная настройка портов. В этом случае, большое внимание следует уделить безопасности базы, поэтому лучше доверить эту работу нам. Выполним любые настройки по

Максимально снизить системные требования к пользовательским машинам и по полной использовать возможности, реализованные в можно выполнив публикацию 1С на веб-сервере. Это позволит организовать работу с базой не только используя тонкий клиент, но и при помощи любого браузера, без установки дополнительных компонентов и приложений.

Основные требования

Минимальные системные требования к серверной части архитектуры могут значительно различаться и сильно зависят от:

  1. Задач, решаемых программой;
  2. Интенсивности документооборота;
  3. Количества единовременно подключенных пользователей;
  4. Размера и количества опубликованных и прописанных баз данных.

Однако без двух вещей при публикации 1С на веб-сервере обойтись просто невозможно:

  • Развернутого в системе веб-сервера;
  • Установленного и запущенного модуля расширения, поставляемого фирмой 1С.

Веб-сервер

В качестве этого элемента нашей структуры может выступать как Internet Information Server (IIS), поставляемый в составе операционных систем от фирмы Microsoft, так и Apache сервер. Конечно, есть и платные аналоги этих решений, но про них мы разговор вести не будем.

Дополнительным плюсом продуктов Apache является возможность их запуска из Linux подобных операционных систем.

Мы рассмотрим вариант с IIS, т.к. он не требует поисков и установки продуктов сторонних производителей.

Модули расширения веб-сервера

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

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

Определившись с инструментарием, перейдем к настройке.

Установка и запуск Web-сервера

Для того, чтобы запустить IIS на компьютере с установленной Windows, необходимо произвести следующую последовательность действий (на примере Windows 7):


Рис.3

Удостовериться в том, что веб-сервер заработал, можно забив в адресной строке любого браузера строку вида «http://localhost» и получив картинку, как на Рис.4.

Рис.4


Рис.6.

В некоторых случаях (в частности, если работа программы осуществляется в среде 64 разрядной операционной система), после публикации базы на сервере, возможно придется донастраивать работы с библиотеками, используемыми платформой 1С. Это можно выполнить из подменю «Сайты».

Выбрав конкретную, только что опубликованную базу в списке, необходимо активировать утилиту «Сопоставление обработчиков» (Рис.7).
Рис.7

В нашем случае нам понадобится установить соответствие между ISAPI-dll и исполняемым файлом wsisapi.dll, находящимся в папке BIN, установленной версии платформы.

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

Публикация базы на сервер

Настройка прав пользователей

Получив вышеуказанное окно, мы переходим к настройке правил доступа для пользователей.

Нам необходимо разрешить полный доступ пользователю IIS_USERS:

  • К папке «C:\inetpub\wwwroot\Имя публикации», где хранится ресурс;
  • К папке с используемой версией программы, где хранится библиотека wsisapi.dll;
  • К месту, где хранится база.

Выполнив вышеперечисленные действия, мы можем проверить работоспособность нашей публикации, забив в окне браузера строку вида «localhoct/Имя публикации» и обнаружив там форму идентификации пользователя.