Как «подружить» 1С v8.2 и IIS


Иллюстрированное руководство по предоставлению доступа к БД 1С v8.2 через веб-сервер IIS.

Заинтересовала возможность версии 8.2 (файловый вариант) работать с веб-сервером. Так как на моей машине с Windows XP SP3 уже был настроенный IIS 5.1 по адресу http://localhost/ , то решено было Апача не ставить. Но достаточно внятной документации по настройке IIS почему-то в инете найти не удалось. Бумажной вообще нет. Пришлось разбираться самому, делая по аналогии с настройкой Апача. На полноту освещения вопроса я не претендую, надеюсь, что для кого-то этот материал окажется полезным.

Для «опытов» была выбрана самописная конфигурация, находящаяся в папке «D:\DataBase\1C\tennis.v82»

 

Каталог БД до первого запуска

Итак, прежде всего создадим в этом каталоге пустой текстовый файл в кодировке UTF-8 или 1252 (кодировка 1251 не "проходит", а другие - не проверялись) с именем «default.vrd» и следующим содержимым:

<vrs:point
    xmlns
:vrs="http://v8.1c.ru/8.2/virtual-resourse-system"
    base ="/tennis"
    ib ="FILE=&quot;D:\DataBase\1C\tennis.v82\&quot;"/>

Здесь параметр base="/tennis" указывает на то, что к базе мы будем подключаться по адресу http://localhost/tennis, а параметр ib="..." - это строка подключения к базе (та же, что и внизу окна запуска 1С:Предприятия при выборе информационной базы). Малопонятный набор буковок &quot; - символ кавычки.

На этом этапе самый, пожалуй, неприятный «подводный камень» заключается именно в кодировке файла «default.vrd». Поэтому, лучше набирать текст руками, а не копировать через буфер обмена.

Каталог БД перед интеграцией

Теперь приступаем к созданию виртуального каталога на веб-сервере IIS. Запускаем консоль управления сервером и выбираем меню «Создать/Виртуальный каталог»:

Оснастка IIS

Указываем псевдоним «tennis» - тот же, что и в параметре «base» файла «default.vrd»:

Мастер создания ВК

Указываем путь к каталогу базы данных 1С:

Мастер создания ВК

Ставим нужные галки и завершаем работу мастера:

Мастер создания ВК

Теперь в консоли управления IIS у нас появилась виртуальная папка «tennis» с характерным значком:

Оснастка с созданным ВК

Отредактируем свойства этого каталога (не всего узла!). Уровень защиты  в принципе можно установить «Низкая (процесс IIS)», но лучше хотя бы - «Средняя (объединенная)». Также нам необходимо указать IIS, что все файлы в этом каталоге будут обрабатываться 1С:Предприятием. Жмем кнопку «Настройка…»:

Свойства ВК

На закладке «Сопоставления» жмем «Добавить» и указываем путь к 1С-овской библиотеке «wsisapi.dll» (она находится в подкаталоге «\bin» каталога установки 1С:Предприятия):

Окно сопоставления расширений

В качестве обрабатываемых расширений указываем все файлы «.*» (точка-звездочка). Сохраняемся и на всякий случай проверим разрешения по доступу сервиса IIS к каталогу базы данных. Если его там нет, то - добавляем и разрешаем ему чтение, выполнение и изменение файлов и подкаталогов (см. рис.):

Свойства папки БД

Пожалуй на этом процедуру интеграции можно считать законченной и приступать к проверке.

Теперь по поводу браузеров и их настройки. Возможно, эта тема заслуживает отдельного разговора, а здесь ограничимся лишь некоторыми впечатлениями.
Конечно, общим для всех является отмена блокировки всплывающих окон и включение JavaScript (если не включено). Итак,

Opera. Не очень дружит с яваскриптом, который генерирует 1С. Иногда по непонятным причинам вместо русских букв показывает знаки вопроса. Плохо форматирует формы. С другой конфигурацией вообще отказалась работать – после прохождения авторизации пользователя 1С разругалась восьмиэтажным яваскриптом и выбросила на пустую страницу.
Safari. Просто интеллигентно молчит… Показывает заголовок «1С:Предприятие», сплэш-скрин восьмерки и … молчит. Культура прежде всего.
Arora. Малоизвестный и немного сыроватый браузер. Не смог показать даже сплэш-скрин, вместо него выдал абракадабру на всю страницу и сообщил «Готово».

Firefox. Работает быстро, но есть недостаток – невозможно копировать через буфер обмена:

Ошибка буфера обмена Firefox

Если кто-то знает в чем может быть причина и как с этим бороться - просьба отписаться в комментариях. (см. постскриптум в конце статьи).
Chrome. Почти то же что и Firefox, может - чуть быстрее и - невозможно использовать буфер обмена. "Выпадений" при проведении документов замечено не было, возможно (хотя и не обязательно) из-за более низкого , чем Интернете уровня защиты веб-сервера (имеются в виду: http://demo-ma.1c.ru/demo-unf/ru/ и http://demo-ma.1c.ru/demo_ma/ru/).
IE. Полностью работоспособен, только притормаживает.

При тестировании использовались последние на момент написания статьи версии браузеров.
После первого запуска Вы обнаружите в каталоге базы данных несколько новых файлов. Удалять их нет смысла, т.к. они вновь будут созданы при следующем входе через браузер, а во время сеанса работы они заблокированы процессом «dllhost.exe».

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

Настройка тонкого клиента 1

Далее указываем адрес подключения «http://localhost/tennis/»:

Настройка тонкого клиента 2

Остальные настройки (прокси, аутентификация и т.д.) можно оставить без изменения.
Жмем «Готово» и запускаем 1С:Предприятие (тонкий клиент) Smile

P.S. Разумеется, для подключения к серверу из локальной сети или Интернет следует  заменить "http://localhost/tennis/" на "http://xxx.xxx.xxx.xxx/tennis/", где xxx.xxx.xxx.xxx - ваш ip-адрес (внутренний или внешний соответственно).

P.P.S.
Благодаря подсказке Lyekka удалось разрешить вышеописанную проблему с браузером FireFox.
В адресной строке браузера вводим "about:config" (без кавычек), жмём Enter и попадаем в тонкие настройки ОгнеЛиса :)
Здесь меняем значения следующих параметров:
network.standard-url.encode-query-utf8 - для использования нелатинских символов в адресной строке (значение true);
signed.applets.codebase_principal_support - для работы с буфером обмена, внешними компонентами и расширенной работы с файлами (значение true);
dom.popup_allowed_events - для разрешения навигации по окнам приложения с клавиатуры  (добавляем к значению параметра событие keydown).
Быстро найти эти параметры можно используя фильтр: жмём Ctrl+F и вводим в строке фильтра любое слово из названия параметра, например principal. Редактируются двойным кликом, либо правый клик и пункт "Изменить" на соответствующей строке.

Файлы обработки:

-