По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
А это добавил в процедуру ПриНачалеРаботыСистемы()
Состояние("Инициализация внешней компоненты FormEx.dll");
Если ЗагрузитьВнешнююКомпоненту("FormEx.dll")=0 Тогда
Предупреждение("ОШИБКА ИНИЦИАЛИЗАЦИИ ВНЕШНЕЙ КОМПОНЕНТЫ FormEx.dll","!!!");
ФормЕкс=0;
Иначе
ФормЕкс=1;
глОкна=СоздатьОбъект("Окна");
глСервис = СоздатьОбъект("Сервис");
глИнформатор=СоздатьОбъект("Информатор");
//глСервис.ВключитьРаскраскуТаблиц();
глСервис.ВключитьРаскраскуТаблиц();
глСервис.ИспользоватьПланРаскраски(1);
Если ПустоеЗначение(Константа.ИнтервалЗакрытия)=0 Тогда
глСервис.ОбработкаОжидания("Автозакрытие",60000);
КонецЕсли;
Если НазваниеНабораПрав()="НАЧАЛЬНИК_АВТОМОЙКИ" Тогда
глОкна.ДоступностьМеню("&Сервис",0);
глОкна.ДоступностьМеню("&Новый Ctrl+N",0);
глОкна.ДоступностьМеню("&Открыть Ctrl+O",0);
глОкна.ДоступностьМеню("&Сохранить Ctrl+S",0);
глОкна.ДоступностьМеню("&Сохранить Ctrl+S",0);
глОкна.ДоступностьМеню("Сохранить &как",0);
КонецЕсли;
КонецЕсли;
Состояние("Инициализация внешней компоненты ROM-Mail.dll");
Если ЗагрузитьВнешнююКомпоненту("ROM-Mail.dll")=0 Тогда
Предупреждение("ОШИБКА ИНИЦИАЛИЗАЦИИ ВНЕШНЕЙ КОМПОНЕНТЫ ROM-Mail.dll","!!!");
ПочтаВК=0;
Иначе
ПочтаВК=1;
КонецЕсли;
Показать
(4) areavel, Если дело только в безопасности- настраивайте блокировки компьютера. Либо ищите внешние компоненты блокировки сеанса в 1с. Если нужно депримировать нежелающих работать- тогда по другому: пишите параллельный лог файл по своей структуре, а обработками его разбирайте...
(11) AHDP, Запускай базу и вали ее аварийно - индексы и поломаются, долго ждать не придется. А за ними и сами дбфы не заставят себя ждать ...
Можешь, для верности, в момент аварии записывать что-нибудь в базу или документ проводить/распроводить.
И, главное: делай все это на рабочей базе, любитель русской рулетки и одноруких бандитов ...
Можешь, для верности, в момент аварии записывать что-нибудь в базу или документ проводить/распроводить.
И, главное: делай все это на рабочей базе, любитель русской рулетки и одноруких бандитов ...
Я примерно так делал...
Процедура Автозакрытие()
Перем Конт;
Если ФормЕкс=0 Тогда
Возврат;
Иначе
//Сообщить(ТипЗначения(глИнформатор));
//Сообщить(ТипЗначенияСтр(глИнформатор));
ВремяПростоя=глИнформатор.ПолучитьВремяПростояСистемы()/60000;
//Сообщить(ВремяПростоя);
текИнтервалЗакрытия=?(ПустоеЗначение(глПользователь.ЗакрытьПриПростое)=1,Константа.ИнтервалЗакрытия,глПользователь.ЗакрытьПриПростое);
Если ВремяПростоя>=текИнтервалЗакрытия Тогда
Сообщить("Тут надо выходить из системы ;-)");
НеОткрытПериод=1;
текЧас=0;
ТекущееВремя(текЧас);
Если текЧас>21 Тогда
спрПользователи=СоздатьОбъект("Справочник.Пользователи");
спрПользователи.ВыбратьЭлементы();
Найден=спрПользователи.НайтиЭлемент(глПользователь);
Если Найден=1 Тогда
спрПользователи.ТекущийЭлемент();
спрПользователи.Склероз=1;
спрПользователи.Записать();
КонецЕсли;
КонецЕсли;
Если Число(НеудачнаяПопыткаЗакрытия)=10 Тогда
WShell=СоздатьОбъект("WScript.Shell");
WShell.SendKeys("{ESC}");
//Предупреждение("Закрываю 1С",5);
WShell.SendKeys("%{F4}");
КонецЕсли;
ЗавершитьРаботуСистемы(0);
НеудачнаяПопыткаЗакрытия=10;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Показать
Вот решение, если кому-то пригодиться:
Процедура Таймер() Экспорт
Простой = Информатор.ПолучитьВремяПростояСистемы();
//Сообщить("ПрошлоВремени = <"+ПрошлоВремени+">");
Простой=Цел(Простой/1000);
Форма.Обновить();
Сообщить(Простой);
Если Простой>10 Тогда
Сообщить("Застоялись больше, чем на 10 сек.");
//Форма.Закрыть();
//ЗавершитьРаботуСистемы(0);
КонецЕсли;
КонецПроцедуры
//*******************************************
Процедура Сформировать()
Окно=СоздатьОбъект("Окна");
Окно.СтильОкна(Форма,Стиль);
РасширениеФормы = СоздатьОбъект("РасширениеФормы");
РасширениеФормы.ОбработкаОжидания("Таймер", 50);
Информатор = СоздатьОбъект("Информатор");
КонецПроцедуры
Процедура ПриОткрытии()
Если ЗагрузитьВнешнююКомпоненту("1cpp.dll") = 0 Тогда //ZNH
Сообщить("Неудачная попытка загрузить 1cpp.dll Некоторые функции будут недоступны !!!");
КонецЕсли;
Если ЗагрузитьВнешнююКомпоненту("Formex.dll") = 0 Тогда //ZNH
Сообщить("Неудачная попытка загрузить Formex.dll Некоторые функции будут недоступны !!!");
КонецЕсли;
КонецПроцедуры
Процедура Таймер() Экспорт
Простой = Информатор.ПолучитьВремяПростояСистемы();
//Сообщить("ПрошлоВремени = <"+ПрошлоВремени+">");
Простой=Цел(Простой/1000);
Форма.Обновить();
Сообщить(Простой);
Если Простой>10 Тогда
Сообщить("Застоялись больше, чем на 10 сек.");
//Форма.Закрыть();
//ЗавершитьРаботуСистемы(0);
КонецЕсли;
КонецПроцедуры
//*******************************************
Процедура Сформировать()
Окно=СоздатьОбъект("Окна");
Окно.СтильОкна(Форма,Стиль);
РасширениеФормы = СоздатьОбъект("РасширениеФормы");
РасширениеФормы.ОбработкаОжидания("Таймер", 50);
Информатор = СоздатьОбъект("Информатор");
КонецПроцедуры
Процедура ПриОткрытии()
Если ЗагрузитьВнешнююКомпоненту("1cpp.dll") = 0 Тогда //ZNH
Сообщить("Неудачная попытка загрузить 1cpp.dll Некоторые функции будут недоступны !!!");
КонецЕсли;
Если ЗагрузитьВнешнююКомпоненту("Formex.dll") = 0 Тогда //ZNH
Сообщить("Неудачная попытка загрузить Formex.dll Некоторые функции будут недоступны !!!");
КонецЕсли;
КонецПроцедуры
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот