м. Київ, вул. Кирилівська 102

1 листопада 2026 р.

Публікація бази 1С через IIS

Публікація бази 1С через IIS

Публікація інформаційної бази 1С через Internet Information Services дає користувачам можливість працювати у вебклієнті без встановлення повного клієнта платформи на кожному робочому місці. Такий варіант також використовується для тонкого клієнта через HTTP або HTTPS і для підключення зовнішніх систем до HTTP-сервісів конфігурації.

Результат залежить не лише від правильно виконаної команди публікації. Необхідно узгодити розрядність платформи та IIS, встановити потрібні компоненти Windows Server, надати службовому процесу доступ до каталогу публікації, а потім обмежити небезпечні протоколи й увімкнути TLS. Якщо сервер входить до загального контуру системного адміністрування, публікацію варто одразу включити до моніторингу, резервного копіювання та регламенту оновлень.

Нижче розглянуто практичний сценарій для Windows Server 2022 та платформи 1С 8.3. Назви каталогів і точний номер версії платформи потрібно замінити на значення зі свого середовища.

Підготовка сервера та інформаційної бази

Перед налаштуванням IIS переконайтеся, що інформаційна база нормально відкривається товстим або тонким клієнтом без вебпублікації. Якщо звичайний клієнт не може підключитися до сервера 1С або SQL Server, IIS не усуне цю проблему, а лише додасть ще один рівень діагностики.

На сервері мають бути встановлені серверні компоненти платформи 1С та модуль розширення вебсервера. У майстрі встановлення платформи цей компонент може називатися «Модулі розширення вебсервера». Для 64-бітної операційної системи рекомендовано використовувати 64-бітну платформу та відповідний файл `wsisapi.dll`.

Версію встановленої платформи можна перевірити в PowerShell:

powershell
Get-ChildItem "C:\Program Files\1cv8" -Directory |
  Select-Object Name, FullName

У каталозі потрібної версії повинні бути принаймні такі файли:

text
C:\Program Files\1cv8\8.3.xx.xxxx\bin\webinst.exe
C:\Program Files\1cv8\8.3.xx.xxxx\bin\wsisapi.dll

Якщо публікується клієнт-серверна база, заздалегідь підготуйте:

- DNS-ім’я або адресу сервера 1С; - ім’я інформаційної бази в кластері; - доступ сервера IIS до портів кластера 1С; - обліковий запис із правом запуску вебклієнта; - актуальну резервну копію інформаційної бази.

Для файлового варіанта процес IIS повинен мати права на каталог бази. Однак одночасний доступ великої кількості користувачів до файлової бази створює додаткове навантаження та підвищує ризик блокувань. Для постійної багатокористувацької роботи краще застосовувати клієнт-серверну схему.

Якщо платформа ще не підготовлена, спочатку виконайте встановлення 1С на Windows Server, перевірте запуск бази, ліцензії та з’єднання із СУБД. Лише після цього переходьте до вебпублікації.

Для серверів із кількома прикладними системами бажано виділити окремий DNS-запис, наприклад `onec.example.local`, і не розміщувати публікацію в корені Default Web Site. Окремий сайт або хоча б окремий пул застосунків спрощує оновлення, перезапуск і пошук причин помилок. Під час адміністрування серверів Windows і Linux такий поділ також дає змогу незалежно контролювати журнали й доступність кожного сервісу.

Встановлення IIS і необхідних компонентів

Для роботи модуля 1С недостатньо лише базової ролі Web Server. Потрібні служба IIS, консоль керування, ISAPI Extensions та ISAPI Filters. Windows Authentication встановлюйте, якщо плануєте інтегровану автентифікацію в домені.

Запустіть PowerShell від імені адміністратора та встановіть компоненти:

powershell
Install-WindowsFeature Web-Server, `
  Web-WebServer, `
  Web-Common-Http, `
  Web-Default-Doc, `
  Web-Static-Content, `
  Web-Http-Errors, `
  Web-Health, `
  Web-Http-Logging, `
  Web-Performance, `
  Web-Stat-Compression, `
  Web-Security, `
  Web-Filtering, `
  Web-Windows-Auth, `
  Web-App-Dev, `
  Web-ISAPI-Ext, `
  Web-ISAPI-Filter, `
  Web-Mgmt-Console

Перевірте стан ролі:

powershell
Get-WindowsFeature Web-Server, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Mgmt-Console |
  Select-Object Name, InstallState

Після встановлення відкрийте локально сторінку IIS або перевірте відповідь командою:

powershell
Invoke-WebRequest http://localhost -UseBasicParsing |
  Select-Object StatusCode, StatusDescription

Очікуваний результат — код `200`. Якщо IIS не відповідає, перевірте службу World Wide Web Publishing Service:

powershell
Get-Service W3SVC
Start-Service W3SVC
Set-Service W3SVC -StartupType Automatic

Перед публікацією створіть окремий каталог. Не використовуйте папку інформаційної бази як каталог вебсайту:

powershell
New-Item -Path "C:\inetpub\onec\accounting" -ItemType Directory -Force

Для окремого сайту можна заздалегідь створити пул і прив’язку за допомогою модуля WebAdministration:

powershell
Import-Module WebAdministration

New-WebAppPool -Name "OneC-Accounting"
Set-ItemProperty "IIS:\AppPools\OneC-Accounting" `
  -Name managedRuntimeVersion `
  -Value ""

New-Website -Name "OneC-Accounting" `
  -PhysicalPath "C:\inetpub\onec\accounting" `
  -ApplicationPool "OneC-Accounting" `
  -Port 8080 `
  -HostHeader "onec.example.local"

Порожнє значення `managedRuntimeVersion` означає режим No Managed Code. Модуль 1С є нативним ISAPI-модулем і не потребує середовища .NET CLR у пулі застосунків.

Порт `8080` у прикладі зручний для початкової перевірки. Для штатної експлуатації потрібно налаштувати HTTPS на порту `443`, а незашифроване підключення або вимкнути, або використовувати лише для перенаправлення на захищену адресу.

Публікація бази за допомогою webinst

Платформа містить утиліту `webinst.exe`, яка створює службові файли публікації та конфігурацію для IIS. Запускайте її з підвищеними правами. Версія `webinst.exe` повинна відповідати версії платформи, через яку працюватимуть користувачі.

Спочатку задайте шлях до утиліти у змінній, щоб не дублювати довгий каталог у командах:

powershell
$WebInst = "C:\Program Files\1cv8\8.3.xx.xxxx\bin\webinst.exe"
Test-Path $WebInst

Для клієнт-серверної інформаційної бази команда може мати такий вигляд:

powershell
& $WebInst `
  -publish `
  -iis `
  -wsdir "accounting" `
  -dir "C:\inetpub\onec\accounting" `
  -connstr 'Srvr="onec-app-01";Ref="Accounting";'

Параметр `wsdir` визначає ім’я вебпублікації, `dir` — каталог її файлів, а `connstr` — рядок з’єднання з інформаційною базою. Не додавайте до рядка підключення облікові дані адміністратора 1С. Користувач повинен проходити автентифікацію власним обліковим записом.

Для файлової бази змінюється рядок з’єднання:

powershell
& $WebInst `
  -publish `
  -iis `
  -wsdir "accounting-file" `
  -dir "C:\inetpub\onec\accounting-file" `
  -connstr 'File="D:\OneC-Bases\Accounting";'

Після виконання команди перевірте каталог публікації:

powershell
Get-ChildItem "C:\inetpub\onec\accounting" -Force

У ньому мають з’явитися `default.vrd`, конфігурація IIS та інші службові файли. Точний набір залежить від версії платформи. Не копіюйте `default.vrd` з іншого сервера без перевірки: у ньому містяться параметри конкретної інформаційної бази та дозволених вебфункцій.

Якщо потрібно повторно створити публікацію після оновлення платформи, спочатку збережіть поточну конфігурацію:

powershell
Copy-Item "C:\inetpub\onec\accounting\default.vrd" `
  "C:\inetpub\onec\accounting\default.vrd.bak" -Force

Потім запустіть `webinst.exe` з актуального каталогу версії. Після оновлення переконайтеся, що IIS використовує новий `wsisapi.dll`, а не модуль зі старого каталогу платформи.

Права доступу, HTTPS і перевірка роботи

Пулу застосунків потрібен доступ на читання та виконання до каталогу публікації. Якщо конфігурація записує тимчасові файли у власний каталог, можуть знадобитися права на зміну, але не варто видавати Full Control без необхідності.

Для пулу з назвою `OneC-Accounting` встановіть мінімальні права:

powershell
$Path = "C:\inetpub\onec\accounting"
$Identity = "IIS AppPool\OneC-Accounting"

icacls $Path /grant "${Identity}:(OI)(CI)(RX)" /T

Для файлової бази процесу IIS також потрібен доступ до її каталогу. Тут слід бути особливо обережним: право лише на читання не дозволить повноцінно працювати з базою, а надмірні дозволи створять ризик пошкодження або несанкціонованої зміни файлів.

powershell
$BasePath = "D:\OneC-Bases\Accounting"
icacls $BasePath /grant "IIS AppPool\OneC-Accounting:(OI)(CI)(M)" /T

У клієнт-серверному варіанті пул IIS не звертається безпосередньо до файлів SQL Server. Тому не потрібно надавати йому права на каталоги баз даних або резервних копій СУБД.

Після зміни дозволів перезапустіть лише потрібний пул:

powershell
Restart-WebAppPool -Name "OneC-Accounting"

Для HTTPS імпортуйте серверний сертифікат у сховище Local Computer, створіть прив’язку `https` у IIS і прив’яжіть сертифікат до порту `443`. Якщо сервер доступний ззовні, використовуйте сертифікат від довіреного центру сертифікації. Самопідписаний сертифікат доречний лише у закритому контурі, де його кореневий сертифікат централізовано доданий до довірених.

На мережевому екрані відкривайте тільки потрібні порти. Зазвичай це `443` від дозволених підмереж. Порти кластера 1С і SQL Server не повинні бути доступними користувацьким пристроям або з Інтернету.

Перевірити відповідь публікації локально можна так:

powershell
Invoke-WebRequest "http://localhost:8080/accounting/" `
  -UseBasicParsing `
  -MaximumRedirection 0

Коди `200`, `301`, `302` або відповідь із формою автентифікації означають, що запит дійшов до вебзастосунку. Код `500` вимагає перевірки журналів IIS і Windows Event Viewer, а `503` зазвичай указує на зупинений пул застосунків.

Журнали IIS за замовчуванням розміщуються в каталозі `C:\inetpub\logs\LogFiles`. Останні записи можна знайти командою:

powershell
Get-ChildItem "C:\inetpub\logs\LogFiles" -Recurse -Filter *.log |
  Sort-Object LastWriteTime -Descending |
  Select-Object -First 5 FullName, LastWriteTime

Додатково перевірте вебклієнт із робочої станції, авторизацію користувача, відкриття форм, формування звіту та завершення сеансу. Одного відкриття стартової сторінки недостатньо: частина помилок проявляється лише під час звернення до конкретних функцій конфігурації.

Типові помилки під час публікації

**Помилка 500 після відкриття адреси.** Найчастіші причини — невідповідність розрядності, неправильний шлях до `wsisapi.dll`, відсутність ISAPI Extensions або недостатні права пулу. Перевірте версію платформи, конфігурацію обробника IIS та журнал подій Application.

**503 Service Unavailable.** Пул застосунків зупинився або не може запуститися під вказаним обліковим записом. Перевірте стан пулу:

powershell
Import-Module WebAdministration
Get-WebAppPoolState -Name "OneC-Accounting"
Start-WebAppPool -Name "OneC-Accounting"

Якщо після запуску пул одразу зупиняється, шукайте події WAS і W3SVC у Event Viewer. Не налаштовуйте нескінченний автоматичний перезапуск без з’ясування причини.

**Вебклієнт відкривається, але база недоступна.** Для клієнт-серверної схеми перевірте DNS, мережевий доступ до кластера 1С, правильність `Srvr` і `Ref`, а також роботу серверного агента. Для файлової бази перевірте ACL каталогу та відсутність блокування антивірусом.

**Після оновлення платформи з’явилася помилка завантаження модуля.** IIS може продовжувати використовувати `wsisapi.dll` зі старої версії. Повторно опублікуйте базу актуальною утилітою `webinst.exe`, перевірте шлях до модуля та перезапустіть потрібний пул.

**Нескінченний запит облікових даних.** Не змішуйте без плану автентифікацію 1С, Windows Authentication та Basic Authentication IIS. Якщо використовується звичайна авторизація 1С, Anonymous Authentication на рівні IIS зазвичай має пропускати запит до модуля платформи. Basic Authentication без HTTPS використовувати не можна.

**Помилка через подвійне екранування або фільтрацію запитів.** Не вимикайте Request Filtering глобально. Спочатку визначте конкретний запит, який блокується, і змініть параметр лише для сайту 1С. Глобальне послаблення правил вплине на всі застосунки сервера.

**Повільна робота вебклієнта.** Перевірте не тільки IIS, а й сервер 1С, запити до СУБД, блокування, фонові завдання та затримку мережі. Збільшення кількості процесів у пулі не завжди допомагає й може створити додаткові проблеми із сеансами.

**Публікація доступна через HTTP з відкритої мережі.** Це небезпечна конфігурація, оскільки облікові дані та дані сеансу можуть передаватися без належного захисту. Налаштуйте HTTPS, обмежте джерела підключення та за потреби розмістіть сервіс за VPN або зворотним проксі.

Висновок

Коректна публікація бази 1С через IIS складається з кількох залежних етапів: перевірки самої інформаційної бази, встановлення компонентів IIS, використання `webinst.exe` відповідної версії, налаштування окремого пулу, призначення мінімальних прав і захисту з’єднання через HTTPS.

Для постійної експлуатації клієнт-серверний варіант надійніший за файловий, особливо коли одночасно працює багато користувачів. Вебсерверу не слід надавати прямий доступ до каталогів SQL Server, а адміністративні порти платформи мають залишатися в закритій серверній мережі.

Після кожного оновлення платформи перевіряйте шлях до `wsisapi.dll`, повторно тестуйте вебклієнт і контролюйте журнали IIS. До регулярного моніторингу варто додати стан W3SVC, пулу застосунків, час відповіді публікації, помилки HTTP 500/503, доступність кластера 1С і строк дії TLS-сертифіката. Такий підхід дозволяє виявити проблему до того, як вона вплине на роботу користувачів.

📞Публікація бази 1С через IIS — покрокове налаштування | ITheal