Автоматическое удаление спящих сеансов на сервере 1С

15 Comments

  1. lalexrus

    спс. нужная штука.

    Reply
  2. Gasanov.talib

    (1) lalexrus, Если возникнут сложности или пожелания при использовании, дайте знать

    Reply
  3. foxey

    После перехода на версию 8.3.9.2033 перестало работать.

    При попытке обновить список выдает окошко со страшными письменами:

    «Необрабатываемое исключение в приложении. При нажатии кнопки «продолжить» приложение проигнорирует ошибку и попытается продолжить работу. При нажатии кнопки «Выход» приложение немедленно завершит работу.

    Не удалось получить фабрику класса COM для компонента с CLSID {181E893D-73A4-4722-B61D-D604B3D67D47} из-за следующей ошибки: 80041154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).»

    На предыдущей версии 1С работало исправно.

    Мне кажется, в версии 2033 (точнее, на одну версию раньше) платформа стала 64-битным приложением. И из-за этого такие вот косяки вылезли…

    Как вылечить? Переустановка V8SessionCleaner не помогла…

    Reply
  4. citicat

    Полезный инструмент

    Reply
  5. aka Любитель XML

    (3) зарегистрирую com от новой платформы

    Reply
  6. foxey

    (5) А не подскажете, как это делается?

    Reply
  7. Gasanov.talib

    Игорь, «80041154 Класс не зарегистрирован» однозначно говорит о том, что у вас требуемый COM компонент не зарегистрирован. В данном случае речь идет об компоненте «1CV83 COM Connector».

    Обычно при корректной установке 1С этот компонент регистрируется. В вашем случае возможно были какие-то проблемы при установке или допущена ошибка.

    Чтобы решить проблему надо либо еще раз (поверх установленной) установить 1С, выбрав опцию «исправить» при установке или же САМОСТОЯТЕЛЬНО зарегистрировать «1CV83 COM Connector».

    Для самостоятельной регистрации откройте в текстовом редакторе вложенный файл, замените путь к comcntr.dll на ваш (найдите на вашем компьютере файл comcntr.dll и замените путь). Сохраните изменения и запустите командный файл ОБЯЗАТЕЛЬНО нажав правую кнопку мыши и выбрав «Run as administrator».

    Если все правильно вы должны увидеть сообщение типа: DllRegisterServer in <путь>comcntr.dll succeeded. Если у вас Windows русский, то сообщения могут быть на русском.

    Reply
  8. foxey

    (7) Вот смотрите, Талиб.

    Ручками провожу регистрацию на сервере: regsvr32 «C:Program Files1cv88.3.9.2033incomcntr.dll»

    Сообщает мне, что регистрация успешно прошла.

    Перезапускаю сеанс удаленного рабочего стола, пробую утилитку Вашу и снова та же песенка о незарегистрированном классе.

    Может надо сервер перезапускать? Но это возможно только ночью сделать.

    А не может быть причиной такой неприятности из-за того, что теперь DLL находится в другой папке? У Вас «Program Files (x86)», у меня «Program Files». Хотя нет, не может быть это причиной.

    Update: Ах да, забыл сказать. Я это делаю из-под учётки Администратора.

    Reply
  9. foxey

    Update 2: Попробовал провести восстановление установленной 1С, пришлось перезапустить сервер. Так вот, не помогло…

    Все же думаю, что причиной неудач может быть то, что установлен 64-битный клиент.

    Reply
  10. Gasanov.talib

    (9)

    игорь,

    Надо убедиться, что утилита удаления сеансов запущена на том же компьютере на котором Вы регистрируете comcntr.dll. Если это так и проблемы все равно есть, тогда надо

    1.Зарегистрироть comcntr.dll потом в реестре windows поискать по ключу 181E893D-73A4-4722-B61D-D604B3D67D47, найти раздел где регистрирован comcntr.dll и смотреть нет ли там проблем.

    что касается 64-битного клиента, то не могу утверждать что проблема в этом. У я программировал утилиту и тестировал как раз на 64-битном Windows.

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

    Скайп Gasanov2003

    Reply
  11. Gasanov.talib

    Проблема действительно была, связана с тем, что текущая версия утилиты работает только с 32 битным клиентом 1С. Если установить 1С клиент 64, то программа не работает и выдает ошибку описанную Игорем выше.

    В ближайшее время выложу 64 битную версию утилиты.

    Reply
  12. Octopus

    Будет ли реализована возможность завершения конкретной сессии, а не всего списка целиком?

    Reply
  13. Gasanov.talib

    Да, реализую в новом релизе, если это нужная возможность.

    Правильно я понимаю, речь идет о возможности завершения выбранной сессии когда программа запущена в режиме пользовательского интерфейса?

    Reply
  14. Octopus

    (14) Не обязательно, подвиснуть может и конфигуратор. Вопрос вызван следующей ситуацией: сервер с множеством баз, понадобилось убрать «висяки» только одной из них. Кстати, сортировка по колонкам тоже была бы весьма удобна.

    Reply
  15. DrBlack

    Столкнулся с аналогичной проблемой, проблему решили с помощью регламентного задания, которое запускается раз в сутки (нам этого достаточно) и грохает все сеансы, вот весь код (актуально для УПП):

    Процедура ЗавершениеСеансовПользователей() Экспорт
    ПараметрыАдминистрированияИБ = СоединенияИБ.ПолучитьПараметрыАдминистрированияИБ();
    СоединенияИБ.ОтключитьСоединенияИБ(ПараметрыАдминистрированияИБ);
    КонецПроцедуры
    

    Enjoy 🙂

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *