Небрежные пользователи
04.04.2006
17:46
#1
Сначала вопрос старожилам форумов или модераторам: если возможность перекачать все вопросы или темы форумов на свой компьютер? (чтобы не задавать вопросы, которые уже обсуждались).
Теперь собственно задача: при работе в сети, некоторые пользователи оставляют программу в рабочем режиме. Для внесения изменений в конфигурацию приходится бегать по отделам и выходить из программы там, где пользователь оставил открытой 1С. Наконец, открытая программа при сбое электропитания, может привести к потере данных. Можно ли написать такую отслеживающую процедуру, которая по истечении определенного времени бездействия бухгалтера, сначала задает вопрос... ну, типа: "Вы работаете или нет? Через две минуты программа закроется". И через эти две минуты 1С автоматически завершает работу, корректно закрывая даже открытые документы или справочники.
Заранее спасибо. Если возможно, укажите примерное решение проблемы, пожалуйста.
Теперь собственно задача: при работе в сети, некоторые пользователи оставляют программу в рабочем режиме. Для внесения изменений в конфигурацию приходится бегать по отделам и выходить из программы там, где пользователь оставил открытой 1С. Наконец, открытая программа при сбое электропитания, может привести к потере данных. Можно ли написать такую отслеживающую процедуру, которая по истечении определенного времени бездействия бухгалтера, сначала задает вопрос... ну, типа: "Вы работаете или нет? Через две минуты программа закроется". И через эти две минуты 1С автоматически завершает работу, корректно закрывая даже открытые документы или справочники.
Заранее спасибо. Если возможно, укажите примерное решение проблемы, пожалуйста.
04.04.2006
18:22
#3
Ага. Я примерно так и предпологал. Но я, как бы это сказать, "первокласник" в 1С. Поэтому у меня что-то не получатся написать такую процедуру. Может у кого уже написана подобная программулька, буду очень благодарен, если мне приведут её пример (там, может быть, всего-то несколько строк).
05.04.2006
03:22
#4
"У меня сделано так:
Процедура П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
"
Процедура П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
"
05.04.2006
12:02
#5
Андрей! Большое спасибо!
Сейчас внесем в нашу конфигурацию и попробуем. Чуть позже напишу отзыв.
Жалко, что только решена очень важная проблема "выброса" пользователей.
Однако, важно отключать пользователя, если он не работает в программе долгое время. Буквально вчера был в одной организации, где эксплуатируется 1С. Тамошний пользователь оставил программу открытой (сетки нет) и произошел скачок напряжений. При этом запортилась немного FAT таблица. И, хотя программный модуль не пострадал, но многие базы нарушились. Пришлось мне в ручную их восстанавливать, что удалось мне лишь отчасти. Понятно, что такая авария могла произойти и во время работы пользователя, но в том-то и дело, что бухгалтер ушел тогда на обед, а после уже "...базы запорчены".
Сейчас внесем в нашу конфигурацию и попробуем. Чуть позже напишу отзыв.
Жалко, что только решена очень важная проблема "выброса" пользователей.
Однако, важно отключать пользователя, если он не работает в программе долгое время. Буквально вчера был в одной организации, где эксплуатируется 1С. Тамошний пользователь оставил программу открытой (сетки нет) и произошел скачок напряжений. При этом запортилась немного FAT таблица. И, хотя программный модуль не пострадал, но многие базы нарушились. Пришлось мне в ручную их восстанавливать, что удалось мне лишь отчасти. Понятно, что такая авария могла произойти и во время работы пользователя, но в том-то и дело, что бухгалтер ушел тогда на обед, а после уже "...базы запорчены".
06.04.2006
05:06
#6
Вот и пообедали называется...
У меня в конфе, при выходе из программы, запрашивает архивирование базы для резервной копии. Из конфигуратора никто не хочет архивировать.
Говорят сильно замудрёно.
А на счет "глазоняк" мне понравилось. Надо будет себе в конфу сделать что-то подобное
Только если открыт какой-то документ для редактирования, при закрытии, прога ведь скажет: "Сохранить изменения?" и будет ждать. Тайм-аута там нет. Или всетаки это можно както обойти?
У меня в конфе, при выходе из программы, запрашивает архивирование базы для резервной копии. Из конфигуратора никто не хочет архивировать.
Говорят сильно замудрёно.
А на счет "глазоняк" мне понравилось. Надо будет себе в конфу сделать что-то подобное
06.04.2006
11:17
#7
> Только если открыт какой-то документ для редактирования, при закрытии, прога ведь скажет: "Сохранить изменения?" и будет ждать. Тайм-аута там нет. Или всетаки это можно както обойти?
Вот именно. Как раз с такой проблемой я и столкнулся. Как должна вести себя программа при закрытии в рабочем режиме даже не одного окна или документа, а нескольких? Ладно, пусть ни один документ не запишется (сам виноват пользователь, что заснул), но как создать принудительный выход из программы по таймеру последней реакции пользователя?
Вот именно. Как раз с такой проблемой я и столкнулся. Как должна вести себя программа при закрытии в рабочем режиме даже не одного окна или документа, а нескольких? Ладно, пусть ни один документ не запишется (сам виноват пользователь, что заснул), но как создать принудительный выход из программы по таймеру последней реакции пользователя?
06.04.2006
17:03
#8
"У меня в конфе, при выходе из программы, запрашивает архивирование базы для резервной копии".
Мне кажется, что архивирование по расписанию проще и надежнее. Тем более, что существуют хорошо работащие проги и утилиты для этой цели (в т.ч. бесплатные).
Мне кажется, что архивирование по расписанию проще и надежнее. Тем более, что существуют хорошо работащие проги и утилиты для этой цели (в т.ч. бесплатные).
07.04.2006
19:19
#9
> Мне кажется, что архивирование по расписанию проще и надежнее.
Архивацию мы делаем отдельно.Но это не решение проблемы, потому что база уже сейчас за три месяца работы достигла размера 350 мегабайт. Общее количество бухгалтеров у нас 11 плюс пользователи других отделов около восьми. Итого примерно 20 человек. Мы, конечно, ведем воспитательную работу по работе с программой, но, понятно, что люди есть люди и кто-нибудь обязательно оставляет 1С в рабочем состоянии.
То, что посоветовал Андрей, мы сделали - работает без проблем. Ещё раз большое спасибо.
Архивацию мы делаем отдельно.Но это не решение проблемы, потому что база уже сейчас за три месяца работы достигла размера 350 мегабайт. Общее количество бухгалтеров у нас 11 плюс пользователи других отделов около восьми. Итого примерно 20 человек. Мы, конечно, ведем воспитательную работу по работе с программой, но, понятно, что люди есть люди и кто-нибудь обязательно оставляет 1С в рабочем состоянии.
То, что посоветовал Андрей, мы сделали - работает без проблем. Ещё раз большое спасибо.
Журналы как средство выборкиВ зарплате не рассчитывается больничный лист 2 дня за счет работодателя.
Читают тему
(гостей: 1)