![]() |
![]() |
![]() |
|
Не работает выбор через ОткрытьФорму() | ☑ | ||
---|---|---|---|---|
0
trympyrym
11.02.24
✎
17:17
|
Есть на форме таблица, на одно из ее полей навешан обработчик , который открывает форму для выбора, берет результат и записывает его в это самое поле
&НаКлиенте Процедура МоеПолеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтрокаТаблицы = Элементы.МояТаблица.ТекущиеДанные; СтандартнаяОбработка = Ложь; ДанныеВыбора = Неопределено; СтруктураПараметры = Новый Структура("РежимВыбора,Отбор", Истина,<какой-то отбор>); Результат = ОткрытьФормуМодально("<Форма>", СтруктураПараметры, Элемент); СтрокаТаблицы.МоеПоле = ВытащитьЗначениеНаСервере(Результат); КонецПроцедуры Такое успешно работает, но ОткрытьФормуМодально как-то неоч. Попросил я стандартный рефакторинг в конфигураторе сделать из этого асинхронный вызов. Получилось так: &НаКлиенте Процедура МоеПолеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтрокаТаблицы = Элементы.МояТаблица.ТекущиеДанные; СтандартнаяОбработка = Ложь; ДанныеВыбора = Неопределено; СтруктураПараметры = Новый Структура("РежимВыбора,Отбор", Истина,<какой-то отбор>); ОткрытьФорму("<Форма>", СтруктураПараметры, Элемент,,,,Новый ОписаниеОповещения("МоеПолеНачалоВыбораЗавершение", ЭтотОбъект, Новый Структура("СтрокаТаблицы", СтрокаТаблицы)), РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс); СтрокаТаблицы.МоеПоле = ВытащитьЗначениеНаСервере(Результат); КонецПроцедуры &НаКлиенте Процедура МоеПолеНачалоВыбораЗавершение(Результат, ДополнительныеПараметры) Экспорт СтрокаТаблицы = ДополнительныеПараметры.СтрокаТаблицы; СтрокаТаблицы.МоеПоле = ВытащитьЗначениеНаСервере(Результат); КонецПроцедуры И вот оно не работает. В дебаге видно, что нужное поле в "СтрокаТаблицы" устанавливается, но на форме это не появляется. Пустое значение там висит. Как такое лечить? |
|||
1
Волшебник
11.02.24
✎
17:14
|
Перестаньте, пожалуйста, подменять настоящий исходный код на тот, который публикуете. Так мы проблему будем долго решать...
|
|||
2
DrZombi
12.02.24
✎
09:44
|
(0) При открытии формы, параметры через структуру.
И заканчивайте с модальными окнами, люди уже Асинхронность юзают :) Параметра.Вставить("ТекущаяСтрока", <Ваша ссылка>) Примеры: https://infostart.ru/1c/articles/1233756/ И еще, с текущей строкой &НаКлиенте Процедура ТоварыНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) ТекущиеДанные = Элементы.Товары.ТекущиеДанные; Если ЗначениеЗаполнено(ТекущиеДанные.Номенклатура) Тогда СтандартнаяОбработка = Ложь; Парам = Новый Структура("ТекущаяСтрока", ТекущиеДанные.Номенклатура); ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", Парам, Элемент); КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |