Небрежные пользователи

Новая тема
Сначала вопрос старожилам форумов или модераторам: если возможность перекачать все вопросы или темы форумов на свой компьютер? (чтобы не задавать вопросы, которые уже обсуждались).

Теперь собственно задача: при работе в сети, некоторые пользователи оставляют программу в рабочем режиме. Для внесения изменений в конфигурацию приходится бегать по отделам и выходить из программы там, где пользователь оставил открытой 1С. Наконец, открытая программа при сбое электропитания, может привести к потере данных. Можно ли написать такую отслеживающую процедуру, которая по истечении определенного времени бездействия бухгалтера, сначала задает вопрос... ну, типа: "Вы работаете или нет? Через две минуты программа закроется". И через эти две минуты 1С автоматически завершает работу, корректно закрывая даже открытые документы или справочники.

Заранее спасибо. Если возможно, укажите примерное решение проблемы, пожалуйста.

http://itland.ru/forum/index.php?showtopic=15187
Почитай.
;
Ага. Я примерно так и предпологал. Но я, как бы это сказать, "первокласник" в 1С. Поэтому у меня что-то не получатся написать такую процедуру. Может у кого уже написана подобная программулька, буду очень благодарен, если мне приведут её пример (там, может быть, всего-то несколько строк).
"У меня сделано так:
Процедура ПpовеpкаБлокиpовки() Экспорт// пpовеpка блокиpовки доступа
Если ИмяПользователя()<>"Андрей"  тогда  // Админ может работать в любой момент
Если (ФС.СуществуетФайл(КаталогБазыДанных()+"Lock\NoDelete!!!")=1) тогда
если (ТаймерАварийногоВыхода = ИнтервалАварийногоВыхода) и
     (ТаймерАварийногоВыхода <> 0) тогда //  мин
ЗавершитьРаботуСистемы( 0 );
возврат;
конецесли;
если ТаймерАварийногоВыхода <> 0 тогда
ТаймерАварийногоВыхода  = ТаймерАварийногоВыхода  + 30;
сообщить("Внимание!!! Программа завершит работу через " +
строка(ИнтервалАварийногоВыхода - ТаймерАварийногоВыхода) + " секунд. ");
если ТаймерАварийногоВыхода = ИнтервалАварийногоВыхода тогда
ЗавершитьРаботуСистемы( 0 );
конецесли;
возврат;
конецесли;  

       файл = ФС.НайтиПервыйФайл( КаталогБазыДанных()+"Lock\*.tmr");
поз = найти( файл, ".");
файл = лев( файл ,  поз - 1); // получили минуты
ТаймерАварийногоВыхода = 30;
ИнтервалАварийногоВыхода = число(файл) * 4 * 15;
СтатусВозврата(0);
Вопрос("Дорогая """""+ИмяПользователя()+"""""! "
""""
  "Выйди пожалуйста из программы 1С.Зарплата и Кадры"+
  "ненадолго! Пусть твои глазоньки отдохнут немножко!"+
"Через    "+файл+"    мин. программа закроется сама", 0,10);
  КонецЕсли;
КонецЕсли;
КонецПроцедуры

Далее в Процедуре ПриНачалеРаботыСистемы() вставил
ИнтервалАварийногоВыхода = 0;
ТаймерАварийногоВыхода = 0;
ОбработкаОжидания("ПpовеpкаБлокиpовки",15);

Теперь если удалить или переименовать файл NoDelete!!! будет насильственный выброс всех.
Да в каталоге Lock уще присутствует файл 1.tmr

"
Андрей! Большое спасибо!
Сейчас внесем в нашу конфигурацию и попробуем. Чуть позже напишу отзыв.
Жалко, что только решена очень важная проблема "выброса" пользователей.
Однако, важно отключать пользователя, если он не работает в программе долгое время. Буквально вчера был в одной организации, где эксплуатируется 1С. Тамошний пользователь оставил программу открытой (сетки нет) и произошел скачок напряжений. При этом запортилась немного FAT таблица. И, хотя программный модуль не пострадал, но многие базы нарушились. Пришлось мне в ручную их восстанавливать, что удалось мне лишь отчасти. Понятно, что такая авария могла произойти и во время работы пользователя, но в том-то и дело, что бухгалтер ушел тогда на обед, а после уже "...базы запорчены".

Вот и пообедали называется...
У меня в конфе, при выходе из программы, запрашивает архивирование базы для резервной копии. Из конфигуратора никто не хочет архивировать.
Говорят сильно замудрёно.
А на счет "глазоняк" мне понравилось. Надо будет себе в конфу сделать что-то подобное :) Только если открыт какой-то документ для редактирования, при закрытии, прога ведь скажет: "Сохранить изменения?" и будет ждать. Тайм-аута там нет. Или всетаки это можно както обойти?
> Только если открыт какой-то документ для редактирования, при закрытии, прога ведь скажет: "Сохранить изменения?" и будет ждать. Тайм-аута там нет. Или всетаки это можно както обойти?

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

"У меня в конфе, при выходе из программы, запрашивает архивирование базы для резервной копии".
Мне кажется, что архивирование по расписанию проще и надежнее. Тем более, что существуют хорошо работащие проги и утилиты для этой цели (в т.ч. бесплатные).
> Мне кажется, что архивирование по расписанию проще и надежнее.
Архивацию мы делаем отдельно.Но это не решение проблемы, потому что база уже сейчас за три месяца работы достигла размера 350 мегабайт. Общее количество бухгалтеров у нас 11 плюс пользователи других отделов около восьми. Итого примерно 20 человек. Мы, конечно, ведем воспитательную работу по работе с программой, но, понятно, что люди есть люди и кто-нибудь обязательно оставляет 1С в рабочем состоянии.

То, что посоветовал Андрей, мы сделали - работает без проблем. Ещё раз большое спасибо.
Читают тему
(гостей: 1)

Быстрый переход