Имя: Пароль:
1C
 
Как выполнить метод ПОСЛЕ отработки ОписаниеОповещения
0 evorle145
 
18.12.24
12:48
Подскажите, плиз, никак не найду решение.

Вот такой код:

Для каждого СтрокаДанных ИЗ ТаблицаДанных Цикл
ОповещениеОЗавершении = Новый ОписаниеОповещения("ОбработатьФайлНаСервереЗавершение", ЭтотОбъект, ДопПараметры);
НачатьПомещениеФайлаНаСервер(ОповещениеОЗавершении,,,,ПутьКФайлу,  УникальныйИдентификатор);
КонецЦикла;

ПрочитатьДанные();


инициализирует к запуску N штук Процедур ОбработатьФайлНаСервереЗавершение, затем делает ПрочитатьДанные() и только потом запускает N раз Процедуры ОбработатьФайлНаСервереЗавершение

А как сделать, чтобы ПрочитатьДанные() выполнилось после обработок описания оповещения?
Если ставлю ВыполнитьОбработкуОповещения(Новый ОписаниеОповещения("ПрочитатьДанные", ЭтотОбъект)); то все равно оно выполняется раньше чем "ОбработатьФайлНаСервереЗавершение"..
1 ЕRPe
 
18.12.24
12:51
чтобы понять рекурсию нужно понять рекурсию (с)
2 DrShad
 
18.12.24
12:52
произвести поиск файлов на новом месте и в случае наличия читать
3 Ненавижу 1С
 
18.12.24
13:14
МассивОбещаний = Новый Массив;
Для каждого СтрокаДанных ИЗ ТаблицаДанных Цикл
  МассивОбещаний.Добавить(ПоместитьФайлНаСерверАсинх(...));
КонецЦикла;
Для каждого Эл из МассивОбещаний Цикл
  Результат = Ждать Эл;
  ОбработатьФайлНаСервереЗавершение(Эл);
КонецЦикла;
ПрочитатьДанные();
4 Волшебник
 
18.12.24
13:21
(1) Это красиво! Но пропущена запятая и похоже на тавтологию.

Мне нравится другое.

Салат "Рекурсия":
1. Огурцы
2. Помидоры
3. Салат "Рекурсия".
5 evorle145
 
18.12.24
13:32
(1) Понял, Спасибо! Да, получилось.

Сделал в ОбработатьФайлНаСервереЗавершение:
Если ЭтоПоследнийПеремещенныйФайл Тогда
    ОписаниеОповещения = Новый ОписаниеОповещения("ПрочитатьДанные", ЭтотОбъект);
    ВыполнитьОбработкуОповещения(ОписаниеОповещения);
КонецЕсли;

Заработало, но в этом случае чтобы определиться с "ЭтоПоследнийПеремещенныйФайл" пришлось сначала обеспокоится подсчетом общего числа файлов.

(3) понял, этот способ интересный, изучу...Спасибо!
6 Волшебник
 
18.12.24
13:34
(3)
МассивОбещаний = Новый Массив;

это просто в перлы.
Закон Брукера: Даже маленькая практика стоит большой теории.