По com-соединению получаю наименование и guid объекта в ТаблицуЗначений. Нужно организовать выбор из этой таблицы, добавление выбранных значений в таблицу на форме. Подскажите как лучше и правильнее реализовать?
---
Почему нельзя. У Вас в обработке две формы (Форма), одна с ТЧ(ТЧ1) для заполнения, другая (ФормаПодбора) с данными другой базы (ТЧ2). На Элемент формы подбора ТЧ2 ставите Режим выбора в истину. Колонку guid в Использовать всегда и скрываем.
В Форме 1 Добавляем команду, Например Подбор.

```1c
    &НаКлиенте
    Процедура Подбор(Команда)
    Форма = ОткрытьФорму("ВнешняяОбработка.ПодборИзВнешнихДанных.Форма.ФормаПодбора",,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца)
    КонецПроцедуры
```

В Форме подбора на ТЧ вешаем событие Выбор
И пишем

```1c
    &НаКлиенте
    Процедура ТЧВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    Ссылка = ПолучитьСсылку(Элемент.ТекущиеДанные.guid);
    Если ВладелецФормы.ТЧ.НайтиСтроки(Новый Структура("Номенклатура",Ссылка)).Количество() = 0 Тогда
    Стр = ВладелецФормы.ТЧ.Добавить();
    Стр.Номенклатура=Ссылка;
    КонецЕсли;
    КонецПроцедуры
    &НаСервереБезКонтекста
    Функция ПолучитьСсылку(Знач Уид)
    Если не ТипЗнч(Уид) = Тип("УникальныйИдентификатор") Тогда
    Уид = Новый УникальныйИдентификатор(Уид);
    КонецЕсли;
    Ссылка = Справочники.Номенклатура.ПолучитьСсылку(Уид);
    Если Ссылка.ПолучитьОбъект()=Неопределено Тогда
    //создадим элемент или Вернем пустую
    КонецЕсли;
    Возврат Ссылка;
    КонецФункции
```
---
Отбором в ТЗ, либо перебирать в цикле.
Что-то типа:
Отбор = Новый Структура;
Отбор.Вставить("Ключ", Значение);
НайденныеСтроки = ТЗ.НайтиСтроки(Отбор);
---
мне ТЗ надо показать пользователю это в идеале конечно, чтобы потом проще мне .
(3) пока тоже думаю показатьвыборизсписка, а потом искать в ТЗ и получать guid. Минус в том что выбор нескольких нельзя будет сделать.
---
показатьотметкуэлементов - возвратит список значений отмеченных элементов
---
спасибо попробую как вариант. хотелось бы конечно сразу тз показать, но без доп формы похоже никак...
---
Почему нельзя. У Вас в обработке две формы (Форма), одна с ТЧ(ТЧ1) для заполнения, другая (ФормаПодбора) с данными другой базы (ТЧ2). На Элемент формы подбора ТЧ2 ставите Режим выбора в истину. Колонку guid в Использовать всегда и скрываем.
В Форме 1 Добавляем команду, Например Подбор.

```1c
    &НаКлиенте
    Процедура Подбор(Команда)
    Форма = ОткрытьФорму("ВнешняяОбработка.ПодборИзВнешнихДанных.Форма.ФормаПодбора",,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца)
    КонецПроцедуры
```

В Форме подбора на ТЧ вешаем событие Выбор
И пишем

```1c
    &НаКлиенте
    Процедура ТЧВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    Ссылка = ПолучитьСсылку(Элемент.ТекущиеДанные.guid);
    Если ВладелецФормы.ТЧ.НайтиСтроки(Новый Структура("Номенклатура",Ссылка)).Количество() = 0 Тогда
    Стр = ВладелецФормы.ТЧ.Добавить();
    Стр.Номенклатура=Ссылка;
    КонецЕсли;
    КонецПроцедуры
    &НаСервереБезКонтекста
    Функция ПолучитьСсылку(Знач Уид)
    Если не ТипЗнч(Уид) = Тип("УникальныйИдентификатор") Тогда
    Уид = Новый УникальныйИдентификатор(Уид);
    КонецЕсли;
    Ссылка = Справочники.Номенклатура.ПолучитьСсылку(Уид);
    Если Ссылка.ПолучитьОбъект()=Неопределено Тогда
    //создадим элемент или Вернем пустую
    КонецЕсли;
    Возврат Ссылка;
    КонецФункции
```
---
спасибо, попробую
---
а как из этой формы вызвать экспортную функцию модуля?
---
В процедуре или функции с компиляцией На сервере РеквизитФормыВЗначение
Например

```1c
    ТЗ = РеквизитФормыВЗначение("Объект").ПолучитьВнешниеДанные();
```
---
да, разобрался. не было реквизита с объектом на форме
---
Добрый день!
Самый простой способ обработать полученную таблицу значений в цикле и каждую полученную строку уже поместить на форму