# Настройка веб-сервиса для IIS

1\. Установка IIS выполняется стандартными средствами. Необходимо установить следующие компоненты:

Web Management Tools:

- IIS 6 Scripting Tools

- IIS 6 WMI Compatibility

- IIS Metabase and IIS configuration compatibility

- IIS Management Console

- IIS Management Scripts and Tools

World Wide Web Services:

- ISAPI Extensions

- ISAPI Filters

- Default Document

- Directory Browsing

- HTTP Errors

- Static Content

- HTTP Logging

- Request Monitor      

- Static Content Compression

- Request Filtering

2\. Если при установке платформы "1С:Предприятие" не были установлены компоненты работы с веб-сервером, их надо установить (через установку платформы):

Далее от имени администратора зайдите в "Конфигуратор" — "administration" — "Публикация на веб-сервере...". Укажите имя базы в поле "Имя". (используйте только буквы латинского алфавита). Выберите пустой каталог (путь к нему также не должен содержать кириллических символов, см. пример ниже). Включите параметр Публиковать Web-сервисы, в списке веб-сервисов включите сервис rg1CTCService. Нажмите Опубликовать.

Для публикации веб-сервисов расширения включите параметр Публиковать Web-сервисы расширений по умолчанию. Нажмите Опубликовать.

В диалоге о перезапуске веб-сервера нажмите Да.

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

3\. Укажите права для обработчика веб-сервисов "1С:Предприятие". Права на запуск программных продуктов (Execute) добавляются для группы IIS\_IUSRS на папку ...1cv81\\BIN\\ (для актуальных версий 8.3.x путь: `C:\Program Files\1cv8\<версия>\bin\`)

4\. Если база "1С:Предприятие" файловая, добавьте права на изменение (Modify) на папку и подпапки базы для той же группы.

5\. В консоли IIS щелкните правой кнопкой мыши на строку с созданной папкой. Преобразуйте её в приложение.

6\. Добавьте MIME типы для приложения "1С:Предприятие". Сделать это можно для сервера, для сайта или для папки (наследование присутствует).

7. Добавьте настройки для обработки файлов "1С:Предприятие". На вкладке Handler Mappings добавьте скрипты (не скрипты со звездочкой) для каждого расширения -"\*.1cws" и "\*.1crs". Для этого последовательно выберите каждую строку, в которой указано одно из нужных расширений, затем справа в разделе "Actions" нажмите "Add Script Map…".

В открывшемся окне нажмите кнопку Request Restrictions. Во втором открывшемся окне:

Перейдите на вкладку "Access" и выберите тип доступа "Execute". Имя правила можно задать любое.

Там же перейдите на вкладку "Mapping" и отключите параметр "Invoke handler only if request is mapped to"

Альтернативой является добавление обработчика из командной строки:

> ⚠️ Скрипт adsutil.vbs применим только к IIS 6 (Windows Server 2003). На IIS 7 и новее используйте команды AppCmd или модуль WebAdministration в PowerShell.

```bat
C:\>cscript C:\inetpub\AdminScripts\adsutil.vbs SET /W3SVC/1/ROOT/MyApp/ScriptMaps ".1cws,с:\Program Files\1cv81\Bin\wsisapi.dll,5" ".1crs,с:\Program Files\1cv81\Bin\wsisapi.dll,5"
```

На экране отобразится текст:

```
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
ScriptMaps: (LIST) ".1cws,с:\Program Files\1cv81\Bin\wsisapi.dll,5" ".1crs,с:\Program Files\1cv81\Bin\wsisapi.dll,5"
C:\>
```

> ℹ️  Важно указать правильный путь: /W3SVC/1/ROOT/MyApp/ScriptMaps

8\. Для обработчиков укажите дополнительные параметры — выберите действие "Edit Feature Permissions" и в открывшемся окне активируйте опции запуска скриптов и приложений.

> ℹ️ Скриншот отсутствует. Описание действия: в окне "Edit Feature Permissions" установите флаги "Scripts" и "Execute" для разрешения выполнения скриптов и приложений.

9\. Проверьте наличие обработчика веб-сервисов "1С:Предприятие" на вкладке ISAPI and CGI Restrictions для сервера.

 Проверка наличия обработчика web-сервисов "1С:Предприятие"

Если устанавливается 32-разрядный модуль, то для обработчика включите режим Application Pool -> DefaultAppPool -> Enable 32-bit Application -> True.

Если устанавливается 64-разрядный модуль, то режим Application Pool -> DefaultAppPool -> Enable 32-bit Application -> False.  
Необходимо заменить 32-разрядный обработчик, который установлен по умолчанию, на 64-разрядный. Для этого откройте Диспетчер сервера -> Роли -> Веб-сервер(IIS) -> Диспетчер служб(IIS) и выберите приложение, преобразованное из виртуального каталога с именем, заданным при публикации базы. В центральном окне выберите раздел Handler Mappings ("Сопоставление обработчиков) и перейдите в него. Откройте первую строчку 1C Web-service Extension и с помощью кнопок "Изменить" и "Обзор" укажите расположение модуля 64-разрядной версии wsisapi.dll.

 Настройки для 64-разрядного модуля

10\. Перейдите по ссылке:

IP-компьютера/ИмяБазы/ws/путь\_указанный\_при\_публикации.1cws?wsdl.

Например, адрес будет выглядеть следующим образом: `http://ip/BP/ws/1CTCService.1cws?wsdl`

> ℹ️ Скриншот отсутствует. Описание действия: адрес формируется из IP-адреса сервера, имени базы (заданного при публикации) и пути к веб-сервису из настроек публикации.

Должно появиться окно с просьбой ввести логин и пароль. Введите логин и пароль к конфигурации "1С:Предприятие", если они подойдут – то веб-сервис 1С доступен (логин должен быть написан латинскими буквами).

11\. Анонимная аутентификация на IIS и доступ к базе

В случае неудачной настройки доступа нужно создать пользователя вручную:

- Создать пользователя на компьютере (сервере) с IIS и указать ему пароль. Ни в какие группы не  добавлять.

- В консоли IIS. Имя\_сервера -> Authentication -> AnonymousAuthentication -> Edit -> Set -> User name -> Password -> Confirm password.

Если используется аутентификация "1С:Предприятие": создайте пользователя с именем, которое создано на компьютере и введено в IIS. Задайте пароль и поставьте флаг "Аутентификация 1С:Предприятия".

Если используется Windows аутентификация: создайте пользователя с неким именем (лучше не использовать имя, которое создано на компьютере и введено в IIS). Установите флаг "Аутентификация Windows".

Выберите или введите пользователя в формате \\\\имя\_компьютера\\имя\_пользователя. Флаг "Аутентификация 1С:Предприятия" в этом случае лучше снять.

> ℹ️  Не забудьте [указать путь к веб-сервисам (протокол SOAP) в "Первой Форме"](https://help.1forma.ru/maintenance_guide/installation/application/iis-deployment/tcwebservice.md#настройка-протокола-soap).
