|
|
|
Не работает выбор через ОткрытьФорму() | ☑ | ||
|---|---|---|---|---|
|
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/ И еще, с текущей строкой &НаКлиенте Процедура ТоварыНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) ТекущиеДанные = Элементы.Товары.ТекущиеДанные; Если ЗначениеЗаполнено(ТекущиеДанные.Номенклатура) Тогда СтандартнаяОбработка = Ложь; Парам = Новый Структура("ТекущаяСтрока", ТекущиеДанные.Номенклатура); ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", Парам, Элемент); КонецЕсли; КонецПроцедуры |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |