СозданиеСвязанныхОбъектов не закрывается форма выбора - что создаем

1. luda33 19.08.21 16:36 Сейчас в теме
Есть внешняя обработка вида СозданиеСвязанныхОбъектов
Создать на основании - создание связанных - там 2 шт, выбираю нужный - все ок - работает
Но при этом после выбора не закрывается форма выбора связанных объектов, которые можно создать - так и виси пока не закроешь
Это особенность БСП?
JohnK; abc_86@bk.ru; +2 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Xershi 1547 11.12.23 16:56 Сейчас в теме
Код в общей форме:
ДополнительныеОтчетыИОбработки.ВыполнитьОбработкуПоПараметрам()

Процедура ВыполнитьОбработкуПоПараметрам()
	ДанныеОбработки = Элементы.ТаблицаКоманд.ТекущиеДанные;
	Если ДанныеОбработки = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	ВыполняемаяКоманда = Новый Структура(
		"Ссылка, Представление, 
		|Идентификатор, ВариантЗапуска, ПоказыватьОповещение, 
		|Модификатор, ОбъектыНазначения, ЭтоОтчет, Вид");
	ЗаполнитьЗначенияСвойств(ВыполняемаяКоманда, ДанныеОбработки);
	Если НЕ ЭтоГлобальныеОбработки Тогда
		ВыполняемаяКоманда.ОбъектыНазначения = ОбъектыНазначения.ВыгрузитьЗначения();
	КонецЕсли;
	ВыполняемаяКоманда.ЭтоОтчет = ЭтоОтчеты;
	ВыполняемаяКоманда.Вид = ВидОбработок;
	
	Если ДанныеОбработки.ВариантЗапуска = ПредопределенноеЗначение("Перечисление.СпособыВызоваДополнительныхОбработок.ОткрытиеФормы") Тогда
		
		ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьОткрытиеФормыОбработки(ВыполняемаяКоманда, ВладелецФормы, ВыполняемаяКоманда.ОбъектыНазначения);
		
	ИначеЕсли ДанныеОбработки.ВариантЗапуска = ПредопределенноеЗначение("Перечисление.СпособыВызоваДополнительныхОбработок.ВызовКлиентскогоМетода") Тогда
		
		ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьКлиентскийМетодОбработки(ВыполняемаяКоманда, ВладелецФормы, ВыполняемаяКоманда.ОбъектыНазначения);
		
	ИначеЕсли ВидОбработок = ПредопределенноеЗначение("Перечисление.ВидыДополнительныхОтчетовИОбработок.ПечатнаяФорма")
		И ДанныеОбработки.Модификатор = "ПечатьMXL" Тогда
		
		ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьОткрытиеПечатнойФормы(ВыполняемаяКоманда, ВладелецФормы, ВыполняемаяКоманда.ОбъектыНазначения);
		
	ИначеЕсли ДанныеОбработки.ВариантЗапуска = ПредопределенноеЗначение("Перечисление.СпособыВызоваДополнительныхОбработок.ВызовСерверногоМетода")
		Или ДанныеОбработки.ВариантЗапуска = ПредопределенноеЗначение("Перечисление.СпособыВызоваДополнительныхОбработок.СценарийВБезопасномРежиме") Тогда
		
		// Изменение элементов формы
		Элементы.ПоясняющаяДекорация.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = 'Выполняется команда ""%1""...'"),
			ДанныеОбработки.Представление);
		Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаВыполненияОбработки;
		Элементы.НастроитьСписок.Видимость = Ложь;
		Элементы.ВыполнитьОбработку.Видимость = Ложь;
		
		// Вызов сервера только после перехода формы в консистентное состояние.
		ПодключитьОбработчикОжидания("ВыполнитьСерверныйМетодОбработки", 0.1, Истина);
		
	КонецЕсли;
	
КонецПроцедуры
Показать

Только при серверном вызове выполняется код закрытия окна обработки связанных объектов.
Решили проверку, созданием запроса на уже созданные реквизит по уникальному идентификатору.
И при повторном нажатии открывается эта же форма.
Оставьте свое сообщение

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