Раздача тонкого клиента 1С через веб-сервер: публикация базы, pubdst и права
Содержание
Чтобы опубликовать дистрибутив тонкого клиента
1С, база сначала публикуется на веб-сервере (Администрирование → Публикация на веб-сервере в Конфигураторе). Затем в файл default.vrd этой публикации добавляется атрибут pubdst с адресом, по которому лежит дистрибутив тонкого клиента. После этого тонкий клиент другой версии, подключаясь к базе по HTTP, сам скачает и поставит нужную сборку платформы.
Схема работает для платформы 8.3 и веб-сервера IIS на Windows Server 2016 и новее. Для Apache логика та же, отличаются только настройки самого веб-сервера. Главное, что даёт такая публикация: не нужно обходить компьютеры и вручную ставить новую версию после каждого обновления сервера 1С.
1. Подготовка веб-сервера IIS и дистрибутива
На машине с IIS понадобятся три вещи: роль веб-сервера с нужными компонентами, модули расширения веб-сервера 1С и сам дистрибутив тонкого клиента.
Компоненты IIS
Роль ставится через Диспетчер серверов → Управление → Добавить роли и компоненты → Веб-сервер (IIS). Отметьте:
- 🔹 Статическое содержимое — без него IIS не отдаст файл дистрибутива, будет ошибка 404;
- 🔹 Расширения ISAPI и Фильтры ISAPI — через них работает модуль 1С
wsisapi.dll; - 🔹 Средства управления → Консоль управления IIS — для настройки пулов и прав;
- 🔹 Обычная проверка подлинности и Проверка подлинности Windows — если планируете вход по логину ОС или через окно браузера.
Модули расширения веб-сервера
Запустите установщик платформы 1С той же версии, что стоит на сервере 1С. В списке компонентов включите «Модули расширения веб-сервера». Если на этой же машине нужен Конфигуратор для публикации, оставьте и «1С:Предприятие».
Разрядность модулей должна совпадать с разрядностью пула приложений IIS. 64-битный wsisapi.dll не загрузится в 32-битный пул, и наоборот.
Какой дистрибутив брать
На сайте с дистрибутивами платформы есть отдельная позиция: тонкий клиент для автоматической установки, для Windows 32 и 64 бит. Это zip-архив, рассчитанный именно на раздачу через веб-сервер. Обычный полный установщик платформы для этой задачи не подходит: он большой и требует ручного запуска.
Номер версии дистрибутива должен совпадать с номером версии модулей расширения веб-сервера. Клиент сверяет их при подключении.
2. Публикация информационной базы на веб-сервере
Дистрибутив привязывается к конкретной публикации базы, поэтому сначала публикуем саму базу.
Через Конфигуратор
- Запустите Конфигуратор от имени администратора Windows. Без этого запись в каталог
C:\inetpub\wwwrootи в настройки IIS не пройдёт. - Откройте нужную базу и выберите
Администрирование → Публикация на веб-сервере.... - В поле «Имя» задайте короткое латинское имя, например
buh. Оно станет частью адреса:http://web01/buh. - Веб-сервер — Internet Information Services. Каталог —
C:\inetpub\wwwroot\buh. - Включите флажок «Публиковать тонкий клиент и веб-клиент».
- Нажмите «Опубликовать». Конфигуратор предложит перезапустить веб-сервер — согласитесь.
После этого в каталоге публикации появятся default.vrd и web.config, а в IIS — приложение buh.
Через утилиту webinst
Если Конфигуратора на веб-сервере нет или публикаций много, удобнее командная строка. Утилита webinst.exe лежит в каталоге bin установленной платформы:
cd "C:\Program Files\1cv8\8.3.24.1548\bin"
webinst.exe -publish -iis -wsdir buh -dir "C:\inetpub\wwwroot\buh" -connstr "Srvr=srv1c;Ref=buh;"
Здесь -wsdir — имя публикации в адресе, -dir — физический каталог, -connstr — строка подключения к базе. Для файловой базы строка выглядит как File=D:\Bases\buh;. Номер версии в пути подставьте свой.
3. Как опубликовать дистрибутив тонкого клиента: атрибут pubdst
Теперь главный шаг. Публикация базы сама по себе дистрибутив не раздаёт — клиенту нужно сообщить, где его взять.
Шаг 1. Выложите архив
Создайте на веб-сервере отдельный каталог, например C:\inetpub\wwwroot\distr, и положите туда скачанный zip-архив тонкого клиента. Для удобства переименуйте его так, чтобы в имени была версия: setuptc64_8_3_24_1548.zip.
Не кладите архив внутрь каталога публикации базы. Для этого каталога в IIS настроено сопоставление обработчика на модуль 1С, и запросы к файлу уйдут в wsisapi.dll, а не в статику. Отдельный каталог на уровне сайта решает проблему.
Проверьте, что файл скачивается: откройте в браузере http://web01/distr/setuptc64_8_3_24_1548.zip. Пошло скачивание — IIS настроен правильно.
Шаг 2. Пропишите pubdst в default.vrd
Откройте C:\inetpub\wwwroot\buh\default.vrd в Блокноте от имени администратора. В корневой элемент point добавьте атрибут pubdst:
<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
base="/buh"
ib="Srvr="srv1c";Ref="buh";"
pubdst="http://web01/distr/setuptc64_8_3_24_1548.zip">
</point>
Остальные атрибуты оставьте как сформировал Конфигуратор. Сохраните файл в кодировке UTF-8.
Шаг 3. Перезапустите пул
Изменения в default.vrd подхватываются после перезапуска пула приложений. В Диспетчере IIS выберите пул публикации и нажмите «Перезапустить».
Перезапуск пула обрывает все текущие веб-сеансы этой базы. Делайте его, когда пользователи не работают через веб-клиент или HTTP-подключение.
При повторной публикации из Конфигуратора default.vrd перезаписывается, и pubdst пропадает. Держите копию файла рядом или вносите атрибут заново после каждой перепубликации.
Шаг 4. Обновляйте вместе с сервером
После обновления платформы на сервере 1С порядок такой:
- Обновить модули расширения веб-сервера до новой версии.
- Положить в
distrархив тонкого клиента той же версии. - Поменять адрес в
pubdst. - Перезапустить пул.
Старый архив удалять не спешите: пусть полежит до тех пор, пока все клиенты не переедут.
4. Пул приложений и права доступа в IIS
Большинство проблем с публикацией — не в 1С, а в правах и настройках пула.
Настройки пула
| Параметр | Значение | Зачем |
|---|---|---|
| Версия среды .NET CLR | Без управляемого кода | Модулю 1С .NET не нужен |
| Разрешить 32-разрядные приложения | False для 64-битного модуля, True для 32-битного | Иначе wsisapi.dll не загрузится |
| Режим управляемого конвейера | Встроенный | Стандартный вариант |
| Удостоверение | ApplicationPoolIdentity или доменная учётная запись | От имени этой учётки идут обращения к файлам |
Удобно держать для каждой базы свой пул. Тогда перезапуск одной публикации не задевает остальные.
Права на каталоги
Учётной записи пула (или группе IIS_IUSRS) нужны права:
- 📂 чтение на каталог публикации, например
C:\inetpub\wwwroot\buh; - 📂 чтение и выполнение на каталог
binплатформы, где лежитwsisapi.dll; - 📂 чтение на каталог с дистрибутивом;
- 📂 изменение на каталог файловой базы — только если опубликована файловая база.
Для клиент-серверной базы права на файлы базы не нужны. Зато веб-сервер должен видеть сервер 1С по сети: агент на порту 1540, менеджер кластера на 1541 и диапазон портов рабочих процессов, заданный в свойствах рабочего сервера. Если между машинами есть брандмауэр, откройте эти порты.
Аутентификация
Для публикации базы в IIS обычно оставляют включённой «Анонимную проверку подлинности»: логин и пароль спрашивает уже сама 1С. Если нужен вход по учётной записи Windows, включите «Проверку подлинности Windows» и разрешите этот способ входа пользователям в 1С.
Каталог с дистрибутивом можно оставить анонимным: в архиве нет ничего, кроме платформы.
5. Как тонкий клиент получает дистрибутив через веб-подключение
Публикация дистрибутива срабатывает только при подключении по HTTP. Пользователь добавляет базу в стартере 1С так:
- В окне запуска нажать «Добавить».
- Выбрать «Добавление в список существующей информационной базы».
- Тип расположения — «На веб-сервере».
- Адрес —
http://web01/buh.
Дальше при каждом входе клиент сверяет свою версию с версией публикации. Если они не совпадают, а в default.vrd задан pubdst, клиент скачивает архив по указанному адресу, разворачивает новую версию и перезапускается уже на ней.
Как проверить, что раздача работает
Возьмите тестовый компьютер с тонким клиентом предыдущей версии и подключитесь к публикации. Клиент должен сообщить о несовпадении версий, скачать архив и перезапуститься. После входа откройте Справка → О программе: в окне будет номер новой версии платформы. Если окно с предложением обновиться не появилось, сначала проверьте pubdst, затем доступность архива из браузера на этом же компьютере.
Веб-клиент и тонкий клиент: в чём разница для пользователя
| Веб-клиент | Тонкий клиент через HTTP | |
|---|---|---|
| Что ставить | Ничего, работает в браузере | Платформа нужной версии |
| Обновление | Не требуется | Автоматически по pubdst |
| Работа с оборудованием | Ограничена | Полноценная |
| Скорость интерфейса | Зависит от браузера | Выше, ближе к обычной работе |
Типовая схема для удалённых сотрудников: веб-клиент — на крайний случай, основная работа — в тонком клиенте через ту же публикацию.
Если на компьютере нет 1С вовсе
Автообновление по pubdst срабатывает, когда на компьютере уже стоит хоть какая-то версия тонкого клиента. На «чистую» машину первую установку делает администратор или сам пользователь из того же архива: распаковать и запустить установщик. Дальнейшие обновления пойдут автоматически.
Политики безопасности в домене (AppLocker, запрет запуска из профиля пользователя) могут блокировать установку скачанной версии. Если клиент скачал архив, но не запустился, проверьте журнал событий Windows на компьютере пользователя.
6. Ошибки публикации дистрибутива и что с ними делать
Перед тем как разбирать ошибку, откройте адрес публикации и адрес архива прямо в браузере на сервере. Так сразу понятно, на чьей стороне сбой: IIS или 1С.
Частые промахи при настройке
- ❌ Конфигуратор запущен без прав администратора. Публикация завершается без явной ошибки, но приложение в IIS не создаётся или каталог пустой.
- ❌ Обновили сервер 1С, а модули веб-сервера оставили старыми. Все HTTP-подключения перестают работать, причём автообновление не спасает: версии публикации и сервера расходятся.
- ❌ Один архив на все разрядности. Если в компании есть и 32-, и 64-битные Windows, проще раздавать 32-битный клиент: он работает на обеих.
- ❌ Правка default.vrd в редакторе с другой кодировкой. Кириллица в строке подключения превращается в «кракозябры», и публикация перестаёт открываться. Сохраняйте в UTF-8.