Терминал-стартер для запуска 1С в терминале


Иногда есть необходимость убрать пользователям на терминале, доступ к рабочему столу.
Но тут возникает ряд проблем:
1)    Пользователь закрывает окно 1С, при этом сессия не завершается. И при следующем входе в систему, окно 1с уже не будет открываться, так как сессия будет открытой. (приходится звонить администратору и просить завершить сессию на сервере терминалов)
2)    Иногда необходимо дать возможность пользователю выбирать несколько баз данных, но стандартное окно «Запуск  1С», со списком доступных баз, открывать запрещено.
3)    Необходимо запускать дополнительные программы, не связанные с 1С (например MS Office, Клиент-Банк и т.д.)

Для всех этих целей можно использовать скриптовый язык и написать пару .bat файлов. Но возникает некоторая сложность, в том случае если пользователь должен что-то выбирать и опять же проблема с незавершёнными сессиями.

Лично я много времени потратил на такие .bat файлы.

Поэтому я решил для себя эту проблему и написал маленькую программу, которой решил поделиться, авось кому и нужна.

Программа работает следующим образом.
При запуске, она постоянно весит открытой.
На панели есть поле для ввода параметров запуска и завершение сеанса текущего пользователя.
В параметры вводится имя .bat файла который должен лежать в той же папке, что и сама программа.
Например: я создаю два bat-ника, один из которых запускает данные 1С, с нужными параметрами, а второй программу Клиент-Банк.
Называю эти файлы «1.bat» и «2.bat». Теперь пользователь набирая в параметрах, перед «Запустить 1С» цифру 1 – запустит файл «1.bat» и  соответственно набирая 2 и «Запустить 1С» — файл «2.bat».

Таким образом, можно пронумеровать отдельные bat файлы и предоставить  пользователю возможность их запуска но номеру.

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

В случае если пользователь закончил работу или ему необходимо перезапустить свой сеанс, есть кнопка «Завершить сеанс» и напротив видно имя пользователя.

Добавил пароль на закрытие формы, он простой «135790» ))

23.04.2011 небольшое обновление по просьбе желающих

Для того чтобы пользователи не забывали названия параметров запуска. Я добавил возможность  выводить название и значение на панель. Для этого необходимо создать файл «TerminalStarter.txt» где можно описать все эти параметры. см. видео для подробностей

Если Вам понравилось, не забываем ставить плюс

56 Comments

  1. spleen

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

    Но тут возникает ряд проблем:

    1) Пользователь закрывает окно 1С, при этом сессия не завершается. И при следующем входе в систему, окно 1с уже не будет открываться, так как сессия будет открытой. (приходится звонить администратору и просить завершить сессию на сервере терминалов)

    2) Иногда необходимо дать возможность пользователю выбирать несколько баз данных, но стандартное окно «Запуск 1С», со списком доступных баз, открывать запрещено.

    3) Необходимо запускать дополнительные программы, не связанные с 1С (например MS Office, Клиент-Банк и т.д.)

    Перейти к публикации

    Reply
  2. zhenyat

    Не понимаю, зачем такие сложности, когда можно запретить рабочий стол и для каждого терминального приложения создать свой rdp файл?

    Reply
  3. spleen

    (1) zhenyat, Если приложений 5, и пользователей 30 и всем разные? И как быть с незакрытым сеансом?

    Reply
  4. philya

    (2)

    как вариант, снять галочку «отображать панель подключений при работе на полном экране» на закладке «экран» настроек подключения к удаленному рабочему столу.

    Reply
  5. laeg

    А что на счет ремоте-апликашион ?

    2000 и 2003 сервера уже отходят в прошлое …

    Reply
  6. spleen

    (3) laeg, модальные окна не дают нормально работать.

    Reply
  7. laeg

    (5) далеко не одна организация работает в таком режиме, на разных конфах, в толстых клиентах.

    Проблем как бы не замечено, полет около двух лет — нормальный.

    Единственная проблема с принтерами была и шрифтами.

    Reply
  8. spleen

    (6) laeg, вы видимо сами не пробовали

    Reply
  9. laeg

    (7) Я откровенно не понимаю в чем проблема с модальными окнами в режиме ремоте-апликашион. Сам периодически подключаюсь для решения различных проблем.

    Может вы не знаете или не понимаете о чем речь идет ?

    Или вы имеете ввиду потеря фокуса с модального окна ? Кнопка ексейп в таких ситуациях прекрасно помогает.

    Reply
  10. spleen

    (8) laeg, возможно для решения мелких задач RemoteApp подходит отлично. Но когда оператору надо по 8 часов лупить через подбор и у нее через каждые 2-3 раза надо нажимать на esc. Это явно не вариант.

    Я знаю, о чем я говорю.

    Reply
  11. laeg

    (9) Подбор в модальном окне ?

    Если не секрет, что за конфа ? Или самописка ?

    Reply
  12. spleen

    (10) laeg, Вы подбором пользовались когда-то? Когда выбираешь номенклатуру, появляется окно для указания количества. Оно как раз модальное. И это во всех конфигурациях так, типовых конечно.

    Reply
  13. laeg

    (10) проблема ваших пользователей понятна 🙂

    Надеюсь ваш труд оценят достойно.

    Reply
  14. zhenyat

    (2) судя по вопросу, я поняла,что AD у вас нет? Потому что групповыми политиками прекрасно все приложения раздаются пользователям, сколько бы их ни было, как пользователей, так и приложений… А с не закрытими сеансами я борюсь настройками самого rdp протокола на терминальном сервере.

    Reply
  15. awk

    Из всех проблем, актуальна только первая. И то решаема настройкой терминала. Остальные решаются гораздо проще. ShareApp и seamlessrdp (linux).

    Reply
  16. zhenyat

    (2) кстати, вдогонку, стоило бы разобраться из-за чего не закрывается сессия. У меня как то встречалась такая проблема из-за HP принтеров, которые GDI-шные (HP LJ P1005 в частности), вылечилось снесением с сервера терминалов родных HP-шных драйверов и настройкой универсального…

    Reply
  17. spleen

    (15) zhenyat, никаких драйверов не ставил на сервер.

    Сессия завершается нормально в случае если надо запустить только одно приложение. Но если их несколько запускается по выбору пользователя, тогда сессия остается открытой. И это вроде не глюк, особенность RDC.

    Reply
  18. zhenyat

    (16) а вы посмотрите на повисший сеанс — какие файлы держат ее открытой, может какое-то из приложений запускает что-то в фоне? Так, например, есть такая система электронной сдачи отчетности — СБИС++ — у нее дурацкий монитор обновлений запускается с запуском программы и остается висеть после ее завершения. Соответственно сеанс будет висеть пока не прибьешь это монитор…

    И таких злодеев немало на самом деле 😉

    Reply
  19. spleen

    (17) zhenyat, Поэтому я и сделал для себя эту прогу. Нажал кнопку. «Завершить сеанс» и все )))

    Reply
  20. webresurs

    (2)

    пуск -> выполнить -> gpedit.msc —> Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы Терминалов — Сеансы

    Параметр — Задать ограничение по времени для бездействующих сеансов

    Там же можно задать и для отключённых сеансов.

    Reply
  21. spleen

    (19) webresurs, А если необходимо сохранять бездействующий сеанс.

    Например на время обеда или просто в случае технических проблем на клиенте. Я установил такое ограничение на 3 часа.

    Но при этом возникает ситуация, когда пользователь закрыл все программы, а сеанс не завершен. Ему, что ждать 3 часа?

    Reply
  22. webresurs

    (20) 🙂 — и какие проблемы разрешить повторный вход… в gpedit.msc

    Reply
  23. spleen

    (21) webresurs, это уже выкрутасы. На мой взгляд. Тем более что не всегда у всех стоит AD.

    Reply
  24. karakozov

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

    Reply
  25. spleen

    (24) mich76, Там есть «плюсик» 🙂

    Reply
  26. Pavel_nv

    курите RemoteApp от MS на Server 2008R2 отлично работает. Пользователи даже знать не будут, что терминально работают.

    Reply
  27. spleen

    (26) Pavel_nv, В 1С лажа с модальными окнами. Уже обсуждалось не раз. И бывает что клиенты на LINUX.

    Reply
  28. Pavel_nv

    (27) У меня 27 релиз крутится нормально, и модальные окна видны. А про линукс не знаю. Но разработка нужная, если бы я ее в свое время нашел, то не вникал бы даже в Remote App.

    Reply
  29. an_2

    Когда-то давным-давно обнаружил я фокус — покус интересный. Каждый экземпляр 1С 7.7, запущенный без рабочего стола, ни делая абсолютно ничего сгрызал 2% процессорного времени терминального сервера. С тех пор ни разу не пробовал запускать 1с-ы без рабочего стола.

    Reply
  30. spleen

    (29) hodok, На 8-ке такого не видел. да дело скорее всего не в 1с.

    Reply
  31. soba

    (29) hodok, Всеже рабочий стол юзеру- потенциальная дыра в безопасности. Каждый решает по своему. Лично я юзера за рабочий стол не пускаю, поскольку приходится шарить диски. не хватало еще, чтобы они поназапускали вирусни из своих папок

    Reply
  32. spleen

    (31) soba, Доступ к дискам остается даже если убрать рабочий стол.

    Если нету домена, но надо гибко и БЫСТРО настроить права пользователей, есть программка «Security Administrator». В ней и диски можно скрыть и многое другое.

    Reply
  33. soba

    (32) Доступ то остается, а вот запуска нет. А перечислять в стороннем софте, что нельзя- дело неблагодарное

    Reply
  34. zhleonid8

    вопрос лучше решать настройкой прав пользователей

    Reply
  35. alekseies

    если сессия не активна можно сделать автоматическое завершиение сессии на сервере терминалов например через час ююю

    Reply
  36. Nado2010

    очень хороша я вешщь…проюовал и всем рекомндую….просто зашибись как удобно …пробовал на многих конфигурациях

    Reply
  37. spleen

    (35) alekseies, А если не надо завершать. Например человек должен вернуться к работе с того места откуда начал.

    Reply
  38. spleen

    (36) Nado2010, если надо что-то доработать, скажите сделаем.

    Reply
  39. nmc555

    Вопрос хочу использовать эту программу, но на сайте я новый и вижу что за программу нужно платить, чего честно делать не совсем хочу)) Есть пунктик — заработать, ок мне подходит, но нигде не указано стоимость данного продукта, сколько же мне нужно заработать?? так как цены программи я нигде не увидил…

    Reply
  40. spleen

    (39) nmc555, напиши свое мыло мне в личку.

    Reply
  41. cuba8

    Немного не понял по работе, файл TerminalStarter.exe где находиться на сервере или на клиенте?

    Если запустить на сервере, у меня 2003, выдает ошибку:

    To run this application, you first must install one of the following versions of the .NET Framework: V4.0.30319

    Reply
  42. spleen

    (41) cuba8, На сервере

    установите .NET 4 Скачать

    Reply
  43. cuba8

    (42) Спасибо установил .NET Framework, программа запустилась. Из обсуждения не понятно, если 1С открыта, пользователь закрывает с помощью кнопки «Завершить сеанс», то закрывается rdp сеанс, а сессия 1С так и остается висеть открытой или закрывается 1С и rdp.

    Reply
  44. spleen

    (43) cuba8, При завершении сеанса, все програмы запушенные в текушем сеансе закрываются. Если понравилось, нажмине плюс ).

    Reply
  45. cuba8

    (44) Плюс поставил, хорошо что закрываются все программы.

    Когда-то пользовался вот этой разработкой: http://infostart.ru/public/14344/, которая убирает в заголовке окна терминального подключения RDP кнопку «Х»

    А можно сделать, чтобы по умолчанию стояла определенная цифра в поле запуска программы, например, цифра 1?

    Reply
  46. spleen

    (45) cuba8, Для чего цифру 1 устанавливать? если не указан параметр, запускается bat файл с названием 1с «1c.bat». в нем пишите что угодно

    Reply
  47. cuba8

    (46) Прошу прошения, я невнимательно прочитал статью.

    Reply
  48. arjuna

    Опишите пожалуйста подробнее про процесс установки этого приложения. Если я правильно понял эту програмку нужно установить в автозагрузку пользователю на удаленном рабочем столе на сервере. Скорее всего пользователю запрещается видеть рабочий стол на сервере через настройку среды запуска. Есть еще какие нибудь варианты?

    Reply
  49. spleen

    (48) это приложение не требует установки

    Reply
  50. arjuna

    (49)

    Под установкой я имел ввиду ряд последовательных действий, которые приведут к желаемому результату.

    Reply
  51. spleen

    (50) arjuna,

    1. Создаем bat файл в котором прописываем запуск «стартера»



    —————————

    2. В профиле пользователя прописываем путь к этому самому bat файлу.

    Reply
  52. soci0pat

    (5) вот эта заплатка призвана решить проблемы с модальными окнами в приложениях, которые запускаются через RemoteApp. Сам поставил сегодня, заплатка проходит обкатку.

    Если у кого-то уже есть какое-то мнение по поводу заплатки, то сообщите, пожалуйста.

    Reply
  53. soci0pat

    удалите комент

    Reply
  54. Alfer

    разбираться и разбираться — может дорасту умом ??

    Reply
  55. OrsoBear

    Похоже, полезная программа, но наш админ решил проблему штатными средствами.

    На всякий случай заберу, у нас 3 разных сервера. Вроде слышал разговор, что решить можно только на новых версиях сервера.

    Reply
  56. user678828_star1c

    Прикольная вещица, думаю пригодится в дальнейшем.

    Reply

Leave a Comment

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