|
Как принудительно передать активность на форме? | ☑ | ||
---|---|---|---|---|
0
Haku
16.01.12
✎
14:10
|
Добрый день всем,
Ситуация кажется банальной но с ней завис капитально: есть форма подбора товаров на управляемом приложении (УТ 11), при попытке набрать в поиске нужный товар - находится, всё как надо, переносится в корзину, и активность остаётся на той номенклатуре, которую выбрали из списка (результат выборки из всей номенклатуры). Нужно, чтобы активность после добавления в корзину товара перешла к поисковой строке. Пробовал поставить не пропускать поисковую строку при вводе а остальные часть пропускать- ноль реакции, программно вклиниваюсь в то место, где только закончилось добавление товара в корзину, но тут -нехватка опыта, по интуиции пишу: ЭтаФорма.СтрокаПоиска.Активность=Истина; конечно неверно. Подскажите, прошу, как можно передать управление? |
|||
1
butterbean
16.01.12
✎
14:14
|
ТекущийЭлемент
|
|||
2
Haku
16.01.12
✎
14:25
|
Спасибо, но не сработало.
После процедуры добавления в корзину всё равно активность у номенклатуры а не у поиска, поэтому я и думал достучаться через ЭтаФорма Или же я неверно понял и надо ставить иначе? |
|||
3
Mort
16.01.12
✎
14:33
|
Код показывай
|
|||
4
Haku
16.01.12
✎
14:42
|
вот процедура в которую вклиниваюсь:
&НаКлиенте Процедура ДобавитьВКорзину(СтруктураПараметрыНоменклатуры, КоличествоУпаковок) Если ЗапрашиватьКоличество Тогда ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Номенклатура", СтруктураПараметрыНоменклатуры.Номенклатура); ПараметрыФормы.Вставить("Характеристика", СтруктураПараметрыНоменклатуры.Характеристика); ПараметрыФормы.Вставить("Упаковка", СтруктураПараметрыНоменклатуры.Упаковка); ПараметрыФормы.Вставить("Цена", СтруктураПараметрыНоменклатуры.Цена); ПараметрыФормы.Вставить("Дата", Дата); ПараметрыФормы.Вставить("Валюта", Валюта); ПараметрыФормы.Вставить("Соглашение", Соглашение); ПараметрыФормы.Вставить("РедактироватьЦену", Истина); ПараметрыФормы.Вставить("РегистрироватьЦеныПоУсловиям", РегистрироватьЦеныПоУсловиям); СтруктураВозвращенноеЗначение = ОткрытьФормуМодально("Обработка.ПодборТоваровВДокументЗакупки.Форма.ЗапросКоличества", ПараметрыФормы, ЭтаФорма); Если СтруктураВозвращенноеЗначение <> Неопределено Тогда СтруктураПараметрыНоменклатуры.Упаковка = СтруктураВозвращенноеЗначение.Упаковка; СтруктураПараметрыНоменклатуры.Цена = СтруктураВозвращенноеЗначение.Цена; КоличествоУпаковок = СтруктураВозвращенноеЗначение.Количество; СтруктураПараметрыНоменклатуры.УсловиеЦеныПоставщика = СтруктураВозвращенноеЗначение.УсловиеЦеныПоставщика; Иначе Возврат; КонецЕсли; КонецЕсли; РезультатПоиска = Объект.Корзина.НайтиСтроки(СтруктураПараметрыНоменклатуры); Если РезультатПоиска.Количество() = 0 Тогда ТекущаяСтрока = Объект.Корзина.Добавить(); ЗаполнитьЗначенияСвойств(ТекущаяСтрока, СтруктураПараметрыНоменклатуры); Иначе ТекущаяСтрока = РезультатПоиска[0]; КонецЕсли; ТекущаяСтрока.КоличествоУпаковок = КоличествоУпаковок + ТекущаяСтрока.КоличествоУпаковок; СтруктураДействий = Новый Структура; СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц"); СтруктураДействий.Вставить("ПересчитатьСумму"); ОбработкаТабличнойЧастиТоварыКлиент.ПриИзмененииРеквизитовВТЧКлиент(Объект.Корзина, ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения); // Активизируем текущую строку табличной части Элементы.Корзина.ТекущаяСтрока = ТекущаяСтрока.ПолучитьИдентификатор(); Если Не ПоказыватьПодобранныеТовары Тогда ТекстСобытия = НСтр("ru = 'Товар добавлен в корзину'"); ТекстОповещения = НСтр("ru = 'Товар %%Товар%% стоимостью %%Цена%% %%Валюта%% в количестве %%КоличествоУпаковок%% %%ЕдиницаИзмерения%% добавлен в корзину'"); ТекстОповещения = СтрЗаменить(ТекстОповещения, "%%Товар%%", ""+ТекущаяСтрока.Номенклатура + ?(ЗначениеЗаполнено(СтруктураПараметрыНоменклатуры.Характеристика)," ("+СтруктураПараметрыНоменклатуры.Характеристика+")","")); ТекстОповещения = СтрЗаменить(ТекстОповещения, "%%Цена%%", ТекущаяСтрока.Цена); ТекстОповещения = СтрЗаменить(ТекстОповещения, "%%Валюта%%", Валюта); ТекстОповещения = СтрЗаменить(ТекстОповещения, "%%ЕдиницаИзмерения%%", ?(ЗначениеЗаполнено(СтруктураПараметрыНоменклатуры.Упаковка),СтруктураПараметрыНоменклатуры.Упаковка,НСтр("ru = 'ед.'"))); ТекстОповещения = СтрЗаменить(ТекстОповещения, "%%КоличествоУпаковок%%", КоличествоУпаковок); ПоказатьОповещениеПользователя(ТекстСобытия, ,ТекстОповещения); КонецЕсли; КорзинаПриИзменении(); //передать активность поисковой строке ТекущийЭлемент.АктивизироватьПоУмолчанию=Истина; КонецПроцедуры И сама процедура Корзины при изменении &НаКлиенте Процедура КорзинаПриИзменении() ПозицииПрописью = НРег(ЧислоПрописью(Объект.Корзина.Количество(), "Л = ru_RU; ДП = Ложь; НП = Истина; НД = Ложь;", НСтр("ru = 'позиция,позиции,позиций,ж,,,,,0'"))); ИнформационнаяНадпись = НСтр("ru = 'Всего подобрано %Позиций% на сумму %Сумма% %Валюта%'"); ИнформационнаяНадпись = СтрЗаменить(ИнформационнаяНадпись,"%Позиций%", ПозицииПрописью); ИнформационнаяНадпись = СтрЗаменить(ИнформационнаяНадпись,"%Сумма%", Объект.Корзина.Итог("Сумма")); ИнформационнаяНадпись = СтрЗаменить(ИнформационнаяНадпись,"%Валюта%", Валюта); КонецПроцедуры Куда нужно передать управление- проверил, называется СтрокаПоиска |
|||
5
V_V_V
16.01.12
✎
15:06
|
Читай (1)
ЭтаФорма.ТекущийЭлемент = Элементы.СтрокаПоиска; |
|||
6
V_V_V
16.01.12
✎
15:11
|
+(5) Можно и без ЭтаФорма.
ТекущийЭлемент = Элементы.СтрокаПоиска; |
|||
7
Haku
16.01.12
✎
15:11
|
ступил, извиняйте.
Вот теперь дошло и всё сработало как надо. Спасибо огромное!! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |