К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Запуск обработки при начале работы системы

0 - 19.06.2017 - 14:47
Конфигурация самописная.
Есть обработка, которая должна запускаться при первом запуске после обновления на конкретную версию.
Выполнение этой обработки занимает какое то время. Нужно чтобы пользователь во время выполнения не видел просто серый экран. В обработку добавила форму (управляемую). В модуле управляемого приложения, в процедуру ПриНачалеРаботыСистемы() добавляю после проверки на номер релиза:
МояФорма = ПолучитьФорму("Обработка.МояОбработка.Форма.Форма" );
ОткрытьФорму(МояФорма);
МояФорма.Закрыть();
При открытии формы выполняются нужные действия

Процедура ПриОткрытии(Отказ)
Процедура_Действие1();
Элементы.Элемент1.Заголовок = "Подождите...Выполняется действие1";
Процедура_Действие2();
Элементы.Элемент1.Заголовок = "Подождите...Выполняется действие2";
Процедура_Действие3();
Элементы.Элемент1.Заголовок = "Выполнено обновление";
КонецПроцедуры

Все выполняется, но формы я не вижу, тот же серый экран. Если открывать форму модально, то Окно появляется, но его нужно закрывать. Как вывести окно в момент выполнения обработки, чтобы по окончании выполнения оно закрылось cамостоятельно?



1 - 19.06.2017 - 15:40
А может запустить все это в фоновом режиме, чтоб не грузить пользователя, а то он случаем до конца рабочего дня прождет, пока обработка обработается...
2 - 19.06.2017 - 16:06
Нельзя работать пока не обработается
3 - 19.06.2017 - 16:08
БСП
Обновление версии ИБ
Гость
4 - 19.06.2017 - 16:47
И нафига мучатся, нафига БСП, если можно просто запулить скрипт консольного запуска с прицепом внешней обормотки epf?
Обновили - запускаем скрипт.
Или просто: закончили обновление - запускаем обработку. чО то проблем не вижу.
Гость
5 - 19.06.2017 - 16:56
И вообще ЗавершитьРаботуСистемы(Ложь,Ложь,"")
6 - 19.06.2017 - 18:09
(4) с запуском внешних обработок сейчас много гемора, в последних платформах (безопасность)
но вообще (1) прав, надо в регламентном задании такое делать
7 - 19.06.2017 - 18:10
Цитата:
Сообщение от mavayka Посмотреть сообщение
Нельзя работать пока не обработается
а чё там обрабатывается у вас?
курсы валют загружаются? дак сделай в регламентном задании.
или чо?
Гость
8 - 19.06.2017 - 20:19
6-Ирли Бёрд > Параметр DisableUnsafeActionProtection в Conf.cfg
Гость
9 - 20.06.2017 - 04:44
Не вкурил в вопрос к какой версии платформы относится сабж. Если 7.7 то одно, а если 8.3 то смотри в сторону асинхронных вызовов... типа поделючить Обработчик
Гость
10 - 20.06.2017 - 04:45
А если получитьформк ито восьмёрка. Но если там асинхронные вызовы то в эту сторону и ковыряйте
Гость
11 - 20.06.2017 - 11:33
9-Бертыш > Смотрим (0): "В обработку добавила форму (управляемую). В модуле управляемого приложения,...."
Ну какая "семерка" :)
А еще платформа, поди, 8.3.9.2016 или выше. Вот и мается...
Решение не в конфиге...
12 - 20.06.2017 - 12:53
4-VZ > в БСП задача решается несколькими строками кода.
Если она (БСП) еть уже в составе конфигурации, разумеется. Впиливать БСП ради текущей задачи я и не предлагаю :)
13 - 20.06.2017 - 13:34
В 77 есть ОбработкаОжидания. Я бы сделал так - настроил обработку ожидания на 1 секунду - форма открывается и только после этого начинает работать нужное. По завершении - форму закрыть.
14 - 20.06.2017 - 13:35
Что есть в 8 я не помню, но думаю аналог найёшь.
Гость
15 - 20.06.2017 - 14:45
12-roma n > Ну куда же нам без БСП-то? :)
Эээ... Не поделишься парой строк? В conf.cfg сам не хочу.
16 - 20.06.2017 - 15:28
В ПриДобавленииОбработчиковОбновления описание обработчика. Как-то так:

QB_Обработчик = Обработчики.Добавить();
QB_Обработчик.Версия = "2.0.0.3";
QB_Обработчик.Процедура = "QB_Привилегированный.ОбработатьДанныеРС_ДатыОтпра вки";

в процедуре-обработчике - вызов обработки.
Гость
17 - 20.06.2017 - 16:33
16-roma n > Спасибо
18 - 22.06.2017 - 10:18
(VZ) надо , чтобы обновление проходило полностью автоматически, с внешней обработкой не подойдет вариант, к сожалению. Да, платформа 8.3.10.2168.
(roma n) БСП нет в составе.
Пытаюсь все-таки добить свой вариант.
Если открывать форму обработки модально, получается , но не меняется текст на форме. Мне нужна индикация процесса обновления.

Процедура ПриОткрытии(Отказ)
Процедура_Действие1();
Элементы.Элемент1.Заголовок = "Подождите...Выполняется действие1";
ОбновитьОтображениеДанных();
Процедура_Действие2();
Элементы.Элемент1.Заголовок = "Подождите...Выполняется действие2";
ОбновитьОтображениеДанных();
Процедура_Действие3();
Элементы.Элемент1.Заголовок = "Выполнено обновление";
КонецПроцедуры

Действия 1,2,3 выполняются, а заголовок не меняется.
Гость
19 - 22.06.2017 - 14:18
18-mavayka > Индикация прекрасно работает при исполнении на сервере. На инфостарте у Душелова есть работающий пример.


К списку вопросов
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск




Copyright ©, Все права защищены