|
8.3, УФ, отказ от модальности | ☑ | ||
---|---|---|---|---|
0
Тихий омут
19.08.15
✎
09:35
|
Прошу сильно не пинать за длинную портянку, разве что в направлении чего почитать и где подсмотреть:)
Для конфы без отказа от модальности был разработан такой участок кода одной из форм, все процедуры &НаКлиенте (код привожу в сокращении, передавая только важную для вопроса суть): Функция ВвестиСтроковыеДанные() Рез=ВвестиСтроку(); #Область СпецДействияФункцииВвестиСтроковыеДанные ///...некоторые действия #КонецОбласти Возврат Рез; КонецФункции Процедура П1() Рез=ВвестиСтроковыеДанные(); Если НЕ Рез Тогда Возврат КонецЕсли; ///...некоторые действия, специфичные именно для процедуры П1 КонецПроцедуры //П1 Процедура П2() Рез=ВвестиСтроковыеДанные(); Если НЕ Рез Тогда Возврат КонецЕсли; ///...некоторые действия, специфичные именно для процедуры П2 КонецПроцедуры //П2 Процедура П3() Рез=ВвестиСтроковыеДанные(); Если НЕ Рез Тогда Возврат КонецЕсли; ///...некоторые действия, специфичные именно для процедуры П3 КонецПроцедуры //П3 новая версия функции ввода строки с отказом от модальности: Процедура ВвестиСтроковыеДанные(ОписаниеОповещенияПослеВводаСтроки) Стр=""; ПоказатьВводСтроки(ОписаниеОповещенияПослеВводаСтроки,Стр); КонецФункции Процедура П1() ОписаниеОповещения=Новый ОписаниеОповещения("ПослеВводаСтрокиДляП1"); ВвестиСтроковыеДанные(ОписаниеОповещения); ///...здесь БЫЛИ некоторые действия, специфичные именно для процедуры П1 после ввода строки КонецПроцедуры //П1 Процедура ПослеВводаСтрокиДляП1(Результат,ДопПараметры) #Область СпецДействияФункцииВвестиСтроковыеДанные ///...некоторые действия #КонецОбласти ///...некоторые действия, специфичные именно для процедуры П1 КонецПроцедуры При переводе кода в режим отказа от модальности проблема в том, как избавиться от дублирования кода, выполняемого в функции ВвестиСтроковыеДанные в области #СпецДействияФункцииВвестиСтроковыеДанные. Хотелось бы, только не представляю, как - сам вопрос в комментарии перед концом последней процедуры: Процедура П1() ОписаниеОповещения=Новый ОписаниеОповещения("ПослеВводаСтрокиДляП1"); ВвестиСтроковыеДанные(ОписаниеОповещения); КонецПроцедуры //П1 Процедура ПослеВводаСтрокиДляП1(Результат,ДопПараметры) ///...некоторые действия, специфичные именно для процедуры П1 КонецПроцедуры Процедура ВвестиСтроковыеДанные(ОписаниеОповещенияПослеВводаСтроки) ДопПарамеры=Новый Структура; ДопПараметры.Добавить("ПроцедураВызываемаяПослеВвода",ОписаниеОповещенияПослеВводаСтроки); ОписаниеОповещения("ОбработкаОповещенияВводаСтроковыхДанных",ЭтотОбъект,ДопПараметры); Стр=""; ПоказатьВводСтроки(ОписаниеОповещенияПослеВводаСтроки,Стр); КонецФункции Процедура ОбработкаОповещенияВводаСтроковыхДанных(Результат, ДопПараметры) #Область СпецДействияФункцииВвестиСтроковыеДанные ///...некоторые действия #КонецОбласти ОписаниеОповещения=ДопПараметры.ПроцедураВызываемаяПослеВвода; ///и вот как здесь вызвать процедуру, заданную в описании оповещения? КонецПроцедуры |
|||
1
Nuobu
19.08.15
✎
09:50
|
Процедура П1()
ОписаниеОповещения=Новый ОписаниеОповещения("ПослеВводаСтрокиДляП1"); ВвестиСтроковыеДанные(ОписаниеОповещения); КонецПроцедуры//П1 Процедура ПослеВводаСтрокиДляП1(Результат,ДопПараметры) ///...некоторые действия, специфичные именно для процедуры П1 КонецПроцедуры Процедура ВвестиСтроковыеДанные(ОписаниеОповещенияПослеВводаСтроки) ДопПарамеры=Новый Структура; ДопПараметры.Добавить("ПроцедураВызываемаяПослеВвода",ОписаниеОповещенияПослеВводаСтроки); ОписаниеОповещения("ОбработкаОповещенияВводаСтроковыхДанных",ЭтотОбъект,ДопПараметры); Стр=""; ПоказатьВводСтроки(ОписаниеОповещенияПослеВводаСтроки,Стр); КонецФункции Процедура ОбработкаОповещенияВводаСтроковыхДанных(Результат, ДопПараметры) #Область СпецДействияФункцииВвестиСтроковыеДанные ///...некоторые действия #КонецОбласти //Берешь и пишешь!!!! КонецПроцедуры |
|||
2
Тихий омут
19.08.15
✎
09:59
|
(1) юмор оценил:) это-то понятно, хочется как-то элегантнее, что ли... что-то вроде ВыполнитьОповещение(ОписаниеОповещения), а не вульгарное многоэтажное Если-ИначеЕсли:)
Выполнить - оно бы вроде хорошо, но для веб клиента, увы, неприменимо, а оно как раз в нём и нужно |
|||
3
Господин ПЖ
19.08.15
✎
10:05
|
ВыполнитьОбработкуОповещения
|
|||
4
Господин ПЖ
19.08.15
✎
10:05
|
?
|
|||
5
Тихий омут
19.08.15
✎
10:19
|
(3) Друг, огромное спасибо! То, что надо. По справке лазил, но не увидел:)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |