Установка модулей расширения Web-сервера. Модули расширения для веб-сервера Apache Подключение к хранилищу

В системе «1С:Предприятия» 8. В данной статье рассмотрим процесс публикации сервера хранилища конфигураций на веб-сервере IIS для возможности доступа к хранилищам, обслуживаемым сервером, по протоколу http (или https ).

1. Установка сервера хранилища конфигураций «1С:Предприятия» 8

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

2. Установка веб-сервера IIS

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

  • Общие функции 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 в различных операционных системах семейства Windows можно прочитать в статьях:

После установки веб-сервера, на компьютере с запущенным сервером IIS в браузере по адресу http://localhost должна появиться стартовая страница (Default Web Site ) веб-сервера соответствующей версии.

3. Установка модулей расширения веб-сервера «1С:Предприятия» 8

На том же компьютере, где запущен веб-сервер IIS необходимо выполнить установку модулей расширения веб-сервера «1С:Предприятия» 8 версии, аналогичной версии сервера хранилища конфигураций. Кроме того, на момент написания статьи сервер хранилища конфигураций мог быть только 32-разрядным приложением, поэтому и модули расширения веб-сервера необходимо устанавливать с 32-разрядного дистрибутива системы «1С:Предприятия» 8.

Подробнее про установку компонент программы 1С:Предприятие 8 можно прочитать в статье:

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

Для того, что бы веб-сервер IIS смог работать с установленным на предыдущем шаге модулем расширения веб-сервера «1С:Предприятия» 8, необходимо дать полные права на каталог с данными компонентами (по умолчанию C:\Program Files (x86)\1cv8\ для «1С:Предприятия» 8.3 и C:\Program Files (x86)\1cv82\ для «1С:Предприятия» 8.2) группе IIS_IUSRS .

Для этого кликаем правой кнопкой мыши по необходимому каталогу и выбираем «Свойства » (Properties) в контекстном меню.

В окне свойств переходим на вкладку «Безопасность » (Security) и нажимаем кнопку «Изменить » (Edit…), для изменения действующих разрешений. Появится окно разрешений для данного каталога. В нем нажимаем расположенную под списком «Группы или пользователи » (Groups or user names) кнопку «Добавить » (Add..), а в окне выбора групп или пользователей нажимаем «Дополнительно » (Advanced…).

Затем нажимаем расположенную справа кнопку «Поиск » (Find Now), после чего выбираем необходимую группу IIS_IUSRS в таблице результатов поиска и нажимаем «ОК ».

Группа IIS_IUSRS появится в списке групп или пользователей. Даем ей полные права на на выбранную директорию и нажимаем «Применить » (Apply) для сохранения изменений.

5. Создание конфигурационного файла

Далее переходим непосредственно к публикации установленного до этого сервера хранилищ конфигураций на поднятый раннее веб-сервер IIS. Начнем с того, что в каталоге хранения сайта Default Web Site веб-сервера (по умолчанию C:\inetpub\wwwroot ) создадим каталог с именем будущей публикации, пусть это будет каталог с именем repository .

А затем в данном каталоге создадим файл с расширением .1ccr (пусть, по аналогии с каталогом, это будет файл с именем repository.1ccr ) и с содержанием:

Где <ИмяСервераХранилища > сетевое имя или IP-адрес компьютера на котором запущен сервер хранилища конфигураций.

6. Настройка приложения в IIS

Теперь, если запустить диспетчер служб IIS (Internet Information Services (IIS) Manager) и раскрыть вкладки «Сайты » (Sites) — «Default Web Site » увидим каталог, который мы создавали на предыдущем шаге. Преобразуем данный виртуальный каталог в приложение. Для этого кликнем по нему правой кнопкой мыши и в контекстном меню выберем пункт «Преобразовать в приложение » (Convert to Application).

После чего, необходимо создать обработчик для данного виртуального приложения. Для этого следует выделить приложение в дереве подключений и в окне свойств выбрать пункт «Сопоставление обработчиков » (Handler Mappings).

В открывшемся окне сопоставления обработчиков в меню «Действия » (Actions) справа выбираем пункт «Добавление сопоставления сценария с подстановочными знаками » (Add Wildcard Script Map…).

Откроется окно добавления нового обработчика. В нем указываем путь к модулю расширения веб-сервера «1С:Предприятия», а конкретно к библиотеке wsisapi.dll , которая хранится в каталоге bin , директории, указанной при установки компонент системы «1С:Предприятия» в данной инструкции. Также задаем имя обработчика и нажимаем «ОК ».

Добавляем данное расширение ISAPI как разрешенное в список ограничений ISAPI и CGL, нажав «Да » (Yes) в появившемся окне.

После чего, только что добавленный обработчик должен появиться в списке сопоставления обработчиков нашего виртуального приложения. Осталось только добавить разрешение на выполнение данного обработчика. Для этого кликаем по нему правой кнопкой мыши и в контекстном меню выбираем «Изменение разрешений функции… » (Edit Feature Permissions…).

В открывшемся окне разрешений устанавливаем флаг в поле «Выполнение » (Execute) и нажимаем «ОК ».

Как я уже писал раннее, сервер хранилища конфигураций это 32-разрядное приложение. Соответственно, необходимо разрешить пулу приложений, который обслуживает данный виртуальный каталог работу с 32-разрядными приложениями. Чтобы просмотреть, какой пул обслуживает конкретный виртуальный каталог, необходимо в дереве подключений кликнуть по нему правой кнопкой мыши, в контекстном меню выбрать «Управление приложением » (Manage Application) — «Дополнительные параметры » (Advanced Settings…).

В появившемся окне параметр «Пул приложений » (Application Pool) и определяет пул приложений, который обслуживает данный виртуальный каталог, в данном случае это DefaultAppPool . В этом же окне можно и изменить, в случае необходимости, данное значение параметра.

Для того, чтобы настроить пул приложений для работы с 32-разрядными приложениями, необходимо отыскать его в окне пулов приложений, доступном на вкладке «Пулы приложений » (Application Pools) в дереве подключений, кликнуть по нему правой кнопкой мыши и в контекстном меню выбрать «Дополнительные параметры… » (Advanced Settings).

В появившемся окне дополнительных параметров пула приложений изменяем параметр «Разрешены 32-разрядные приложения » (Enable 32-Bit Applications) в значение True .

Необходимо помнить (!) , что при этом пул перестанет корректно обрабатывать 64-разрядные приложения. Поэтому, если у вас на веб-сервере есть 64-разрядные приложения, например, обслуживаемые 64-разрядным модулем расширения веб-сервера, следует создать отдельный пул приложений, разрешить на нем 32-разрядные приложения и установить в качестве пула для текущего виртуального каталога.

Установив необходимые параметры жмем «ОК ».

7. Подключение к хранилищу

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

Http://<ИмяВебСервера>/<ИмяПриложения>/<Файл.1ccr>/<ИмяХранилища>

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

Http://WIN2012R2/repository/repository.1ccr/Accounting

Http://localhost/repository/repository.1ccr/Accounting

или даже таким:

Https://сайт/repository/repository.1ccr/Accounting

Помогла ли Вам данная статья?

Стоит задача, поднять встроенный в windows вебсервер IIS и опубликовать на нем базу 1с на платформе 8.3. Ничего сложного в этом нет.

В наличии крутящийся на виртуалке 2008 r2 enterprise server. Права локального администратора к нему. Платформа 1С 8.3.6.2041. Информационную базу создадим пустую. И так приступим. Присоединяйтесь к нашей группе в ВК! Времонте! Умная мастерская!

Установка роли вебсервера(IIS)

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

Доходим до шага выбора Роли сервера и ставим галочку напротив Веб-сервер(IIS). Жмем далее. Теперь необходимо верно выбрать службы устанавливаемой роли. Ставим галочки ровно как на скриншоте ниже.

Доводим установку до конца. Мастер добавления ролей должен через определенное время сообщить нам, что роль и все службы роли успешно установились:

Теперь необходимо проверить, все ли хорошо у нас получилось. Открываем любой браузер и переходим в нем по адресу http://localhost . У нас должна отобразиться вот такая вот радостная картинка:


установка платформы и компонентов 1с

Это значит, что вебсервер поднялся у нас корректно и все отлично работает. Поэтому перейдем теперь к 1с. Необходимо поставить платформу. Единственный нюанс при установке платформы выбрать:

  • 1С:Предприятие
  • Модули расширения веб-сервера
настройка прав доступов

Первым делом необходимо настроить права папке, где у нас расположен корневой каталог вебсервера. Если ничего не меняли то по умолчанию он находится C:\inetpub\wwwroot . Переходим в папку C:\inetpub\ выбираем папку wwwroot, щелкаем по ней правой кнопкой мыши и заходим в свойства. Переходим к вкладке Безопасность . Нажатием на кнопку изменить, переходим непосредственно к настройке разрешений. Находим в списке Группы и пользователи , группу Пользователи , и кликнув на нее ставим в графе ниже Разрешения для группы , недостающие галочки в колонке Разрешить .

Теперь необходимо дать права папкам с установленной 1с. Переходим к ним, по умолчанию для 32-битной версии 1с лежит в папке C:\Program Files (x86)\1cv8 для 64-битной в папке C:\Program Files\1cv8 . Также выбираем папку 1cv8 заходим в ее свойства, переходим во вкладку Безопасность -> Изменить. Но вместо выбора группы из списка, нам необходимо ее туда сначала добавить. Для этого жмем кнопку Добавить , в появившемся окне , нажимаем кнопку Дополнительно .


Далее нажимаем по кнопке Поиск и в списке результата ищем IIS_IUSRS , добавляя его двойным кликом, нас возвращает в окно Выбор «Пользователи» или «Группы» но с уже проставленной группой в списке. Жмем Ок, и вернувшись уже к окну Разрешения для группы проставляем все галочки в поле разрешить для вновь добавленной группы.

Проставив разрешения для папок с файлами 1с, нам остается последнее. Дать права группе IIS_IUSRS напапку, где у нас лежит сама база 1с.

Необходимые приготовления сделаны. Теперь переходим непосредственно к публикации.

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

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

В режиме конфигуратора 1с, переходим к меню Администрирование -> Публикация на веб-сервере .


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

настройка IIS для работы с 32-битным модулем расширения веб-сервера 1С

Напомню вам, что мы использовали 32-битную платформу и модуль расширения веб-сервера от 1с соответственно. Поэтому нам в таком случае еще необходимо разрешить выполнять пулу приложений по умолчанию — DefaultAppPool выполнять 32-битные приложения. Это сделать не сложно. Идем Диспетчер сервера -> Роли -> Веб-сервер(IIS) -> Диспетчер служб(IIS) -> Пулы приложений -> DefaultAppPool. Правой кнопкой мышки по DefaultAppPool вызываем контекстное меню и выбираем в нем Дополнительные параметры.


Ищем строчку Разрешены 32-разрядные приложения и напротив ставим TRUE

НАСТРОЙКА IIS ДЛЯ РАБОТЫ С 64-БИТНЫМ МОДУЛЕМ РАСШИРЕНИЯ ВЕБ-СЕРВЕРА 1С

Если мы использовали 64-разрядную платформу и модуль веб расширения соответственно, то необходимо проделать манипуляции такого рода:

Идем Диспетчер сервера -> Роли -> Веб-сервер(IIS) -> Диспетчер служб(IIS) -> И выбираем приложение преобразованное из виртуального каталога с именем, что мы задавали при публикации базы. В правом поле переходим в раздел Сопоставление обработчиков (Handler Mappings). Публикация 1с 8.3 на веб сервере iis Публикация 1с 8.3 на веб сервере iis

Присоединяйтесь к нашей группе в ВК!

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

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

Ядро Apache выполняет самые основные функции сервера и позволяет подключать дополнительные модули

Начать разговор о модулях нужно, разумеется, с ядра системы. Именно к нему примыкают все дополнительные модули, как зерна кедрового ореха к сердцевине. Ядро выполняет те функции, без которых Apache просто нельзя было бы назвать веб-сервером. Оно исправно принимает запросы браузеров, возвращаем им ответы в виде страниц и так далее, но самое главное — позволяет подключать к себе дополнительные модули.

В поставку сервера входит целый набор модулей, предназначенных для работы в режиме с несколькими запущенными процессами. Не секрет, что большинство существующих операционных систем позволяют работать с несколькими задачами одновременно. Благодаря этой группе модулей Apache может использовать все возможности таких систем. Кроме основного модуля mpm_common , вы сможете найти модуль, оптимизированный для каждой из наиболее популярных платформ (Windows, OS/2, BeOS, Netware и так далее).

Если вы хотите пользоваться всеми файла.htaccess, то стоит установить модуль mod_access , который отвечает за доступ к каталогам и файлам на сервере. С его помощью можно запретить или, напротив, разрешить доступ с определенных IP-адресов или сетей.

Модель mod_actions позволяет запускать скрипты во время обращения к определенному типу файлов

Модуль mod_actions содержит в себе две директивы, касающиеся запуска CGI-скриптов. «Actions» отвечает за запуск исполняемого файла в тот момент, когда пользователь запрашивает файл определенного типа. Таким образом, можно, например, организовать обработку изображений перед отправкой пользователю или ведение статистики. Вторая директива — «Script» — позволяет выполнять программу, когда какой-либо файл запрашивается с помощью определенного метода (GET, POST или другого специального). С ее помощью можно установить универсальный обработчик формы, который будет выполнять помимо стандартных действий нужные вам. Это может быть обработка данных перед внесением их в базу, отправка по почте, ведение статистики и так далее.

За переадресацию и создание псевдонимов отвечает модуль mod_alias

Если вам нужно пользоваться функциями переадресации или назначения псевдонимов, то вы не обойдетесь без модуля mod_alias . Он содержит в себе директивы, позволяющие ассоциировать псевдоним с определенным каталогом. Например, ваш каталог с картинками выглядит так: /pub/we/images/, то есть доступ на него есть, но через протокол HTTP он не доступен. Если вы не хотите его перемещать по каким-либо причинам, то можете сделать псевдоним: "Alias /img /pub/we/images". После этого пользователи, набирающие в своих браузерах адрес http://ваш_сайт/img/ ,будут попадать на нужный каталог с изображениями. Кстати, такая переадресация используется для каталога с CGI-скриптами.

С помощью модуля mod_asis можно выдавать клиенту страницу "как есть", без обработки сервером

Еще один интересный, но не очень часто используемый вебмастерами модуль — mod_asis , которые позволяет "отдавать" клиенту некоторые файлы без обработки сервером. Для этого в конфигурационном файле нужно добавить строку "AddHandler send-as-is asis", где «asis» — расширение файла. Теперь, когда браузер будет запрашивать у сервера файл с таким расширением, он будет попадать к нему напрямую. Apache только добавит к заголовку идентификаторы «Server» и «Date», все остальное — например, статус — будет отправляться "как есть".

Модули из семейства mod_auth отвечают за аутентификацию пользователей

Целый ряд модулей предназначен для аутентификации пользователей на сайте. Это и понятно, ведь проблема безопасности и разграничения доступа стоит достаточно остро. Мы опишем только те модули, которые входят в стандартную поставку сервера Apache, но отметим, что сторонними производителями создано достаточно много иных модулей, которые вы тоже можете попробовать подключить и использовать самостоятельно.

Еще один вид аутентификации — цифровая (HTTP Digest Authentication), которая поддерживает шифрование данных ключом MD5 и считается более надежной, чем базовая. В Apache существует модуль mod_auth_digest , который позволяет вам ею пользоваться. Для вас настройка такой авторизации не будет отличаться практически ничем от предыдущего случая. Только для создания файлов вам нужно будет пользоваться утилитой htdigest . Вообще тема аутентификации пользователей при создании интернет-сайтов очень объемная и интересная. Она вполне заслуживает отдельного материала, а здесь мы постарались лишь описать основные возможности сервера Apachе в этой области.

