Как задать вопрос в цикле?

1. VID1234 146 20.03.23 08:24 Сейчас в теме
Здравствуйте, есть такой код:
Идентификтор = "";
	Для Каждого Стр2 Из Идентификаторы Цикл 
		НайдемСотрудника = ПоискПоИд(Стр2.Идентификатор);
		Если Не ЗначениеЗаполнено(НайдемСотрудника) Тогда
			ЗадатьВопросАсинх(Стр2.Идентификатор)
		Иначе
			Отбор = Новый Структура();
			Отбор.Вставить("Идентификатор", Стр2.Идентификатор);
			Резолт = ТаблицаНаФорме.НайтиСтроки(Отбор);
			Для Каждого Элем Из Резолт Цикл	
			НСтр = Таб.Добавить();
			НСтр.Сотрудник = НайдемСотрудника;
			КонецЦикла;
		КонецЕсли;			
	КонецЦикла;

&НаКлиенте
Процедура Демо_ЗадатьВопросАсинх(Стр)
	
		Парам = Новый Структура;
		Парам.Вставить("ИД", Стр);
			
		Отбор = Новый Структура();
		Отбор.Вставить("Идентификатор", Стр);
		Резолт = ТаблицаНаФорме.НайтиСтроки(Отбор);
		
		ПоказатьВопрос(Новый ОписаниеОповещения("ПередЗакрытиемЗавершение", ЭтотОбъект, Парам),
		                                            "Идентификатор " + Стр + ", для сотрудника " + Резолт[0].Имя + " не найден. Назначить сотруднику идентификатор?", РежимДиалогаВопрос.ДаНет,,,,);

	
КонецПроцедуры

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

Как можно останавливать процесс, до обработки всего кода, а после продолжить цикл. В коде происходит поиск сотрудника по ИД, если находит, то просто добавляем данные в ТЧ, а если нет, нужно спросить пользователя, что привязать ли ИД к сотруднику, если да, то открываем форму справочника сотрудники, выбираем и записываем ид в доп реквизит, а если нет переходим к следующей итерации. Сейчас получается, что открываются сразу куча вопросов и уже потом их обрабатываю, через асинх тоже пробовал, да окно открывается и асинх ждет оповещения, но я нажимаю да, открывается окно справочника и сверху окно с вопросом, блокируя форму справочника сотрудника.
По теме из базы знаний
Найденные решения
6. user1863362 20.03.23 09:18 Сейчас в теме
(5)
отдельную форму
Да. Собираешь всех ненайденных, показываешь табличку с двумя колонками - идентификатор и пустой сотрудник. Они просто выбирают во второй колонке сотрудника и всё. По одной кнопке перезаписываешь сразу всех.

Только нужна будет еще одна проверка на уникальность содтрудников, что они один идентификатор двум сотрудникам не назначили
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1863362 20.03.23 08:36 Сейчас в теме
Набрать всех ненайденных, показать форму сопоставления сразу всех, связать или создать данные за один прием.

Пользователь будет тебе даже благодарен.
vv2; user1278383; +2 Ответить
5. VID1234 146 20.03.23 09:12 Сейчас в теме
(2) А как это примерно? Создать в обработке отдельную форму, добавить туда все ИД, а второй колонкой сотрудники? где поиском выбирать нужных?
6. user1863362 20.03.23 09:18 Сейчас в теме
(5)
отдельную форму
Да. Собираешь всех ненайденных, показываешь табличку с двумя колонками - идентификатор и пустой сотрудник. Они просто выбирают во второй колонке сотрудника и всё. По одной кнопке перезаписываешь сразу всех.

Только нужна будет еще одна проверка на уникальность содтрудников, что они один идентификатор двум сотрудникам не назначили
7. VID1234 146 20.03.23 09:19 Сейчас в теме
(6)Ок. Спасибо. Так и сделаю.
3. user1863362 20.03.23 08:46 Сейчас в теме
И еще.
Дай-ка догадаюсь: ПоискПоИд(Стр2.Идентификатор) делает запрос в базу? Не надо так, запросы в цикле это нехорошо =)
4. VID1234 146 20.03.23 09:10 Сейчас в теме
(3) Здравствуйте. Это я знаю, пока ищу решение сделал так, чтобы далее продолжить код.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот