Под капотом IIS, или как сделать WEB публикацию базы 1С без конфигуратора

29.04.21

Администрирование - Администрирование веб-серверов

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

Общая информация

Для начала уточним, что для корректной работы 1С с веб-серверами используются библиотеки, которые используют API веб-сервера, так называемые Internet Server API (ISAPI). Для IIS такая библиотека называется «wsisapi.dll», и находится она в папке bin установленной платформы 1С. Именно поэтому при установке IIS необходимо проследить, чтобы был выбран компонент «Расширения ISAPI (eng: ISAPI Extensions)».

Общение с веб-сервером происходит через Менеджер. Функционально Менеджер IIS является просто GUI оболочкой для отображения информации из конфигурационных файлов формата XML. Быстро посмотреть их можно через «Редактор конфигурации (eng: Configuration Editor)» -> «Поиск по конфигурации (eng: Search Configuration)».

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

 

В конфигурационном файле хранятся такие интересующий нас настройки, как установленные модули ISAPI, настройки пулов приложений, а также сайтов.

Также каждая публикация 1С может иметь собственные настройки конфигурации, которые накладываются на общие настройки хоста и имеют больший приоритет. Это файл «web.config», который лежит в папке публикации вместе с файлом описания публикации «default.vrd».

 

Настройка веб-сервера для работы с 1С

На девственно чистый IIS установим модуль ISAPI от 1С:

Находясь в корне сервера выберем пункт настройки «Сопоставления обработчиков (eng: Handler Mappings)», и выберем пункт «Добавить сопоставления сценария (eng: Add Script Map)», и пропишем наш обработчик 1С:

Путь запроса (eng: Request path): * (любой, так как предполагается, что на данном веб-сервере будут только приложения 1С)

Исполняемый файл (eng: Executable): <путь к актуальной платформе>\bin\wsisapi.dll

Имя (eng: Name): 1С (любое на ваш вкус, значения не имеет)

Задать «Ограничения запроса (eng: Request Restrictions)»:

На закладке «Сопоставление (eng: Mapping)» убрать галку, а на закладке «Доступ (eng: Access)» установить уровень доступа «Выполнение (eng: Execute)».

При сохранении настроек Менеджер IIS спросит, разрешить ли данное расширение ISAPI? Согласимся с ним, нажмем «Да».

Таким образом, в конфигурационный файл хоста «ApplicationHost.config» в тег «handlers» запишется информация о нашем модуле обработчике:

 

А также в тег «isapiCgiRestriction» пропишется разрешение на исполнение нашего модуля:

 
 Примечание

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

Разрешение «Выполнение (eng: Execute)» должно быть включено.

 

 

Добавление базы на веб-сервер

По умолчанию на IIS создается сайт «Default Web Site», данные этого сайта расположены физически на сервере по пути: «C:\inetpub\wwwroot».

 
 Примечание

Если открыть Internet Explorer и попробовать перейти по адресу localhost, то мы обнаружим внутреннюю ошибку сервера 500. Но ведь в папке «C:\inetpub\wwwroot» лежит файл «iisstart.htm», и он даже присутствует в списке настройки «Документ по умолчанию (eng: Default Document)», но почему же сервер не хочет его отображать? И тут мы вспоминаем, что для всего сервера указали в модулях обработчиках, что «*» любые запросы должен обрабатывать ISAPI модуль от 1С. Убрав эту настройку у сайта и перезагрузив страницу обнаружим, что загрузится приветственная страница IIS. Именно поэтому, если на данном веб-сервере планируется размещать не только приложения 1С, то модуль ISAPI устанавливаем для каждой базы, а не для сервера или сайта в целом.

 

Задача: Опубликовать локально базу для обращения к ней по протоколу http.

Итак, добавим на наш сайт  «Default Web Site» новое приложение: «base1C»:

Правой кнопкой на «Default Web Site» -> «Добавить приложение (eng: Add Application)»

