Чтобы понимать, какой именно элемент выбирает пользователь из списка значений в таблицу на форме типа "ДанныеФормыКоллекция", я ввёл идентификатор.
Но при попытке загнать структуру с идентификатором столкнулся с трудностью.
дело в том, что в оповещённой процедуре, которая вызывается из "показать выбор из списка", Структура обозначена просто как тип структура, без свойств структуры с ключами и значениями.
Короче вот код.

```1c
    &НаКлиенте
    Процедура НачалоВыбора(КлючПоля, КлючЭлемента)

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

    ТекущиеДанные = Элементы[КлючЭлемента].ТекущиеДанные;
    ПараметрыТаблицы = Новый Структура;
    ПараметрыТаблицы.Вставить("ТекущиеДанные", ТекущиеДанные);
    ПараметрыТаблицы.Вставить("КлючПоля", КлючПоля);
    ПараметрыТаблицы.Вставить("КлючЭлемента", КлючЭлемента);

    ПоказатьВыборИзСписка(Новый ОписаниеОповещения("НачалоВыбораЗавершение", ЭтаФорма, ПараметрыТаблицы), СписокДляВыбора, Элементы[КлючЭлемента]);
    КонецЕсли;

    КонецПроцедуры

    &НаКлиенте
    Процедура НачалоВыбораЗавершение(ВыбранныйЭлемент, ДополнительныеПараметры) Экспорт

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

    КонецПроцедуры
```
---
```1c
    СписокДляВыбора.Добавить(СтруктураДляСпискаДляВыбора, ФизЛицо.ФИОФизическоеЛицо);
    СтруктураДляСпискаДляВыбора.Очистить(); // Ошибка в этой строке
```

Вы добавили структуру в список для выбора и тут же эту структуру очистили. Попробуйте закоментировать очистку структуры и посмотреть в отладчике, появились нужные ключи или нет
---
СтруктураДляСпискаДляВыбора = Новый Структура;
        Для каждого ФизЛицо Из СтруктурыФизическиеЛица Цикл

Вот эти строки местами поменяй
---
Может быть ещё и

```1c
    СтруктураДляСпискаДляВыбора = Новый Структура;
```

внутрь цикла поместить.
---
```1c
    СписокДляВыбора.Добавить(СтруктураДляСпискаДляВыбора, ФизЛицо.ФИОФизическоеЛицо);
    СтруктураДляСпискаДляВыбора.Очистить(); // Ошибка в этой строке
```

Вы добавили структуру в список для выбора и тут же эту структуру очистили. Попробуйте закоментировать очистку структуры и посмотреть в отладчике, появились нужные ключи или нет
---
Может быть ещё и

```1c
    СтруктураДляСпискаДляВыбора = Новый Структура;
```

внутрь цикла поместить.
---
Согласен. Можно и внутр поместить. Лишним не будет.
можно вообще фиксированную структуру передавать типа

```1c
    СписокДляВыбора.Добавить(Новый Структура("ФИОФизЛицо,Идентификатор",ФизЛицо.ФИОФизическоеЛицо, ФизЛицо.Идентификатор), ФизЛицо.ФИОФизическоеЛицо);
```
---
(2) (3) Спасибо, дело действительно было в этом
---
http://prntscr.com/t49r05
---
СтруктураДляСпискаДляВыбора = Новый Структура;
        Для каждого ФизЛицо Из СтруктурыФизическиеЛица Цикл

Вот эти строки местами поменяй