0
Mechanik21
22.06.20
✎
14:18
|
Чтобы понимать, какой именно элемент выбирает пользователь из списка значений в таблицу на форме типа "ДанныеФормыКоллекция", я ввёл идентификатор.
Но при попытке загнать структуру с идентификатором столкнулся с трудностью.
дело в том, что в оповещённой процедуре, которая вызывается из "показать выбор из списка", Структура обозначена просто как тип структура, без свойств структуры с ключами и значениями.
&НаКлиенте
Процедура НачалоВыбора(КлючПоля, КлючЭлемента)
Если СтруктурыФизическиеЛица.Количество() > 0 Тогда
СписокДляВыбора = Новый СписокЗначений;
СтруктураДляСпискаДляВыбора = Новый Структура;
Для каждого ФизЛицо Из СтруктурыФизическиеЛица Цикл
СтруктураДляСпискаДляВыбора.Вставить("ФИОФизЛицо", ФизЛицо.ФИОФизическоеЛицо);
СтруктураДляСпискаДляВыбора.Вставить("Идентификатор", ФизЛицо.Идентификатор);
СписокДляВыбора.Добавить(СтруктураДляСпискаДляВыбора, ФизЛицо.ФИОФизическоеЛицо);
СтруктураДляСпискаДляВыбора.Очистить();
КонецЦикла;
ТекущиеДанные = Элементы[КлючЭлемента].ТекущиеДанные;
ПараметрыТаблицы = Новый Структура;
ПараметрыТаблицы.Вставить("ТекущиеДанные", ТекущиеДанные);
ПараметрыТаблицы.Вставить("КлючПоля", КлючПоля);
ПараметрыТаблицы.Вставить("КлючЭлемента", КлючЭлемента);
ПоказатьВыборИзСписка(Новый ОписаниеОповещения("НачалоВыбораЗавершение", ЭтаФорма, ПараметрыТаблицы), СписокДляВыбора, Элементы[КлючЭлемента]);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НачалоВыбораЗавершение(ВыбранныйЭлемент, ДополнительныеПараметры) Экспорт
ТекущиеДанные = ДополнительныеПараметры.ТекущиеДанные;
//в ВыбранныйЭлемент есть в поле "Значение" с типом Структура
//значений же структуры нет
Если ВыбранныйЭлемент <> Неопределено Тогда
ТекущиеДанные[ДополнительныеПараметры.КлючПоля] = ВыбранныйЭлемент;
КонецЕсли;
//ПриИзмененииФизическогоЛица(ДополнительныеПараметры.КлючПоля, ДополнительныеПараметры.КлючЭлемента);
КонецПроцедуры
|
|
1
Mechanik21
22.06.20
✎
14:41
|
Вопрос решён
СписокДляВыбора.Добавить(СтруктураДляСпискаДляВыбора, ФизЛицо.ФИОФизическоеЛицо);
СтруктураДляСпискаДляВыбора.Очистить(); // Ошибка в этой строке
+ поменял местами вот эти строки
СтруктураДляСпискаДляВыбора = Новый Структура;
Для каждого ФизЛицо Из СтруктурыФизическиеЛица Цикл
|
|