Имя: Пароль:
1C
 
Отмена длительной обработки на сервере
0 Александра1с
 
12.12.23
16:20
здравствуйте, есть обработка весь код на сервере, довольно длительная из-за большого объема данных, хочу реализовать кнопку "отмена" которая отменяла бы выполнение обработки при нажатии на её пользователем, возможно ли такое реализовать и если да, то как накиньте идея пожалуйста) Пока надумала только  отлавливать нажатие клавиш ctrl+break( тоже вариант но мб можно сделать красивее кнопкой)
1 Donkey_hot
 
12.12.23
16:26
Запускайте выполнение в фоне, запоминайте идентификатор, по кнопке отмены вызывайте ДлительныеОперации.ОтменитьВыполнениеЗадания(ИдентификаторЗадания)
2 Александра1с
 
12.12.23
16:27
(1) спасибо сейчас буду вникать и реализовывать
3 lEvGl
 
12.12.23
16:27
Александра Александра, 1С оно кривое, накажи его судьбою, вставь проверку булев`о
4 Donkey_hot
 
12.12.23
16:28
(1) Или, если нет БСП, то ФоновоеЗадание.Отменить()
5 Александра1с
 
12.12.23
16:35
(4) всё гуд  БСП
6 Александра1с
 
13.12.23
15:18
и снова хочу уточнить=( код во внешней обработке как запустить процедуру в фоновое выполнение, в каком модуле она должна быть  и как корректно писать в параметрах процедуры  имя обработки?
7 Александра1с
 
13.12.23
15:18
НаименованиеЗадания = НСтр("ru = 'Запуск загрузки заказов поставщику'");
    
    ДополнительнаяОбработкаСсылка =  Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Загрузить заказы из файла Excel");
    
    ВыполняемыйМетод = "ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки";
                              
                ПараметрыЗадания = Новый Структура;
        //имя внешней обработки
    ПараметрыЗадания.Вставить("ИмяОбработки", "ВнешняяОбработка.ЗагрузкаЗаказовПоставщикамИзФайла");
        //имя экспортной серверной процедуры обработки
    ПараметрыЗадания.Вставить("ИмяМетода", "тест");
        //входящие параметры процедуры
    //ПараметрыЗадания.Вставить("ПараметрыВыполнения", );
        //признак внешней обработки
    ПараметрыЗадания.Вставить("ЭтоВнешняяОбработка", Истина);
        //ссылка на доп. обработку в базе
    ПараметрыЗадания.Вставить("ДополнительнаяОбработкаСсылка",ДополнительнаяОбработкаСсылка);
    
        //получаем пустую структуру параметров выполнения фонового задания и заполняем ее необходимыми данными
    ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
    ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
    ПараметрыВыполнения.ЗапуститьВФоне = Истина;
    ПараметрыВыполнения.Вставить("ИдентификаторФормы", УникальныйИдентификатор);
    
        //запускаем выполнение фонового задания
    СтруктураФоновогоЗадания = ДлительныеОперации.ВыполнитьВФоне(ВыполняемыйМетод, ПараметрыЗадания, ПараметрыВыполнения);
    
    Возврат СтруктураФоновогоЗадания;
8 Александра1с
 
13.12.23
15:19
вот такой код у меня сейчас, но  выдает ошибку
9 Александра1с
 
13.12.23
15:59
ап
10 Волшебник
 
13.12.23
16:18
ошибка? бывает...
11 AlexeyKh
 
13.12.23
16:37
а зачем вот этот весь код?
Дополнительную обработку, в настройках можно задать и запустить как регламентное задание!
(задать расписание, запускать и завершать вручную)
12 Начинающий Восьмерочн
 
13.12.23
16:41
(8) В дополнительных обработках фоновые задания не работают, только если перенести выполнение в общий модуль.
13 AlexeyKh
 
13.12.23
16:50
ну не знаю, БСП умеет запускать допОбработки как регламентные задания. а работа рег задания это и есть фоновое задание.
наверно с вами у нас совсем разные версии БСП
(проверено было в УТ10 и в УТ11)
14 lEvGl
 
13.12.23
16:55
если читать тему не по диагонали, то со сложившейся ситуации можно и поржать потихоньку) пока потихоньку..
15 Начинающий Восьмерочн
 
13.12.23
17:23
(13) Речь идет про фоновое задание внутри обработки, вы утверждаете что у вас фоновые задания работают внутри доп обработки ?
Релиз платформы своей скажите.
16 AlexeyKh
 
13.12.23
17:47
нет, подразумевал, что сама ВСЯ обработка является регламентным заданием.
это же легко реализуется, код помещается в модуль обработки ....
17 Начинающий Восьмерочн
 
13.12.23
17:59
(16) Таки да невнимательно посмотрел, вы правы он само там работает.