Функции из модуля mod_autoindex позволяют автоматически создавать индексные файлы

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

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

Для того чтобы воспользоваться возможностью предварительного сжатия текстовых файлов с вашего сервера, нужно установить модуль mod_deflate . Он позволит включить упаковку исходящих файлов перед отправкой их пользователям. После приема браузер сам распакует файл и покажет его посетителю. Это позволит вам сократить исходящий трафик, ускорит загрузку файлов с сервера и улучшит отношение пользователя к вашему сайту. В документации к серверу приведен хороший пример рекомендуемой конфигурации — он позволит вам избежать неприятностей, если у пользователя окажется старый браузер, не поддерживающий возможностей упаковки, а потому не станем приводить его здесь.

Модуль mod_status позволяет администратору следить за работоспособностью сервера без дополнительных программ. Система будет сама записывать в файл все запросы, поступившие на него, время перезагрузок и остановок сервера, загрузку процессора компьютера и другую информацию. Для этого, кроме установки модуля, нужно создать директиву в файле httpd.conf:


SetHandler server-status

Order Deny,Allow
Deny from all
Allow from .foo.com

В этом случае по адресу http://ваш_сайт/server-status вы сможете посмотреть на статистику сервера. Она будет доступна, только если вы войдете с компьютера, находящегося в домене.foo.com. Впрочем, вы можете установить и другие ограничения доступа.

И последний модуль, о котором хотелось бы рассказать, позволит вам превратить свой веб-сервер в прокси-сервер. Это делается подключением к Apache модуля mod_proxy и других модулей этого "семейства". Apache может работать в двух прокси-режимах: прямом и обратном. Прямой режим требует специальной настройки браузера посетителя и позволяет, например, пользователям локальной сети получать доступ в Интернет. Обратный же никаких дополнительных настроек не требует и предоставляет доступ к компьютерам, которые не видны "извне". Типичный пример — доступ пользователей Интернета к какому-либо сайту, находящемуся внутри локальной сети.

К слову сказать, Apache позволяет организовать не только HTTP, но и FTP-прокси с аналогичными функциями. Кроме того, развитая система директив дает возможность тонко разграничивать права доступа к сетям, разрешать или запрещать прием определенных типов файлов и так далее.

Разумеется, охватить все возможные модули Apache в рамках одного материала нам не удалось, даже стандартных их слишком много. Но, с другой стороны, рассказывать обо всех не имеет особого смысла, потому что часть из них очень хорошо известна веб-разработчикам, а другая часть нужна лишь очень узкому кругу людей. Мы постарались говорить в основном о нужных многим модулях, о существовании которых знают далеко не все.

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

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

После выполнения публикации необходимо предоставить пользователю, от лица которого запускается Apache, права на каталог исполняемых файлов (/opt/1C/v8.3/i386/ для 32-разрядной версии или /opt/1C/v8.3/x86_64/ для 64-разрядной версии) конкретной версии системы «1C:Предприятие» (чтение и выполнение). В случае файлового варианта информационной базы необходимо дать права на модификацию каталога информационной базы пользователю, от лица которого работает веб-сервер.

Итак, рассмотрим подробнее всех участников нашей схемы. Ключевую роль в ней занимает информационная база, права на модификацию которой должны иметь все подключающиеся к ней клиенты, а также исполняемые файлы платформы, к которым должен иметь доступ веб-сервер.

Начнем с платформы, она размещается в /opt/1C и имеет владельцем usr1cv8:grp1cv8 , такой формат записи является общеупотребительным в Linux и обозначает связку пользователь:группа . Если быть точным, то веб-серверу требуется доступ на чтение и выполнение к единственному файлу платформы - библиотеке wsap24.so (для Apache 2.4).

Гораздо интереснее с информационной базой, изначально ее владельцем является локальный пользователь user:user , который является также членом одноименной персональной группы. По умолчанию он имеет все необходимые права доступа к базе (чтение и запись). Аналогичные права также должен иметь веб-сервер, который работает от имени www-data:www-data .

Существуют способы запустить Apache от имени нужного пользователя, но на практике выяснилось, что 1С не работает с mpm-itk , даже если веб-сервер запущен от системного пользователя, практически сразу после запуска базы вы будете получать следующую ошибку: Сеанс отсутствует или удален .

Поэтому самое время вспомнить, что в Linux права устанавливаются для пользователя , группы и остальных , права по умолчанию, в зависимости от системы, несколько отличаются. За их назначение отвечает такой параметр как umask , грубо говоря, это маска, которую надо вычесть из полных прав, чтобы получить права, применяющиеся по умолчанию. В Ubuntu umask равен 002 , а в Debian 022 , следовательно, набор стандартных прав в Ubuntu/Debian будет 775/755 для папок и 664/644 для файлов.

Набор 775/664 дает права чтения/записи как владельцу, так и группе, а 755/644 - только владельцу. Таким образом в Ubuntu набор прав по умолчанию полностью подходит для наших целей, а в Debian потребуется изменить umask на 002 .

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

Установка модуля расширения веб-сервера

Будем считать, что у вас уже установлена платформа согласно нашему руководству . В таком случае нам понадобятся пакеты 1c-enterprise83-ws и 1c-enterprise83-ws-nls из поставки сервера. Обратите внимание, что версия и разрядность данных пакетов должна совпадать с версией и разрядностью установленной платформы.

Скопируем указанные пакеты в произвольную папку и установим их командой:

Dpkg -i 1c*.deb

Обратите внимание, что данная команда установит все пакеты из текущего расположения по маске 1с*, поэтому будьте внимательны и убедитесь, что в ней нет ничего лишнего.

Затем установим нужного владельца для платформы:

Chown -R usr1cv8:grp1cv8 /opt/1C

на этом установка модуля веб-сервера окончена.

Установка Apache 2.4

Начиная с платформы 8.3.8 добавлена поддержка актуальной версии Apache 2.4, теперь нет необходимости понижать версию пакета, если вы используете более раннюю версию платформы, то вам потребуется понизить Apache до версии 2.2, как это сделать описано в нашей статье .

Также мы категорически не советуем использовать экземпляр Apache используемый для 1С:Предприятия для иных целей, как мы уже видели, 1С оказалась несовместима с mpm-itk , кроме того 1С достаточно вольно обращается с файлами конфигурации, игнорируя виртуальные хосты и дописывая свои директивы прямо в основной конфигурационный файл Apache.

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

Его установка производится одной единственной командой:

Apt-get install apache2

никакой дополнительной настройки пакет не требует.

Настройка необходимых прав доступа

Если вы используете Debian , то прежде всего следует изменить umask системы на 002, для этого откройте файл /etc/pam.d/common-session и добавьте в его конец строку:

Session optional pam_umask.so umask=0002

Затем включим пользователя веб-сервера в группы 1С и текущего пользователя системы:

Usermod -a -G grp1cv8 www-data
usermod -a -G user www-data

Также включим текущего пользователя в группу веб-сервера:

Usermod -a -G www-data user

где вместо user следует использовать имя текущего пользователя.

После чего нужно установить права на папки с информационными базами, допустим они находятся в /opt/1C_bases :

Chmod -R u=rw,g=rw,o=r,a+X /opt/1C_bases

Закончив с установкой прав следует перезагрузить сервер.

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

Публикацию базы можно выполнить двумя путями: через Конфигуратор и при помощи командной строки. Ниже мы рассмотрим оба способа.

Перед публикацией создадим директорию для нее в рабочем каталоге веб сервера, по умолчанию это /var/www , мы будем публиковать Бухгалтерию 3.0 поэтому назовем директорию acc30 :

Mkdir /var/www/acc30

Запустим 1С:Предприятие с повышенными правами, для этого в терминале от имени суперпользователя выполните для 32-разрядной системы:

/opt/1C/v8.3/i386/1cestart

для 64-разрядной:

/opt/1C/v8.3/x86_64 /1cestart

