Как настроить автоматическую установку патчей в 1С, если пользователи работают через тонкий клиент и IIS?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Почему патчи «не видят» тонкий клиент через веб-сервер

Для начала давайте разберем причину проблемы. Когда пользователь подключается через IIS, исполнителем программного кода выступает рабочий процесс веб-сервера w3wp.exe. Этот процесс работает от имени специальной системной учетной записи (например, ApplicationPoolIdentity), у которой нет своего интерактивного рабочего стола и, что более важно, часто отсутствуют права на запись в системные папки профиля пользователя.

Механизм патчей в 1С спроектирован так, что загруженные исправления должны сохраняться в каталог ExtPatches в профиле того пользователя, который запустил сеанс. Если рабочий процесс IIS не находит пути для сохранения или не может создать там файлы, установка прерывается без видимых ошибок для пользователя тонкого клиента. Выясним, как это преодолеть.

Способ 1. Настройка прав доступа и структуры каталогов для IIS

Проанализируем самый «чистый» с точки зрения системного администрирования метод — предоставление необходимых прав веб-серверу. Чтобы фоновое задание по установке патчей могло отработать внутри процесса w3wp.exe, системе нужны определенные папки.

Рассмотрим пошагово, что необходимо сделать:

  1. Выясним, под каким пользователем запущен пул приложений в IIS (обычно это IIS AppPool\ИмяПула или NetworkService).
  2. Создадим (если они отсутствуют) следующие каталоги на сервере:
    %SystemRoot%\system32\config\systemprofile\AppData\Roaming\1C\1cv8
    %SystemRoot%\SysWOW64\config\systemprofile\AppData\Roaming\1C\1cv8 (для 64-битных систем).
  3. Дадим группе пользователей IIS_IUSRS (или конкретному пользователю пула) права «Полный доступ» на папку 1C и все вложенные в нее директории в этих путях.

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

Способ 2. Автоматизация через планировщик задач Windows

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

Разберем создание скрипта для автоматизации. Мы можем использовать простой .bat файл, который будет запускаться, например, в 3 часа ночи:


"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "C:\Bases\MyBase" /N "Admin" /P "Password" /C "УстановитьПатчи" /Execute "C:\Scripts\CloseSession.epf" /Visible

В данном примере мы запускаем базу в файловом режиме. Обратите внимание на параметр /C. Мы можем написать небольшой код в модуле управляемого приложения, который при старте с этим параметром будет инициировать процедуру установки исправлений:


Если ПараметрыЗапуска = "УстановитьПатчи" Тогда
    ИсправленияИнформационныхБаз.УстановитьВсеДоступныеИсправления();
    ЗавершитьРаботуСистемы(Ложь);
КонецЕсли;

Таким образом, сервер раз в сутки будет сам заходить в базу под толстым клиентом, подтягивать свежие исправления и корректно закрываться, не требуя участия главного бухгалтера.

Способ 3. Использование специализированного ПО (Обновлятор-1С)

Как отмечают многие специалисты, одним из самых эффективных решений является использование сторонних утилит, таких как «Обновлятор-1С». Это решение особенно актуально, если у вас не одна, а десятки баз.

Проанализируем преимущества этого подхода:

Настроим планировщик в самом Обновляторе на ночное время, и он сам будет скачивать патчи с серверов 1С и внедрять их в файловые базы, даже если те опубликованы на IIS.

Способ 4. Тонкая настройка IIS для постоянной работы фоновых заданий

Часто патчи не ставятся потому, что фоновое задание просто не запускается: IIS «усыпляет» процесс w3wp.exe, если к базе никто не подключен. Разберем, как заставить веб-сервер работать постоянно.

  1. Откроем диспетчер IIS.
  2. Перейдем в «Пулы приложений» и выберем нужный пул.
  3. В «Дополнительных параметрах» установим «Режим запуска» (Start Mode) в значение AlwaysRunning.
  4. В параметрах самого сайта (информационной базы) установим «Предварительная загрузка включена» (Preload Enabled) в значение True.

Эти настройки гарантируют, что регламентное задание ЗагрузкаИУстановкаИсправлений будет выполняться по расписанию даже ночью, когда все пользователи отключены. В сочетании со Способом 1 это дает полностью автоматический механизм.

Важные нюансы: Блокировки и Кэширование

Разберем ситуацию, упомянутую опытными администраторами: проблему «второго пользователя». При работе с файловой базой через IIS (один процесс) и одновременном подключении через толстый клиент (другой процесс), Windows отключает эффективное кэширование файлов базы данных (1Cv8.1CD).

Важно помнить:

Рассмотрим также программный аспект. В некоторых случаях патчи могут конфликтовать между собой. Если после автоматической установки база перестала открываться, используйте параметр запуска /SafeMode или временно переименуйте папку ExtPatches в профиле пользователя, от имени которого работает IIS. Это позволит запустить систему и удалить проблемное исправление через справочник «Обслуживание».

Резюме

Мы рассмотрели различные подходы к автоматизации установки патчей. Для небольших организаций идеальным решением будет настройка прав доступа к системному профилю IIS и перевод пула приложений в режим AlwaysRunning. Для администраторов с большим количеством баз лучшим выбором станет использование планировщика задач или специализированных утилит обновления. Главное — исключить ручной труд и доступ пользователей с административными правами на сервер через RDP, что значительно повышает общую безопасность системы.

← На главную