Имя: Пароль:
1C
1С v8
Добавить структуру в список значений
0 Mechanik21
 
22.06.20
14:18
Чтобы понимать, какой именно элемент выбирает пользователь из списка значений в таблицу на форме типа "ДанныеФормыКоллекция", я ввёл идентификатор.
Но при попытке загнать структуру с идентификатором столкнулся с трудностью.
дело в том, что в оповещённой процедуре, которая вызывается из "показать выбор из списка", Структура обозначена просто как тип структура, без свойств структуры с ключами и значениями.

&НаКлиенте
Процедура НачалоВыбора(КлючПоля, КлючЭлемента)
    
    Если СтруктурыФизическиеЛица.Количество() > 0 Тогда
        СписокДляВыбора = Новый СписокЗначений;
        СтруктураДляСпискаДляВыбора = Новый Структура;
        Для каждого ФизЛицо Из СтруктурыФизическиеЛица Цикл
            СтруктураДляСпискаДляВыбора.Вставить("ФИОФизЛицо", ФизЛицо.ФИОФизическоеЛицо);
            СтруктураДляСпискаДляВыбора.Вставить("Идентификатор", ФизЛицо.Идентификатор);
            СписокДляВыбора.Добавить(СтруктураДляСпискаДляВыбора, ФизЛицо.ФИОФизическоеЛицо);
            СтруктураДляСпискаДляВыбора.Очистить();
        КонецЦикла;
                
        ТекущиеДанные = Элементы[КлючЭлемента].ТекущиеДанные;
        ПараметрыТаблицы = Новый Структура;
        ПараметрыТаблицы.Вставить("ТекущиеДанные", ТекущиеДанные);
        ПараметрыТаблицы.Вставить("КлючПоля", КлючПоля);
        ПараметрыТаблицы.Вставить("КлючЭлемента", КлючЭлемента);
        
        ПоказатьВыборИзСписка(Новый ОписаниеОповещения("НачалоВыбораЗавершение", ЭтаФорма, ПараметрыТаблицы), СписокДляВыбора, Элементы[КлючЭлемента]);
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура НачалоВыбораЗавершение(ВыбранныйЭлемент, ДополнительныеПараметры) Экспорт
    
    ТекущиеДанные = ДополнительныеПараметры.ТекущиеДанные;
//в ВыбранныйЭлемент есть в поле "Значение" с типом Структура
//значений же структуры нет
    Если ВыбранныйЭлемент <> Неопределено Тогда    
        ТекущиеДанные[ДополнительныеПараметры.КлючПоля] = ВыбранныйЭлемент;
    КонецЕсли;
    //ПриИзмененииФизическогоЛица(ДополнительныеПараметры.КлючПоля, ДополнительныеПараметры.КлючЭлемента);

КонецПроцедуры
1 Mechanik21
 
22.06.20
14:41
Вопрос решён

СписокДляВыбора.Добавить(СтруктураДляСпискаДляВыбора, ФизЛицо.ФИОФизическоеЛицо);
            СтруктураДляСпискаДляВыбора.Очистить(); // Ошибка в этой строке
+ поменял местами вот эти строки
СтруктураДляСпискаДляВыбора = Новый Структура;
Для каждого ФизЛицо Из СтруктурыФизическиеЛица Цикл
2 ДенисЧ
 
22.06.20
14:41
Приятно )))
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.