Откроется стандартное окно запуска 1С из которого откроем в Конфигураторе нужную нам базу. Затем перейдем в Администрирование - Публикация на веб-сервере и заполним небольшую форму:

В поле Имя указываем желаемый алиас информационной базы, его вы будете набирать в адресной строке браузера для доступа к данной базе, поэтому не следует делать его длинным или неудобочитаемым. Веб-сервер - здесь все понятно, в нашем случае Apache 2.4 и, наконец, Каталог - здесь следует указать директорию публикации, которую мы создали несколько ранее, не следует путать ее с рабочим каталогом ИБ. Если вы не используете интерфейс OData и Web-сервисы, то публиковать их не нужно.

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

Для публикации из командной строки следует перейти в директорию с бинарными файлами 1С, в 32-разрядной системе выполните:

Cd /opt/1C/v8.3/i386/

в 64-разрядной:

Cd /opt/1C/v8.3/x86_64/

После чего запустите утилиту webinst со следующими параметрами:

./webinst -publish -apache24 -wsdir acc30 -dir /var/www/acc30/ -connstr "File=""/opt/1C_bases/acc30/"";" -confpath /etc/apache2/apache2.conf

На первый взгляд ее синтаксис довольно сложен, но на самом деле все довольно просто, давайте разберем каждый параметр:

  • publish - указывает необходимое действие, в данном случае публикацию, может быть опущен, так как это действие по умолчанию.
  • apache24 - задает тип веб-сервера, для Apache 2.2 следует указывать apache22.
  • wsdir - имя алиаса публикации, по которому к базе следует обращаться из браузера.
  • dir - путь публикации, созданная нами директория в рабочем каталоге веб-сервера
  • connstr - строка соединения, состоит из трех частей, каждая из которых взята в кавычки: "File=" - указывает что база файловая, "/opt/1C_bases/acc30/" - путь к каталогу ИБ, ";" - служебный символ.
  • confpath - путь к конфигурационному файлу веб-сервера.

Chown -R www-data:www-data /var/www

Теперь можем попробовать запустить базу, обратившись к ней в браузере по имени хоста или IP-адресу, добавив через слеш нужный алиас, на локальной машине можно набрать http://127.0.0.1/acc30 .

Несколько слов о производительности

По-хорошему здесь должен был быть завершающий абзац статьи с заключением и пожеланиями, но наш материал был бы неполным без темы производительности данного решения. Так как веб доступ в файловом режиме обычно используют небольшие предприятия, то в роли веб-сервера чаще всего используется обычный офисный ПК. В его роли мы использовали виртуальную машину, которой выделили два ядра от Core i5-4670 и 4 ГБ оперативной памяти, что соответствует неплохой офисной машине.

Если по процессорным или дисковым ресурсам вопросов не возникло, то вот расход оперативной памяти нас не порадовал. Ниже показана система сразу после загрузки:

Затем мы запустили два экземпляра базы (один в веб-клиенте, другой в тонком) локально и два экземпляра по сети:

Как видим, свободная память в системе закончилась, и она ушла в своп, а если немного поработать в базах, то быстро закончится и файл подкачки. При этом, кроме 1С, на данном ПК больше ничего не запущено, что для обычной офисной машины не характерно. Эмпирическим путем мы выяснили, что на каждый сеанс работы с такими конфигурациями, как Бухгалтерия предприятия 3.0 требуется иметь 1 ГБ оперативной памяти.

Хорошо, закрываем все сеансы, но что это?

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

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

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

При вызове платформа проверяет, есть ли простаивающий сеанс с подходящим сочетанием этих реквизитов. Если такой сеанс есть, то он выделяется для обработки вызова. Если такого сеанса нет, то создается новый сеанс и выделяется для обработки.

Сеанс автоматически завершается по истечении периода бездействия (ВремяЖизниСеанса).

Что из этого следует? А то, что если вы одновременно запустите 4 сеанса работы с веб-сервером, то по их завершении рабочие процессы Apache продолжат работу в ожидании новых подключений, а если их не будет, то по окончании времени жизни сеанса , которое по умолчанию составляет 20 минут, будут завершены.

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

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

  • Теги:

