Отключение пользователей от 1С автоматически при бездействии

В 1С7.7 одновременно работают 20 пользователей. Многие пользователи в течение дня часто отлучаются с рабочего места от 20 мин до 3 часов, а иногда вообще уходят домой, оставляя включенным компьютер и 1С. Как я могу программно ввести контроль активности пользователя и, если он не работает минимум 20 минут, отключать его от 1С автоматически.
Например, можно завести справочник, в который пишется любое действие пользователя со временем. Плюс в глобальном модуле обработка ожидания с проверкой этого справочника. Если последнее действие пользователя древнее 20 минут, то автоматическое завершение работы и очистка справочника для данного пользователя. И естественно, очистка этого справочника при начале сеанса работы.

Комментарии | опубликовано: 28 Май 2009, 19:37

Основы. Случайные числа

Перем RandSeed;
Процедура Randomize()
Перем h,m,s;
ТекущееВремя(h,m,s);
RandSeed=h*24+m*60+s;
КонецПроцедуры
Функция Random(n) Экспорт
RandSeed=(13*RandSeed+13849)%65536;
Возврат ((RandSeed%n)+1);
КонецФункции
Процедура Сформировать()
Randomize();
Для нс=1 по 20 Цикл
сообщить(Random(10));
КонецЦикла;
КонецПроцедуры
Или еще вариант:
Ранд=_GetPerformanceCounter()%(х+1); //х – предел значения случайного числа от 0 до х;
Вот очень качественный алгоритм от комитета ANSI-C. Работает правда медленнее чуть-чуть, чем те, что выше, зато последовательности выдает просто замечательные.
_getPerformanceCounter() для совместимости с “1С:Совместимо” можно заменить на то, что выше.
var randSeed export;
// **************
function randomize() export
randSeed=_getPerformanceCounter();
endFunction
// **************
function random(n) export
randSeed=randSeed*1103515245+12345;
return ((randSeed/65536)%32768)%n+1;
endFunction
И ещё один алгоритм:
Перем GlSeed;
//———————————————
//Алгоритм 133a (Алгоритмы выпуск ?4 под редакцией Агеева. Вычислительный центр АН СССР. 1967)
Функция СлучайноеЧисло(N)
m35=34359738368;
m36=68719476736;
m37=137438953472;
GlSeed=5*GlSeed;
Если GlSeed>=m37 Тогда GlSeed=GlSeed-m37 КонецЕсли;
Если GlSeed>=m36 Тогда GlSeed=GlSeed-m36 КонецЕсли;
Если GlSeed>=m35 Тогда GlSeed=GlSeed-m35 КонецЕсли;
Возврат Цел(GlSeed/m35*N)+1;
КонецФункции

Комментарии | опубликовано: 25 Май 2009, 19:22

УРИБ зависает при очередном обмене

Если у вас не выполняется синхронизация баз с “нестандартным” (отличным от “месяц”) периодом хранения остатков, нужно поступить следующим образом:
1) удалить .CDX и RA.* и RG*.* в центральной и периферийной базах;
2) зайти в каждую базу монопольно и поставить период хранения остатков “месяц”;
3) Выполнить обмен между всеми базами;
4) Зайти монопольно в каждую базу и провести проведенные документы (учитывайте, что если у доков изменялись модули проведения, то, возможно, итоги изменятся);
Если хотите вернуться, к тому же периоду хранения остатков, что был установлен ранее, тогда:
3.5 зайти в каждую базу монопольно и поставить нужный период хранения остатков;
Да, и еще, перед началом выполнения вышеизложенных операций, протестируйте и исправьте каждую базу в конфигураторе – ставьте все галки, кроме “Пересчет итогов”.

Комментарии | опубликовано: 21 Май 2009, 14:17


<--- Предыдущая страница Следующая страница --->