Стоит Windows Server 2007, на нём файл конфигурации 1С:Бухгалтерия 8.2, пользователи к ней обращаются в терминальном режиме. Всего аппаратных ключей 7(5+1+1). По непонятной причине происходит следующее: один и тот же пользователь может заходить два раза. То есть он мог зайти вчера, и система не обрубает сеанс. Сегодня он заходит как ни в чём не бывало, но старый сеанс занимает лицензию, при просмотре активных пользователей видно, что он зашёл вчера и до сих пор работает. Причём он не вылетает при завершении терминального сеанса. Пока проблему решаем перезагрузкой сервера. Может кто сталкивался с похожей проблемой?
(1) Возможно проблема в том, что терминальный сеанс не завершается а отключается.
Вижу 2 решения проблемы:
1. Завершать автоматически отключенные сеансы
2. Подключать пользователей к отключенным сеансам, а не к новым
БЮывает, что закусывает на определенном документе при некорректном выходе из БД, СТОЛКНУЛСЯ. Есть на этот счет скрипт. Запускается на рабочей станции с пользователем , но при условии, что 1С нигде не работает...
После динамического обновления часто возникает ситуация, когда при перезапуске клиента он подхватывает не актуальную версию конфигурации с сервера, в результате чего могут появляться совершенно непредсказуемые глюки.
Данный скрипт очищает локальный кэш 1С и при следующем запуске 1С подхватывает актуальную версию конфигурации. Скрипт настроен на удаление кешей 8.0-8.2 платформ. Работает только если на локали нет ни одного запущенного процесса 1С 8.
Реализовано на JScript (тот был на VBScript). Теперь при возникновении ошибкок при удалении каждый раз не выводится окно с ошибкой, а выводится только в самом конце одно.
Причиной написания данного скрипта послужило то, что параметр /ClearCache часто не решает проблему.
Для использования необходимо создать текстовый файл, скопировать в него текст скрипта и изменить его расширение с *.txt на *.js.
var FSO = new ActiveXObject("Scripting.FileSystemObject");
var WshShell = new ActiveXObject("WScript.Shell");
var colEnvVars = WshShell.Environment("Process");
var sErrors = false;
var FolderName1 = "\\Local Settings\\Application Data\\1C\\1Cv82";
var FolderName2 = "\\Local Settings\\Application Data\\1C\\1Cv81";
var FolderName3 = "\\Local Settings\\Application Data\\1C\\1Cv80";
if (FSO.FolderExists(colEnvVars("userprofile") + FolderName1))
Сколько мути развели, а решается все в 2 клика - настройка служб терминала - ограничивать пользователя единственным сеансом - истина. Далее, если юзеры как и везде одинаковые, - говоришь что нужно выйти из 1с потом пуск - логоф. Но им(!!!) то гораздо проще нажать на синий крестик терминала и все сразу быстро и правильно (для них) закроется и можно идти домой... Вообщем либо выписываем штрафы за безответственность, либо оставляем все незавершенные сеансы висеть круглосуточно.
MirrorDen пишет:
Чаще всего сессии зависают в RDP при использовании сессии без запуска Explorer, не посредственно стартуется 1С.
Эти сессии не зависают если выходить крестиком по 1с, а не по рдп... Возможно придется подождать когда и сеанс схлопнется, но его лучше свернуть а не крестом долбить...
Следует проделать следующие действия:
Уменьшить тайм-аут завершения процесса SplWOW64.exe. Для этого следует в значение системного реестра SplWOW64TimeOut установить в значение 1 (при отсутствии значения его следует создать с типом DWORD (32 бита)).
Ветка реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
Добавить процесс SplWOW64.exe в список процессов, завершаемых при завершении терминальной сессии. Для этого следует значение системного реестра SPLWOW64.EXE установить в значение 0 (при отсутствии значения его следует создать с типом DWORD (32 бита)).
Ветка реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\SysProcs
Привет всем!
Я в таком случае делаю так: на сервере-терминале запускаю диспетчер задач. И на закладке Пользователи отключаю всех пользователей с пометкой Отключен. Конечно не вариант, если такие ситуации возникают постоянно, но в единичных случаях помогает.