Please enable JavaScript to view the

В данной статье я подробно опишу процесс организации веб- доступа к базам данных «1С:Предприятие» 8.3 на веб-сервере IIS (Internet Information Server), входящего в поставку Microsoft Windows Server. Для более старых версий «1С:Предприятие» (8.1 и 8.2 ) алгоритм публикации баз данных в целом аналогичен. Будет рассмотрен алгоритм настройки IIS для работы «1С:Предприятие», а также описан процесс публикации баз данных на веб-сервере как для 32-разрядного , так и для 64-разрядного модуля расширения веб-сервера.

  1. Что понадобится
  2. Установка веб-сервера IIS
  3. Установка компонент «1С:Предприятие»
  4. Настройка операционной системы
  5. Публикация базы данных на веб-сервере
  6. Настройка IIS для использования 32-разрядного модуля расширения веб-сервера
  7. Настройка IIS для использования 64-разрядного модуля расширения веб-сервера
  8. Подключение к опубликованной информационной базе через веб-браузер
  9. Подключение к опубликованной информационной базе через клиент «1С:Предприятия»
  10. Конфигурационные файлы виртуального каталога
    1. Файл default.vrd
    2. Файл web.config

1. Что понадобится

  1. Компьютер отвечающий минимальным системным требованиям для работы веб-сервера под управлением одной из операционных систем:
    • Microsoft Windows Server 2012 (R2)
    • Microsoft Windows Server 2008 (R2)
  2. Права локального администратора на данном компьютере.
  3. Дистрибутив для установки компонент «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, устанавливаем «1С:Предприятие» (32-разрядные компоненты) обязательно выбрав при установке компоненты:

  • 1С:Предприятие
  • Модули расширения веб-сервера

Если планируется настроить 64-разрядный модуль расширения веб-сервера, то необходимо дополнительно запустить программу установки 64-разрядного сервера из соответствующей поставки «1С:Предприятие» и установить компоненту:

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

4. Настройка операционной системы

Теперь необходимо установить необходимые права на ключевые папки, используемые при работе веб-доступа к базам данных «1С:Предприятие». Для каталога хранения файлов веб-сайтов, опубликованных на веб-сервере (по умолчанию C:inetpubwwwroot ) необходимо дать полные права группе «Пользователи » (Users). В принципе, этот шаг можно пропустить, но тогда для публикации или изменения публикации базы данных надо будет запускать «1С:Предприятие» от имени администратора. Для настройки безопасности данного каталога, кликаем по нему правой кнопкой мыши и в контекстном меню выбираем «Свойства » (Properties).

В открывшемся окне свойств, переходим на вкладку «Безопасность » (Security) и нажимаем кнопку «Изменить » (Edit…), для изменения действующих разрешений. Появится окно разрешений для данного каталога. В списке Групп или пользователей (Groups or user names) выделим группу «Пользователи » (Users) и в списке разрешений для выбранной группы установим флаг «Польный доступ » (Full control). Затем нажмем «Применить » (Apply) для записи изменений и закроем все окна при помощи кнопки «ОК ».

Далее необходимо дать полные права на каталог с установленными файлами «1С:Предприятие» (по умолчанию C:Program Files (x86)1cv8 для 32-разрядного модуля расширения и C:Program Files1cv8 для 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)1cv88.3.4.389binwsisapi.dll » на «C:Program Files1cv88.3.4.389binwsisapi.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-сервисы (элемент ), а также указывается имя виртуального приложения (атрибут base ) и строка подключения к информационной базе «1С:Предприятие» (атрибут ib ). В данном примере для файловой информационной базы, строка подключения будет следующей:

Ib="File="C:1C_BASEDemoAccounting";"

Как видно из примера, если в строке подключения встречаются символы, недопустимые с точки зрения стандарта XML (http://www.w3.org/TR/xml11/), они должны быть заменены соответствующим образом.

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

Ib="File="C:1C_BASEDemoAccounting";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).