1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | // Отслеживает завершение длительных обработок в 1С // например выгрузка/загрузка баз или обновление конфигурации ЗанятыеОкна = Этот.Определить(0, Объекты.Список, Свойства.Наименование, "Занятые" ); Для ЗанятоеОкно Из ЗанятыеОкна Цикл Ид = ЗанятоеОкно. 'Идентификатор окна' ; Если (Окна.Активно(Ид)=0) Тогда // Сообщить("Проверяем Ид = "+Ид, Окна.Занято(Ид)); Если (Окна.Есть(Ид)=1) Тогда Если (Окна.Занято(Ид)=0) Тогда ИнтервалВыполнения = Моменты.Текущий - ЗанятоеОкно. 'Момент запуска' ; ИнтервалСтр = Моменты.Строка(ИнтервалВыполнения, "чч:мм:сс" ); Если (ИнтервалВыполнения>180) Тогда Напомнить( "Обработка завершена за " +ИнтервалСтр+ " сек" , ЗанятоеОкно. 'Заголовок окна' , 0, Цвета.Цвет(254, 155, 27), 12, 800, 400, 700, 100); Конец; // Сообщить("Обработка завершена", ЗанятоеОкно.'Заголовок окна', ИнтервалСтр); ЗанятоеОкно.Неиспользуемый = 1; Конец; Иначе ЗанятоеОкно.Неиспользуемый = 1; Конец; Конец; Конец; ЗанятыеОкна.Удалить( "Неиспользуемый" , 1); Если (ЗанятыеОкна.Количество()>0) Тогда // Сообщить("Идет обработка данных в программах 1С", ЗанятыеОкна.Количество()); Конец; Окна1С = Окна.Определить(, "V8TopLevelFrame" ); Для Окно1С Из Окна1С Цикл Ид = Окно1С. 'Идентификатор окна' ; Если (Окна.Активно(Ид)=0) Тогда Если (Окна.Занято(Ид)) Тогда Стр = Строки.Строка(Ид); ЗанятоеОкно = ЗанятыеОкна.Определить(0, Объекты.Объект, Свойства. 'Идентификатор окна' , Ид); Если (ЗанятоеОкно.Новый()) Тогда ЗанятоеОкно. 'Заголовок окна' = Окно1С. 'Заголовок окна' ; ЗанятоеОкно. 'Момент запуска' = Моменты.Текущий; // Сообщить("Запуск обработки данных", ЗанятоеОкно.'Идентификатор окна', ЗанятоеОкно.'Заголовок окна'); Конец; Конец; Конец; Конец; |