Терминал-стартер для запуска 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 не будет опубликован. Обязательные поля помечены *