none
Закрытие окна терминала при закрытии программы 1с - решение проблемы RRS feed

  • Вопрос

  • Добрый день, выкладываю решение известной проблемы, уверен многим пригодится. Описанное ниже актуально для 2003 Server 64, 2008 Server. Необязательно писать скрипты по убиванию процессов и использовать их в качестве среды для пользователей - это не правильно, проблема решилась по другому. Вначале рекомендую установить все критические обновления от Microsoft, далее по тексту (придумал не я, нагуглил на каком-то форуме после неудачных попыток исправить ситуацию: думал KAV 6 EE виноват - нет, думал прав не хватает - нет, запускал скриптом - нет и т.д и т.п.) Буду рад если кому пригодится :

    Ситуация

    Терминальный сервер под Windows Server 2008 (2003) R2, терминальные клиенты под 98, 2000, XP, 7.

    Ряду теминальных пользователей назначен запуск 1С:Предприятие 7.7 при запуске терминального сеанса.
    Проблема

    При закрытии 1С не всегда происходит завершение терминальной сессии.
    Поиск решения

    После непродолжительных поисков было выяснено следующее: при обращении к печати запускается процесс SplWOW64.exe, который отсается запущенным еще какое-то время после вполнения задания печати, затем сам снимается.

    Суть проблемы в том, что если днный процесс сам не завершился до закрытия 1С, то не происходит и закрытия терминальной сессии.

    Немного о самом SplWOW64.exe:

    Данный процесс используется для преобразований между 32-разрядными и 64-разрядными приложениями. Этот процесс остается в памяти в целях расширения производительности системы и выгружается из памяти через заданное время после окончания последнего задания. [This process is used to convert between 32 bit and 64 bit applications. This process remains in memory in order to increase system performance and unloads from memory after a specified time from the end of the last job.]

    Среди найденных решений были следующие:

        * запускать вместо 1С bat-ник в котором задать запуск 1С и после ее закрытия убиство данного процесса;
        * задать в реестре минимальное время после которого процесс SplWOW64.exe выгружается из памяти после завершения последнего задания (минимальное время 1 минута)
        * добавление SplWOW64.exe в список терминальных сервисов – данный метод мне показался наиболее удобным и был применен.

    Решение

    При закрытии терминального приложения остается зпущенным процесс SplWOW64.exe, который воспринимается как приложение и не дает автоматически завершить сессию. Все что нам нужно это заставить систему воспринимать SplWOW64.exe как процесс в терминальной сессии который необходимо завершать при закрытии приложения.

        * открываем редактор реестра: Win+R – regedit;
        * переходим в [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Terminal Server\SysProcs];
        * добавляем DWORD: SPLWOW64.EXE со значением 0.

    Проблема решена.

     

    5 сентября 2010 г. 12:47

Ответы

Все ответы