Раздача тонкого клиента 1С через веб-сервер: публикация базы, pubdst и права

· 9 мин

Содержание

Чтобы опубликовать дистрибутив тонкого клиента 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. Публикация информационной базы на веб-сервере

Дистрибутив привязывается к конкретной публикации базы, поэтому сначала публикуем саму базу.

Через Конфигуратор

  1. Запустите Конфигуратор от имени администратора Windows. Без этого запись в каталог C:\inetpub\wwwroot и в настройки IIS не пройдёт.
  2. Откройте нужную базу и выберите Администрирование → Публикация на веб-сервере....
  3. В поле «Имя» задайте короткое латинское имя, например buh. Оно станет частью адреса: http://web01/buh.
  4. Веб-сервер — Internet Information Services. Каталог — C:\inetpub\wwwroot\buh.
  5. Включите флажок «Публиковать тонкий клиент и веб-клиент».
  6. Нажмите «Опубликовать». Конфигуратор предложит перезапустить веб-сервер — согласитесь.

После этого в каталоге публикации появятся 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=&quot;srv1c&quot;;Ref=&quot;buh&quot;;"
       pubdst="http://web01/distr/setuptc64_8_3_24_1548.zip">
</point>

Остальные атрибуты оставьте как сформировал Конфигуратор. Сохраните файл в кодировке UTF-8.

Шаг 3. Перезапустите пул

Изменения в default.vrd подхватываются после перезапуска пула приложений. В Диспетчере IIS выберите пул публикации и нажмите «Перезапустить».

Перезапуск пула обрывает все текущие веб-сеансы этой базы. Делайте его, когда пользователи не работают через веб-клиент или HTTP-подключение.

При повторной публикации из Конфигуратора default.vrd перезаписывается, и pubdst пропадает. Держите копию файла рядом или вносите атрибут заново после каждой перепубликации.

Шаг 4. Обновляйте вместе с сервером

После обновления платформы на сервере 1С порядок такой:

  1. Обновить модули расширения веб-сервера до новой версии.
  2. Положить в distr архив тонкого клиента той же версии.
  3. Поменять адрес в pubdst.
  4. Перезапустить пул.

Старый архив удалять не спешите: пусть полежит до тех пор, пока все клиенты не переедут.

Проверка перед открытием доступа
Выполнено: 0 / 5

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С так:

  1. В окне запуска нажать «Добавить».
  2. Выбрать «Добавление в список существующей информационной базы».
  3. Тип расположения — «На веб-сервере».
  4. Адрес — 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.

7. Частые вопросы

Можно ли раздавать дистрибутив без IIS, например с файлового сервера?
Атрибут pubdst ждёт адрес, доступный клиенту по HTTP. Сетевая папка через UNC-путь для автообновления по веб-подключению не подходит, нужен веб-сервер, хотя бы тот же IIS.
Нужна ли лицензия на веб-сервер для раздачи дистрибутива?
Нет. Отдача файла — обычная статика IIS. Лицензия нужна для работы самих пользователей в базе, как и при подключении без веб-сервера.
Подойдёт ли эта схема для публикации через HTTPS?
Да. Привяжите сертификат к сайту в IIS, а в pubdst и в адресе базы у пользователей укажите https. Сертификат должен быть доверенным для клиентских компьютеров, иначе подключение оборвётся.
Что делать, если на сервере несколько баз разных версий платформы?
Каждой публикации — свой пул, свой default.vrd и свой pubdst с архивом нужной версии. Модули веб-сервера разных версий могут стоять рядом, каждая публикация ссылается на свой wsisapi.dll.
Обязательно ли обновлять пул после замены архива?
Если имя файла не менялось и pubdst остался прежним, перезапуск не нужен. Если поменяли адрес в default.vrd, пул нужно перезапустить.