Псевдоним (eng: Alias): base1C (имя базы как она будет отображаться в строке браузера, т.е. http://localhost/base1C)

Физический путь (eng: Phisical path): C:\inetpub\wwwroot\base_1C (создадим в каталоге сайта папку «base_1C», нижнее подчеркивание добавлено, чтобы показать, что имя папки ни на что не влияет, и вообще папка может быть где угодно, главное, чтобы были права для ISS_IUSERS).

Пул приложений (eng: Application pool): DefaultAppPool (оставим по умолчанию).

Внимание! В рамках одного пула приложений все приложения должны запускаться под одним ISAPI модулем, т.е. единой платформой. 

Нажимаем «ОК» - сохраняем настройку нашего приложения.

 
 Примечание

Вообще, пулы приложений в контексте 1С нужны для того, чтобы разделить базы, работающие на разных платформах, ведь в рамках одного пула платформа 1С (читай ISAPI модуль) должна быть одинакова. Если нужно запустить какую-то базу под 32х битной платформой, то у приложения указываем в настройке «Сопоставления обработчиков (eng: Handler Mappings)» модуль нужной 32х битной платформы, переносим это приложение в отдельный пул приложений, и у этого пула приложений в значениях по умолчанию разрешаем 32-разрядные приложения. 

На уровне файла конфигурации хоста при этом в теге «sites» у тега <site name="Default Web Site" id="1"> пропишется наше приложение с именем, путями и пулом приложений.

Итак, мы указали нашему веб-серверу, что если кто-то обратится по пути http://localhost/base1C, то нужно пройти в папку "C:\inetpub\wwwroot\base_1C", и с помощью ISAPI модуля отобразить то, что там находится. При публикации из конфигуратора в эту папку попадает файл описания публикации базы 1С «default.vrd». Подробно про структуру этого фала можно подчерпнуть из статьи на ИТС: https://its.1c.ru/db/v83doc/bookmark/adm/TI000000379. Но, так как мы не пользуемся конфигуратором в учебных целях, то напишем этот файл сами.

Файл «default.vrd» по факту, сюрприз-сюрприз, имеет структуру XML файла.

Главный тэг здесь «point», у которого есть атрибуты:

«base»  - относительный путь нашей публикации («/base1C»)

«ib» - собственно строка подключения к нашей базе 1С так, как вы ее видите в окне списка баз («File=С:/bases/demo;» - для файловой базы и «Srvr=server;Ref=demo;» - для клиент-серверной)

 
 Примечание

В некоторых случаях необходимо организовать автоматическую авторизацию под конкретным пользователем. В таком случае в строку подключения дописываются параметры пользователя: «Srvr=server;Ref=demo;Usr=test;Pwd=Pass1234»

«enable» - разрешение работы в тонком или веб-клиенте («true» или «false», если не указан по умолчанию «true»)

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

<point base="/base1C" ib="Srvr=server;Ref=demo;">

</point>

При этом замечу, что данное описание публикации ничего не запрещает, все веб-сервисы и http-сервисы базы будут доступны.

В итоге веб-сервер смотрит на этот файл описания и понимает, что если клиент обратился по пути http://localhost/base1C, то его необходимо соединить с клиент-серверной базой «demo» находящейся на сервере «server».

Расположим написанный файл «default.vrd» в директории «C:\inetpub\wwwroot\base_1C», откроем Internet Explorer и, перейдя по адресу http://localhost/base1C увидим, что открылась наша база. Profit!

Также мы можем задать настройки веб-сервера для конкретного приложения, к примеру свой модуль ISAPI, или запрет обработки http запросов «HEAD», и тогда в папке с фалом описания публикации «default.vrd» появится файл конфигурации сервера «web.config».

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

Также хотелось бы упомянуть альтернативный способ публикации базы 1С с помощью консольной утилиты «webinst», которая находится в папке «bin» установленной платформы. Про работу с данной утилитой хорошо написано на сайте ИТС: https://its.1c.ru/db/v837doc#bookmark:adm:TI000000201

Вступайте в нашу телеграмм-группу Инфостарт

IIS Веб-сервер ISAPI Microsoft Internet Information Server http веб-клиент веб-публикация веб WEB.

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

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Разработчик Аналитик Руководитель проекта 1С 8.3 Платные (руб)

Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.

14000 руб.

17.04.2026    16653    63    62    

73

Инструменты администратора БД Администрирование веб-серверов 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Программа для Windows автоматически проверяет выбранные базы 1С:Фреш, скачивает новые ZIP-архивы и контролирует хранение последних и ежемесячных копий. Поддерживает ручное создание копий, управление настройками резервного копирования в сервисе, Планировщик заданий Windows, уведомления об ошибках, журнал, статистику и обновление с возможностью отката. Прерванная загрузка безопасно продолжается через HTTP Range, а готовый файл проходит проверку ZIP.

1 стартмани

16.10.2026    293    1    tgr123    0    

5

Администрирование СУБД Администрирование веб-серверов Системный администратор Разработчик 1С 8.3 Россия Бесплатно (free)

Пользователь не подключается к кластеру 1С или веб-публикации, а ping ничего не говорит о нужном порте. Краткая памятка: telnet, PsPing, tcping и Test-NetConnection с разных точек сети и типовые порты 8.3.

07.10.2026    426    lyudm42ever    0    

3

Администрирование СУБД Администрирование веб-серверов Сервера Системный администратор Разработчик 1С 8.3 Россия Бесплатно (free)

Пошагово собираем двухузловой кластер серверов 1С:Предприятие 8.3.27 на Ubuntu Server 25.04: srv1cv8 и systemd, RAS, добавление worker через RAC, информационная база на внешнем PostgreSQL и публикация веб-клиента через webinst и Apache2.

06.10.2026    603    egor2shub    0    

1

Инструменты администратора БД Администрирование СУБД Администрирование веб-серверов Системный администратор Разработчик 1С 8.3 1С:Управление торговлей 11 Россия Бесплатно (free)

Материал для архитектора и администратора 1С, который выбирает СУБД под 8.3. Внутри условия батла PostgreSQL и MS SQL на одном железе, цифры по загрузке DT, контекст Linux-контура и способ повторить замеры через LOG и счётчики СУБД.

29.09.2026    791    panf8210gr    3    

1

Нейросети Администрирование веб-серверов Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Модель подключена к базе 1С через MCP, индикатор в приложении зелёный, а инструмент возвращает ошибку или молчит. Проверьте у себя одним запросом: откройте в браузере адрес вида http://сервер/база/hs/любое-слово: живая база спросит логин, а ответ 409 или 502 значит, что MCP тут ни при чём. Разобрал ответы HTTP-сервиса 1С по этажам: сеть, публикация, модуль веб-сервера, кластер, пользователь базы, сам сервис. 26 сентября из тринадцати подключений не работали три, и все три ломались ниже MCP. Внутри: таблица кодов с местом починки, 500 без текста и проверка модулей конфигуратором, мост, который возвращает ошибку базы успешным ответом, и скрипт на Node, который проходит лестницу сам.

28.09.2026    846    nedomolkov.ivan    0    

0

Администрирование веб-серверов Системный администратор Разработчик 1С 8.3 Бесплатно (free)

В файле публикации 1С есть элемент, которого конфигуратор не пишет, и большинство боевых публикаций живёт без него. Мы собрали стенд и посмотрели, чего это стоит: двенадцать параллельных вызовов, десять прошли одной волной, два ждали вдвое дольше. Отказа не получил никто, и это главное: очередь стоит до сервера 1С, поэтому её не видно ни в метриках кластера, ни в журнале регистрации. Померили четыре вещи - чем задаётся предел одновременности, в каких единицах заданы таймауты пула (документация расходится сама с собой), когда правка файла вступает в силу и сколько на самом деле живёт сеанс против написанного в нём. Дальше - что проверить у себя и почему 502 рядом с 1С не всегда означает, что сервер отвалился.

26.08.2026    1971    nedomolkov.ivan    0    

2

Администрирование веб-серверов Системный администратор Разработчик 1С 8.3 Абонемент ($m)

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

10 стартмани

26.08.2026    1127    0    nedomolkov.ivan    0    

0
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. frkbvfnjh 825 30.04.21 08:43 Сейчас в теме
Наконец-то кто то написал как это сделать для IIS! Спасибо!
John_Dow; bulpi; evvakra; +3 – Ответить
4. Yashazz 4930 30.04.21 15:36 Сейчас в теме
(1) Ну здрасьте, я это писал ещё 8 лет назад: https://infostart.ru/public/242563/
mitia.mackarevich; +1 – Ответить
6. evvakra 331 30.04.21 18:04 Сейчас в теме
(4) К сожалению, когда готовил эту статью ничего похожего по запросу «как опубликовать базу без конфигуратора» не нашел. И из заголовка и содержания вашей статьи больше похоже, что статья про веб-сервисы. И она находится не в свободном доступе, а доступна только за стартмани. Опубликуйте ее в свободный доступ и получите много респекта :)
winner9909; user1097855; maxopik2; +3 – Ответить
8. Yashazz 4930 30.04.21 18:24 Сейчас в теме
(6) Да, там больше про веб-сервисы, но подводные камни почти те же. Опубликовать-то можно, да уже устарело всё, смысла нету. Ваша свежее и потому полезнее.
2. Dzenn 936 30.04.21 10:11 Сейчас в теме
обожаю такие статьи, танкьювериматч ;-)
bulpi; Jeka44; evvakra; +3 – Ответить
3. ao_donstroy 30.04.21 13:16 Сейчас в теме
Отличная работа!
5. Yashazz 4930 30.04.21 15:37 Сейчас в теме
Хорошо. Толково. С учётом моды на рест-сервисы и сравнительной ресурсоёмкости SOAP - уже не актуально.
7. evvakra 331 30.04.21 18:07 Сейчас в теме
(5) Спасибо за отзыв, это больше вводная статья, возможно в следующих статьях попытаюсь REST раскрыть с необычных точек зрения
9. efin 01.05.21 22:13 Сейчас в теме
А вообще что стабильнее под нагрузками работает:апач или иис?
10. evvakra 331 02.05.21 02:30 Сейчас в теме
(9) Если именно с точки зрения нагрузки, то вообще без разницы, тут больше при выборе другие моменты играют роль. ИМХО если у вас в продуктиве MS то тут IIS, а если Linux, то Apache. С точки зрения нагрузки узким горлом будет выступать сервер приложений и СУБД, но никак не WEB. Поэтому без разницы. А если у вас реально большая система то тут вообще архитектурно другой подход выбора, к примеру на фронте Фрэша одинэсного выступает Nginx, но это уже тема отдельной статьи :)
MebelVlad; +1 – Ответить
11. DAAbramov 70 12.05.21 11:50 Сейчас в теме
Для публикации без конфигуратора есть консольная утилита webinst в каталоге платформы.
Она много чего может и не только для IIS

