|   |   | 
| 
 | Как сделать не модальный вызов перед формой выбора элемента на УФ? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Elf56 24.10.17✎ 14:04 | 
        Всем доброго времени суток.
 Имеется 1С:Предприятие 8.3 (8.3.10.2466) Справочник на управляемых формах. Есть реквизит формы ВладелецПомещения (типа Справочник.Контрагенты) который отображается на форме. Задача в том, чтобы сделать не модальный вопрос с кнопками Да Нет, перед открытием формы выбора так, что если пользователь выбирает Нет не чего не происходит т.е. СтандартнаяОбработка = ЛОЖЬ, а если пользователь нажимает да, то открывается форма выбора и пользователь выбирает элемент справочника. Но вот в чем загвостка перед вопросом форма выбора не должна открываться ведь это не модальный вопрос. Пробую так. &НаКлиенте Процедура ОбработатьВопросСменыВладельца(Результат, ДополнительныеПараметры) Экспорт Если Результат = КодВозвратаДиалога.Да Тогда ВладелецПомещенияНачалоВыбора(ДополнительныеПараметры.Элемент, ДополнительныеПараметры.ДанныеВыбора, ДополнительныеПараметры.СтандартнаяОбработка, ДополнительныеПараметры.НеПервыйВызов) КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ВладелецПомещенияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка, НеПервыйВызов = НЕОПРЕДЕЛЕНО) Если ЕстьВладелейПомещенияНаДату(Объект.Владелец, ДатаАктуальности, Объект.Ссылка) = ИСТИНА И НеПервыйВызов = НЕОПРЕДЕЛЕНО Тогда НеПервыйВызов = ИСТИНА; ДополнительныеПараметры = Новый Структура(); ДополнительныеПараметры.Вставить("Элемент", Элемент); ДополнительныеПараметры.Вставить("ДанныеВыбора", ДанныеВыбора); ДополнительныеПараметры.Вставить("СтандартнаяОбработка", СтандартнаяОбработка); ДополнительныеПараметры.Вставить("НеПервыйВызов", НеПервыйВызов); СтандартнаяОбработка = ЛОЖЬ; ТекстВопроса = НСтр("ru='ВНИМАНИЕ! На дату актуальности по данному помещению уже есть владелец |Вы уверены, что хотите сменить Владельца?'"); Обработчик = Новый ОписаниеОповещения("ОбработатьВопросСменыВладельца", ЭтаФорма, ДополнительныеПараметры); ПоказатьВопрос(Обработчик, ТекстВопроса, РежимДиалогаВопрос.ДаНет, 20, КодВозвратаДиалога.Да, НСтр("ru='Подтверждение смены владельца'")); Иначе СтандартнаяОбработка = ИСТИНА; КонецЕсли; НеПервыйВызов = НЕОПРЕДЕЛЕНО; КонецПроцедуры На кнопку Нет все прекрасно срабатывает вернее не чего не срабатывает как и должно быть. На кнопку Да также не чего не срабатывает ))), а должно открыться форма выбора. Как быть? Всем заранее спасибо за ответы. | |||
| 1
    
        elCust 24.10.17✎ 14:16 | 
        Прочитайте вот здесь http://its.1c.ru/docs/v8nonmodal/#19 про блокирующие формы.
 Думаю найдете решение. | |||
| 2
    
        Elf56 24.10.17✎ 14:27 | 
        Все оказалось куда проще просто в процедуру обработчика вопроса надо было сделать вот так 
 &НаКлиенте Процедура ОбработатьВопросСменыВладельца(Результат, ДополнительныеПараметры) Экспорт Если Результат = КодВозвратаДиалога.Да Тогда ОткрытьФорму("Справочник.Контрагенты.ФормаВыбора", , ДополнительныеПараметры.Элемент); КонецЕсли; КонецПроцедуры Где ДополнительныеПараметры это элемент формы из которого вызывается вопрос | |||
| 3
    
        Elf56 24.10.17✎ 14:28 | 
        ДополнительныеПараметры.Элемент надо заменить на ДополнительныеПараметры     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |