При переходе на новые версии платформы 1С:Предприятие (начиная с релиза 8.3.15.1565 и выше) администраторы часто сталкиваются с крайне неприятным поведением системы. Старые конфигурации, такие как «Управление производственным предприятием» (УПП) или «Комплексная автоматизация» редакции 1.1, интерфейс которых спроектирован на обычных формах, неожиданно начинают запускаться в режиме управляемого приложения. Пользователи видят пустой или некорректно работающий интерфейс управляемых форм, в котором невозможно полноценно работать.
Дополнительно к этой проблеме при обновлении платформы часто «вылезают» ошибки лицензирования, связанные с разделением лицензий на уровни ПРОФ и КОРП. В этой статье мы подробно разберем, почему происходят данные сбои и как их централизованно исправить в терминальной среде и на сервере 1С.
Выясним причину такого поведения платформы. В новых релизах платформы 1С:Предприятие 8.3 разработчики изменили приоритеты определения клиентского приложения по умолчанию. Если раньше платформа при запуске базы ориентировалась на локальные настройки и кэш метаданных, то теперь приоритет отдается значению свойства конфигурации Основной режим запуска. Если в конфигурации УПП на корневом узле это свойство установлено в значение Авто или Управляемое приложение, платформа попытается запустить тонкий клиент или управляемый режим толстого клиента.
На терминальном сервере с большим числом пользователей настраивать режим запуска вручную в свойствах подключения каждой базы крайне неэффективно. Рассмотрим системные и автоматизированные методы решения этой задачи.
Для массового исправления настроек у всех пользователей терминала лучшим решением является использование общего конфигурационного файла. Разберем этот процесс по шагам.
Создадим или отредактируем общий файл списков баз с расширением .v8i. В параметрах нужной информационной базы нам необходимо принудительно указать тип запуска клиента с помощью параметра DefaultApp. Пример конфигурации базы в файле должен выглядеть следующим образом:
[Управление производственным предприятием]
Connect=Srvr="Server1C";Ref="upp_prod";
ID=e5b7c7b8-1d41-477f-a64e-b5f76f4dae5e
OrderInList=16384
Folder=/
DefaultApp=ThickClient
Параметр DefaultApp=ThickClient принудительно указывает платформе запускать базу исключительно в режиме толстого клиента. Чтобы этот список баз автоматически появился у всех пользователей терминального сервера, пропишем путь к файлу в общем конфигурационном файле запуска 1CEStart.cfg (обычно он располагается по пути C:\Program Files\1cv8\common\1CEStart.cfg) с помощью параметра:
CommonInfoBases=C:\PathToSharedFolder\ibcommon.v8i
Если у вас есть возможность вносить изменения в конфигурацию (она находится на поддержке с возможностью изменения), мы можем решить проблему глобально для всех пользователей без изменения файлов настроек на рабочих столах. Выполним следующие действия:
После этого платформа при любых условиях будет знать, что приоритетным для данной конфигурации является обычный интерфейс.
Если базы добавлены пользователям индивидуально и вы не используете общие списки .v8i, можно прибегнуть к автоматизации через PowerShell. Напишем простой скрипт, который обходит профили всех пользователей на терминальном сервере, находит их файлы настроек ibases.v8i и добавляет строку принудительного запуска толстого клиента.
Проанализируем пример скрипта:
$UsersDir = "C:\Users"
Get-ChildItem -Path $UsersDir -Filter "ibases.v8i" -Recurse -Force -ErrorAction SilentlyContinue | ForEach-Object {
$filePath = $_.FullName
$content = Get-Content -Path $filePath
$updated = $false
$newContent = @()
foreach ($line in $content) {
$newContent += $line
if ($line -match "Connect=.*Ref=\"upp_prod\"") {
# Проверяем, задан ли уже параметр DefaultApp
$newContent += "DefaultApp=ThickClient"
$updated = $true
}
}
if ($updated) {
Set-Content -Path $filePath -Value $newContent -Force
}
}
Этот скрипт найдет настройки базы с именем upp_prod в профиле каждого пользователя и гарантирует запуск конфигурации в режиме обычного приложения.
Перейдем ко второй важной проблеме, упомянутой в обсуждении. При переходе на новые релизы платформы (начиная с 8.3.15) система начинает жестко контролировать использование функций, предназначенных исключительно для лицензий уровня КОРП. Если у вас установлена лицензия ПРОФ, но в настройках кластера серверов задействованы параметры производительности, сервер начнет аварийно завершать процессы или выдавать ошибки лицензирования.
Чтобы восстановить корректную работу сервера 1С на лицензиях ПРОФ, выполним тонкую настройку свойств кластера через Консоль администрирования серверов 1С:Предприятия:
0 означает "без ограничений"):
0.0.0.8 (или вернем к стандартному системному по умолчанию, чтобы избежать запуска выделенных под каждую базу процессов, что также является КОРП-функцией).После изменения настроек кластера обязательно перезапустим службу «Агент сервера 1С:Предприятия» через оснастку служб Windows, чтобы изменения вступили в силу и кэш лицензий обновился.
Применяя данные настройки комплексно, мы избавимся от нежелательного открытия УПП в управляемых формах на терминальном сервере и обеспечим стабильную работу сервера 1С в рамках имеющихся лицензий ПРОФ.