1С веб сервер

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

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

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

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

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

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

После всего проделанного нажимаем кнопку «Опубликовать». 1С предложит нам перезапустить веб-сервер. Соглашаемся. После перезапуска запускаем браузер и проверяем нашу публикацию.

Набираем в браузере «localhost/Demo». Появится окно выбора пользователя и в дальнейшем сама программа 1С:

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

Рекомендуем к просмотру видеоинструкцию по установке веб-сервера в связке с 1С:

Если Вы начинаете изучать 1С программирование, рекомендуем наш курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

Публикация информационной базы 1С 8.3

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

Выберите в меню «Администрирование» пункт «Публикация на веб-сервере». В открывшемся окне мы оставим все настройки по умолчанию, изменив лишь малую их часть.

В качестве веб-сервера выберем Apache 2.2, который установили ранее. В качестве имени можно указать произвольное значение. Мы публикуем 1С:Документооборот, поэтому назовем ее просто «doc». В поле каталог выберем так же созданную нами пустую папку, которая может быть расположена в любом месте.

После внесения всех необходимых данных, нажмем на кнопку «Опубликовать» и перезапустим веб-сервер Apache.

Теперь в адресной строке браузера введем «localhost/doc». Перед нами появилось окно авторизации в 1С.

После введения логина с паролем и аутентификации, перед нами откроется привычная нам 1С.

Публикация базы 1С на стороннем web-сервере

Имеется windows-сервер c 1С 8.3 (БД — MSSQL).
Задача — настроить публикацию базы на линуксовом web-сервере.
Тонкости — модуль 1С для апача работает только с 2.0 и 2.2, а текущая версия в большинстве дистрибутивов — 2.4+
Пишется больше для себя, чтобы не забыть. Ну и мало ли, вдруг пригодится еще кому — не придется бегать по форумам в поисках нужных команд.
Железо — дал гигабайт оперативки, одно ядро и 20 гигабайт диска. Увеличить никогда не поздно.
ОС: Debian Stable, привык я к нему.
Ставлю минимум, включая ssh-сервер, но не включая web. К этому еще вернемся.

После установки базовая настройка по вкусу, я обычно ставлю локаль utf8, ставлю sudo, mc и vim, остальное по потребностям.
Дальше надо поставить apache 2.2. Причем сделать это правильным способом, а не просто скачав deb-пакет. 🙂
Сперва добавляем в /etc/apt/sources.list строчки со ссылкой на предыдущую версию дистрибутива.

deb http://mirror.yandex.ru/debian/ wheezy main deb-src http://mirror.yandex.ru/debian/ wheezy main
Можно, конечно, написать oldstable — в настоящий момент тоже будет правильно. Но только в настоящий, потому рано или поздно выйдет новая стабильная версия и в oldstable и тогда вместо apache 2.2 там будет 2.4. Хотя, надеюсь, к тому времени 1С обновится и заработает с более новыми версиями апача. Но кто их знает? 🙂
Где mirror.yandex.ru — там пишется имя вашего любимого сервера с репозиторием.
Потом обновляем индексы — apt-get update — и смотрим, что у нас тут есть по apache командой apt-cache showpkg apache2
Там много всего выводится, но нас интересует только начало вывода:
Package: apache2 Versions: 2.4.10-10+deb8u3 (/var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_binary-i386_Packages) Description Language: File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_binary-i386_Packages MD5: d02426bc360345e5acd45367716dc35c Description Language: en File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation-en MD5: d02426bc360345e5acd45367716dc35c Description Language: ru File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation-ru MD5: d02426bc360345e5acd45367716dc35c 2.4.10-10+deb8u1 (/var/lib/apt/lists/security.debian.org_dists_stable_updates_main_binary-i386_Packages) Description Language: File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_binary-i386_Packages MD5: d02426bc360345e5acd45367716dc35c Description Language: en File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation-en MD5: d02426bc360345e5acd45367716dc35c Description Language: ru File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_stable_main_i18n_Translation-ru MD5: d02426bc360345e5acd45367716dc35c 2.2.22-13+deb7u6 (/var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_binary-i386_Packages) Description Language: File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_binary-i386_Packages MD5: d24f049cd70ccfc178dd8974e4b1ed01 Description Language: en File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_i18n_Translation-en MD5: d24f049cd70ccfc178dd8974e4b1ed01 Description Language: ru File: /var/lib/apt/lists/mirror.yandex.ru_debian_dists_wheezy_main_i18n_Translation-ru MD5: d24f049cd70ccfc178dd8974e4b1ed01

