Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Запуск обработки при начале работы системы (http://forums.kuban.ru/f1040/zapusk_obrabotki_pri_nachale_raboty_sistemy-8362750.html)

mavayka 19.06.2017 14:47

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

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

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

bma1 19.06.2017 15:40

А может запустить все это в фоновом режиме, чтоб не грузить пользователя, а то он случаем до конца рабочего дня прождет, пока обработка обработается...

mavayka 19.06.2017 16:06

Нельзя работать пока не обработается

roma n 19.06.2017 16:08

БСП
Обновление версии ИБ

VZ 19.06.2017 16:47

И нафига мучатся, нафига БСП, если можно просто запулить скрипт консольного запуска с прицепом внешней обормотки epf?
Обновили - запускаем скрипт.
Или просто: закончили обновление - запускаем обработку. чО то проблем не вижу.

VZ 19.06.2017 16:56

И вообще ЗавершитьРаботуСистемы(Ложь,Ложь,"")

EarlyBird 19.06.2017 18:09

(4) с запуском внешних обработок сейчас много гемора, в последних платформах (безопасность)
но вообще (1) прав, надо в регламентном задании такое делать

EarlyBird 19.06.2017 18:10

[quote=mavayka;44377497]Нельзя работать пока не обработается[/quote]
а чё там обрабатывается у вас?
курсы валют загружаются? дак сделай в регламентном задании.
или чо?

VZ 19.06.2017 20:19

6-Ирли Бёрд > Параметр DisableUnsafeActionProtection в Conf.cfg

Бертыш 20.06.2017 04:44

Не вкурил в вопрос к какой версии платформы относится сабж. Если 7.7 то одно, а если 8.3 то смотри в сторону асинхронных вызовов... типа поделючить Обработчик

Бертыш 20.06.2017 04:45

А если получитьформк ито восьмёрка. Но если там асинхронные вызовы то в эту сторону и ковыряйте

VZ 20.06.2017 11:33

9-Бертыш > Смотрим (0): "В обработку добавила форму (управляемую). В модуле управляемого приложения,...."
Ну какая "семерка" :)
А еще платформа, поди, 8.3.9.2016 или выше. Вот и мается...
Решение не в конфиге...

roma n 20.06.2017 12:53

4-VZ > в БСП задача решается несколькими строками кода.
Если она (БСП) еть уже в составе конфигурации, разумеется. Впиливать БСП ради текущей задачи я и не предлагаю :)

который не честный 20.06.2017 13:34

В 77 есть ОбработкаОжидания. Я бы сделал так - настроил обработку ожидания на 1 секунду - форма открывается и только после этого начинает работать нужное. По завершении - форму закрыть.

который не честный 20.06.2017 13:35

Что есть в 8 я не помню, но думаю аналог найёшь.

VZ 20.06.2017 14:45

12-roma n > Ну куда же нам без БСП-то? :)
Эээ... Не поделишься парой строк? В conf.cfg сам не хочу.

roma n 20.06.2017 15:28

В ПриДобавленииОбработчиковОбновления описание обработчика. Как-то так:

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

в процедуре-обработчике - вызов обработки.

VZ 20.06.2017 16:33

16-roma n > Спасибо

mavayka 22.06.2017 10:18

(VZ) надо , чтобы обновление проходило полностью автоматически, с внешней обработкой не подойдет вариант, к сожалению. Да, платформа 8.3.10.2168.
(roma n) БСП нет в составе.
Пытаюсь все-таки добить свой вариант.
Если открывать форму обработки модально, получается , но не меняется текст на форме. Мне нужна индикация процесса обновления.

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

Действия 1,2,3 выполняются, а заголовок не меняется.

VZ 22.06.2017 14:18

18-mavayka > Индикация прекрасно работает при исполнении на сервере. На инфостарте у Душелова есть работающий пример.


Текущее время: 12:31. Часовой пояс GMT +3.