Здравствуйте , может у кого- то сталкивался с подобным. необходимо ограничить количество запущенных сеансов (баз) 1с для пользователей на сервере терминалов.
Проблема в том что на сервере работают примерно 10-15 человек (из них 9 пользователей которые работаю непосредственно с 1с) некоторые из них запускают по 5- 6 сеансов 1с и из-за этого у других пользователей нереально медленно формируются стандартные отчеты.
Возможно ли какими либо средствами подсчитать количество запущенных сеансов и поставить запрет на запуск новых (например заперт за загрузку 3-го сеанса по счету )
(1) получить соединения информационной базы и посчитать. если у пользователя уже есть > 2 тогда сообщить("нельзя так много работать"); завершитьработусистемы(ложь,ложь);
ТекНомерСоединения = НомерСоединенияИнформационнойБазы();
УИДПользюка = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
Для Каждого ТекСоединение Из МассивСоединений Цикл
Если (ТекСоединение.ИмяПриложения = "1CV8")
И (НЕ ТекСоединение.НомерСоединения = ТекНомерСоединения)
И (НЕ ТекСоединение.Пользователь = Неопределено)
И (ТекСоединение.Пользователь.УникальныйИдентификатор = УИДПользюка) Тогда
Возврат "Вот он уже есть в базе";
КонецЕсли;
КонецЦикла;
(4) Это не совсем то, так он считает соединение с одной базой , а нужно что бы общее количество соединений с разными базами
Например в списке баз у пользователя
База БП № 1
База БП № 2
Копия Базы БП №1
Копия Базы БП №2
Необходимо что бы пользователь работал только с тремя базами (например он запустил 3 сеанса Базы БП №1 ) и при попытки запустить любой другой сеанс выдавалось бы предупреждение
(8) так что пользователю запрещать пользоваться базами?
Ну тогда это уже к админам. Скорее всего можно включить политику на количество запущенных процессов 1С.
Но подход у вас не правильный, просто объясните, чтобы не открывали много баз, раз у вас сервер слабый вот и все!
(11) Да 100500 раз уже объясняли - пару недель держатся а дальше все по старому (а полная Ж в отчетный период ) , а потом звонят и жалуются что 1с не фига не работает. (ОСВ по счету по одному контрагенту формируется более 30 минут !!!!) А поход я думаю корректный вы же не работаете с более 4-мя базами одновременно 3 еще куда не шло , но более 3-х баз которые каждая из которых съедает 200 Мб памяти и при этом простаивает и к тому же мешает работать другим у которых запущен только 1 сеанс более чем корректен
(14) Мы фирма франч и просто обслуживаем клиентов, про сервер уже говорили - это вопрос их системных администраторов (которые кстати уволились недавно) но вопросы по 1с ложится на наши плечи. И практически получается Пинг-Понг мы отсылаем к системным админ. типа сервер уже не справляется с нагрузкой , а они к нам типа сервер работает нормально и проблема в 1с. А клиенту важно что бы все работало и не важно чья это проблема. Пока решение "килять процессы 1с" вижу как временное решение проблемы , которое к тому же будет обсуждаться с клиентом , если предложенный способ будет работать
(16) Ну вы что клиентов не знаете ? Улучшение сервере - конечно вариант , тут надо дождаться новых системных администраторов. Но вот монитор и что бы сами решали - это перебор , не будут они брать такую ответственность на себя. У них извечный вопрос - "А Вы то тогда нам на что ?"
Это хороший вариант , надо попробовать , можно думаю только 2 раза запускать , так как 1cv8s.exe это только вызов списка баз он не сильно грузит систему
Подменить ярлык 1С на общем рабочем столе сервера на ярлык к батнику со значком 1С. Для сообщения об ошибке можно использовать
rem chcp 1251
rem команда выше может пригодиться, чтобы не перекодировать сообщение об ошибке в кодировку 866
msg %username% Превышено максимально допустимое количество запущенных баз!
Я бы помониторил сервер на предмет в каком месте тормоза и затыки. Может оперативной памяти надо увеличить или диск(овый массив) не справляется с количеством одновременных потоков. Хотя если база файловая - большого эффекта не будет.