Например так будет выглядеть публикация базы
webinst –publish -iis -wsdir demo -dir "c:\inetpub\demo" -connstr "Srvr=server:1741;Ref=demo;"
12. evvakra 331 12.05.21 13:15 Сейчас в теме
(11) В самом последнем абзаце про нее упомянул и привел ссылку. По работе с этой утилитой можно отдельную статью написать.
DAAbramov; +1 – Ответить
13. ITSun 17.05.21 06:22 Сейчас в теме
Хорошая инструкция, автор! (+)
Осталось этот процесс автоматизировать :))
14. poiskadm 19.05.21 13:47 Сейчас в теме
Спасибо за статью! В работе пользуешься стандартным инструментарием, но иногда возникают ситуации, когда надо знать в какой файл и что писать текстом. Хотелось бы продолжения не только про консольную утилиту, но и про настройку сложной публикации.
15. merdzd 12.04.24 16:09 Сейчас в теме
Как открыть базу на веб сервере с кодом блокировки?
например
"C:\Program Files\ ХХ\bin\1cv8s.exe" ENTERPRISE /WS"https://базаю.RU/" /UC 123
не работает.
если добавить в список и в параметрах указать пароль -- AdditionalParameters=/UC 123
Тоже не работает ошбка что то вроде.
HTTP: Internal server error
Ошибка при работе с ресурсом /e1cib/login?vl=ru_RU&version=8.3.23.2137&dppw=2100&nm=4608291619823473257&dpps=A4&ni=122576513&d­ppx=600&uc=7867385&dppy=600&dpph=2970&screenwidthcharunits=1­404&clnId=3fe80232-b812-44cb-8334-5dc96fb03d88

Если База не заблокирована паролем то все ок, по любой из ссылок входа.
16. nedomolkov.ivan 485 02.09.26 08:49 Сейчас в теме
(15) Проверил у себя: это делается строкой запроса, а не ключом командной строки. Код разрешения при веб-доступе передаётся параметром uc прямо в адресе публикации, то есть https://ваша-база.ru/?uc=123

Прогон на 8.3.27.1606, база заблокирована с кодом, POST на /e1cib/login. С неверным кодом сервер отвечает 403, три раза из трёх. С верным - 402, то есть блокировка снята и дело пошло дальше, к аутентификации. Снял блокировку - 403 не появляется вообще, даже с заведомо неверным кодом. Значит 403 это именно блокировка, а не IIS и не сеть.

Ключ /UC живёт у тонкого клиента, запущенного приложением. Как только вы даёте ему /WS, разговор идёт по HTTP, и код нужен в адресе. AdditionalParameters из списка баз тоже мимо: он уезжает клиенту, а не веб-серверу.

Заодно собрал проверку самой публикации, там же и права на каталог, и модули IIS: https://infostart.ru/1c/tools/2773704/
Для отправки сообщения требуется регистрация/авторизация