Видим, что кроме 2.4.10 имеется версия 2.2.22-13+deb7u6 — то, что нужно.
Ставим: apt-get install apache2=2.2.22-13+deb7u6
Или, точнее: apt-get install apache2=2.2.22-13+deb7u6 apache2-mpm-worker=2.2.22-13+deb7u6 apache2.2-common=2.2.22-13+deb7u6 apache2.2-bin=2.2.22-13+deb7u6, а остальные зависимости уже подтянутся автоматом.
После этого ставим апачей на холд, чтобы не обновить случайно.
apt-mark hold apache2 apache2-mpm-worker apache2.2-common apache2.2-bin apache2 помечен как зафиксированный. apache2-mpm-worker помечен как зафиксированный. apache2.2-common помечен как зафиксированный. apache2.2-bin помечен как зафиксированный.
Можно запустить service apache2 start и стукнуть телнетом на 80 порт для проверки, если лень браузер запускать.
telnet localhost 80
Trying ::1… Connected to localhost. Escape character is ‘^]’. 1 <!DOCTYPE HTML PUBLIC «-//IETF//DTD HTML 2.0//EN»> <html><head> <title>501 Method Not Implemented</title> </head><body> <h1>Method Not Implemented</h1> <p>1 to /index.html not supported.<br /> </p> <hr> <address>Apache/2.2.22 (Debian) Server at 1cweb Port 80</address> </body></html> Connection closed by foreign host.
Ругается — значит работает.
Теперь ставим 1С.
Нужны только веб-сервисы 1С (пакет 1c-enterprise83-ws). И 1c-enterprise83-common, который в зависимостях прописан. И 1c-enterprise83-server, который в зависимостях не прописан, но без него утилита публикации пишет «Ошибка сегментирования».
В принципе, необходим только модуль для апача wsap22.so из пакета 1c-enterprise83-ws, а всё остальное можно через текстовый редактор сделать. Но я человек ленивый и лучше потрачу несколько мегабайт на 1С, чем буду руками вбивать строчки в конфиги. 🙂
Дальше надо создать папку для хранения настроек опубликованных БД 1С. Можно в дереве вебсервера, но я лучше отдельно сделаю, прямо в корне, /1с.
После этого из папки с установленными файлами 1С (/opt/1C/v8.3/i386) запускаем утилиту публикации webinst со следующими параметрами (публикую нашу тестовую базу):
./webinst -apache22 -wsdir testlitupp -dir /1c/testlitupp -connstr «Srvr=10.0.0.4;Ref=testlitupp;» -confPath /etc/apache2/apache2.conf Публикация выполнена
-apache22 — наша версия вебсервера
-wsdir testlitupp — папка на вебсервере, в которой будет доступна опубликованная база (http://вашсервер/testlitupp)
-dir /1c/testlitupp — папка, в которой будет храниться файл default.vrd с настройками публикации
-connstr «Srvr=10.0.0.4;Ref=testlitupp;» — ip сервера 1С и имя публикуемой базы данных
-confPath /etc/apache2/apache2.conf — путь к конфигу apache
Если было написано «Публикация выполнена», значит всё прошло удачно. Если пишет «Ошибка сегментирования», то вы, скорее всего, забыли поставить 1c-enterprise83-server.
По результатам имеем файл default.vrd
<?xml version=»1.0″ encoding=»UTF-8″?> <point xmlns=»http://v8.1c.ru/8.2/virtual-resource-system» xmlns:xs=»http://www.w3.org/2001/XMLSchema» xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance» base=»/testlitupp» ib=»Srvr=10.0.0.4;Ref=testlitupp;»/>
И несколько новых строк в файле конфигурации веб-сервера:

LoadModule _1cws_module «/opt/1C/v8.3/i386/wsap22.so» # 1c publication Alias «/testlitupp» «/1c/testlitupp/» <Directory «/1c/testlitupp/»> AllowOverride All Options None Order allow,deny Allow from all SetHandler 1c-application ManagedApplicationDescriptor «/1c/testlitupp/default.vrd» </Directory>
Перезапускаем апач (service apache2 restart) и идём смотреть, что там опубликовалось.
Опубликовалось, просит пароль.

И впускает в базу.

Работает. Дополнительные настройки публикации делаются через редактирование vrd-файлов (к примеру, включение отладки), а допиливанием интерфейса веб-клиента должны заниматься ваши программисты 1С.
Если будете дописывать опции, к примеру, с подключением сервисов руками, то не забудьте удалить в файле default.vrd последний слэш в строчке «base=»/testlitupp» ib=»Srvr=10.0.0.4;Ref=testlitupp;»/>», я с этим долго возился. Если не удалить и что-то дописать после, то вылетает «ошибка 500» без дополнительной информации.
Какая будет нагрузка на вебсервер — я ещё не знаю, у нас это пока в тестовом режиме работает и хватает выделенных ресурсов. Но добавить памяти или ядер по мере увеличения потребностей проблем не составит.
В целом, в других дистрибутивах linux всё делается аналогично, различия только в способах установки старой версии apache.

Как опубликовать базу 1С:Документооборот на веб-серверах Apache и IIS?

У нас имеется два веб-сервера Apache и IIS. Веб-сервер Apache мы будем использовать для публикации базы 1С:Документооборот в Internet для работы через веб-клиент и через мобильный клиент. Веб-сервер IIS нам нужен для доступа к 1С:Документооборот внутри локальной сети для обменов с другими системами.
Для начала проверим запущены ли веб-серверы Apache и IIS. В браузере на веб-серверах наберем в адресной строке localhost и localhost:8080.
Если сервер Apache работает по 80 порту, то мы увидим сообщение «It works!».
Если сервер IIS работает по порту 8080, то увидим следующую картинку.

Теперь опубликуем базу и веб-сервисы 1С:Документооборот на веб-серверах.

Публикация на веб-сервере Apache с использованием конфигуратора

Для публикации на веб-сервере Apache воспользуемся конфигуратором. В базе 1С:Документооборот заходим в конфигуратор, в меню Администрирование выбираем пункт Публикация на веб-сервере.
Указываем имя публикации, веб-сервер, каталог публикации, а также устанавливаем флаги «Публиковать тонкий клиент и веб-клиент», «Публиковать Web-сервисы» и отмечаем веб-сервисы для работы с мобильными клиентами:
• MobileDM132,
• MobileDM142,
• MobileDMVersionService.
Поскольку часть пользователей будет работать через Интернет, то они могут работать через веб-клиент или через тонкий клиент. Для работы с файлами в 1С:Документооборот удобнее использовать тонкий клиент. Однако при обновлении платформы на сервере 1С у пользователей может не оказаться актуальной версии тонкого клиента. Поэтому мы будем всегда размещать на сервере Apache актуальный дистрибутив тонкого клиента.
Возьмем дистрибутив тонкого клиент и заархивируем его в ZIP-архив. В папку веб-сервера Apache найдем папку htdocs, в которой создадим подпапку distr. Скопируем в эту папку наш zip-архив.

Проверим в браузере доступность скачивания нашего архива.
Теперь снова откроем публикацию на веб-сервере, установим флаг «Публиковать дистрибутив» и укажем путь http://localhost/distr/setuptc.zip. Вместо localhost нужно будет указать адрес DNS-сервера, по которому доступен веб-сервер Apache в Интернет. И снова нажимаем кнопку Опубликовать.

В результате в папке htdocs веб-сервера Apache в папке doc создался файл default.vrd.
Публикация 1С:Документооборот на веб-сервере Apache завершена. Проверим запуск 1С:Документооборот в режиме веб-клиента. Набираем в адресной строке браузера http://localhost/doc.

Публикация на веб-сервере IIS с использованием компоненты webinst

В справке по публикации на веб-сервере написано следующее:
Для публикации на удаленном компьютере можно также использовать утилиту webinst. Данная утилита должна запускаться из каталога двоичных файлов платформы (для ее запуска требуется наличие динамических библиотек, входящих в состав платформы):
Публикация:
webinst websrv -wsdir VirtualDir -dir Dir -connstr connStr
Удаление публикации:
webinst -delete websrv -wsdir VirtualDir
-publish – опубликовать (ключ по умолчанию);
-delete – удалить публикацию;
websrv – тип веб-сервера. Может принимать следующие значения:
• iis – публикация веб-клиента для IIS;
• apache2 – публикация веб-клиента для Apache 2.0;
• apache22 – публикация веб-клиента для Apache 2.2;
-wsdir VirtualDir – виртуальный каталог;
-dir Dir – физический каталог, в который будет отображен виртуальный каталог;
-connstr connStr – строка соединения информационной базы;
-confPath confPath – полный путь к конфигурационному файлу Apache (только для публикации на Apache);
-osauth – использование Windows авторизации (только для IIS);
–descriptor <путь к vrd файлу> – указывает новый файл-дескриптор публикации. При публикации существующий vrd файл полностью переписывается указанным. Если в вызове утилиты указаны также ключи –wsdir и/или –connstr, их значения перекрывают значения полей vrd-файла base и ib соответственно. Если указан ключ –delete, ключ –descriptor используется для получения имени публикации (поле base vrd-файла) и проверки строки соединения (проверка, что по этому имени опубликована требуемая база). Должен использоваться именно файл-дескриптор публикации. Запускаем командную строку под правами Администратора. Затем переходим в папку, где находится компонента webinst.
Если установлен 64-х разрядный модуль расширения веб-сервера, то выполняем команду:
cd c:\Program Files\1cv8\8.3.6.2014\bin\
Если установлен 32-х разрядный модуль расширения веб-сервера, то выполняем команду:
cd c:\Program Files (x86)\1cv8\8.3.6.2014\bin\
Далее выполняем команду:
webinst -publish -iis -wsdir doc -dir c:\inetpub\wwwroot\doc\ -connstr «Srvr=dv;Ref=doc;»
Далее нам потребуется скорректировать файл default.vrd, чтобы было запрещено работать с приложением из веб-браузера из локальной сети и были опубликованы только веб-сервисы для обмена. Для удобства скопируем ветку из файла default.vrd, созданного в результате публикации 1С:Документооборот для веб-сервера Apache.

В результате файл default.vrd будет иметь вид:
Публикация 1С:Документооборот на веб-сервере IIS завершена. Проверим нашу публикацию. В браузере наберем адрес http://localhost:8080/doc. Видим, что работа через веб-клиент не доступна.
Проверим работу веб-сервиса Files в 1С:Документооборот. Набираем в адресной строке браузера адрес http://localhost:8080/doc/ws/files.1cws?wsdl. Видим следующее:
Теперь проверим, что веб-сервис MobileDM142 в 1С:Документообороте не доступен. Набираем в браузере адрес http://localhost:8080/doc/ws/MobileDM142.1cws?wsdl. Видим следующее:

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

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

  1. В «Панели администратора» зайти в меню «Программы и компоненты» и нажать на «Включение или отключение компонентов …» (Рис.2); Рис.2
  2. В открывшемся после некоторого времени окне нас будет интересовать пункт «Службы IIS», галочки, выставленные по умолчанию можно не менять, за исключением пункта «Расширения ISAPI» (Рис.3), этот пункт обязательно должен быть включен;

Рис.3

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

Рис.4

  1. Если все инсталлировалось правильно, в «Панели управления»-> «Администрирование» появится ярлык «Диспетчер служб IIS», запустим его;
  2. Так как стандартная процедура публикации базы на веб-сервер из конфигуратора отрабатывает это действие для 32-разрядного модуля расширения, мы должны в настройках сервера разрешить возможность его использования для конкретного пула приложений;
  3. В нашем случае мы воспользуемся предопределенным пулом DefaultAppPool (Рис.5) Рис.5
  4. Запустив контекстное меню нашего пула, на закладке «Дополнительные параметры» , для ключа Разрешены 32-разрядные приложения (Рис.6) установим значение True;

Рис.6.

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

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

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

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

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

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

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

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

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

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

Исключение – если в браузере требуется работать с файлами (что не так часто ипользуется в 1С).

На сервере где будет установлена 1С Вам необходимо произвести установку веб сервера (MS IIS или Apache), после этого, к нему устанавливается плагин от 1С, который передает запросы пользователей на сервер 1С.

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

Итак, производим установку веб сервера 1С.

Установим веб сервер Microsoft Information Services (IIS)
Установку веб сервера можно произвести из Панели управления Windows (варианты):

  • Установка и удаление программ/Компоненты Windows/IIS
  • Program and features/Turn windows features on or off/Add features.

В Windows 8 перейдите на закладку Roles, выберите Add Roles (откроется мастер).

На соответствующих закладках мастера нужно выбрать:

  • Web Server (IIS)
  • Application Development/ISAPI Extensions.

В других версиях Windows первая галочка может называться «Internet Information Services», вторая так же, или «Расширения ISAPI».

Установим платформу 1С Предприятие (после IIS)
На этот же сервер (компьютер) требуется установить сервер 1С и толстый клиент платформы 1С.

Установка платформы 1С производится самым обыкновенным образом, как описано ранее, но обязательно выберите галочки:

  • Адаптер Web-сервисов 1С:Предприятие
  • Компоненты доступа к серверам 1С:Предприятие.

При использовании 64разрядной Windows рекомендуется использовать 64разрядную версию сервера 1С.

Проведем настройку IIS (после установки 1С)
Настройку можно проводить в «Диспетчере служб IIS (IIS manager)», который находится в Панели управления Windows/Администрирование.

В ветке «Узлы (Web Sites)» находится веб-узел по-умолчанию, нажмите на него правой кнопкой и выберите «Добавить виртуальный каталог».
Выделим курсором созданный каталог (левой кнопкой мыши), справа отобразятся различные его настройки. Выберите «Сопоставление обработчиков (Handler mappings)».

Справа появятся доступные действия. Выберите «Добавить сопоставление сценария (Add script map)».

Введите путь запроса «*», выберите исполняемый файл «wsisapi.dll» в каталоге bin соответствующей версии 1С:Предприятие, установленной на этом сервере (не забываем про права, если они у Вас специально ограничены).

По кнопке «Ограничение запроса (Request Restrictions)» там же, необходимо установить разрешающую галочку. После создания этого обработчика, установите на него курсор мыши, выберите «Проверка подлинности (Edit handler permissions)», разрешите его выполнение (Execute). Если база файловая, необходимо дать доступ к папке базы.

Далее правой кнопкой на созданный каталог, пункт «Преобразовать в приложение (Convert to Application)».

Публикация веб сервиса конкретной базы
Зайдите в конфигуратор требуемой базы данных на этом сервере (компьютере).

В меню Администрирование/Публикация на веб-сервере выберите каталог (обычно это «C:\Intetpub\wwwroot\ИмяДобавленногоВIISКаталога\»), нажмите кнопку «Опубликовать».

В результате в требуемом каталоге должен появится файл с расширением VRD.

Проверяем брандмауэр (фаервол), антивирус и фильтры трафика
Требуется поставить или разрешение (закладка exceptions) для порта 80 (TCP).