Добрый день, возник вопрос, возможно он будет странный, написала блок кода, который по нажатию на кнопку будет открывать другу. форму(список выбора) из 2го документа с уже созданными доками, после выбора нужного документа у меня должна заполняться ТЧ моего документа из другого документа, но что-то у меня просто создаётся строка с пустыми колонками и не заполняются данные из нужного мне Дока, подскажите в чем проблема? Этот код находится на одной форме

```1c
    &НаКлиенте
    Процедура ЗаполнениеТЧ(Команда)

    ОткрытьФорму("Документ.Сортировка.ФормаВыб",,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

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

    &НаКлиенте
    Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)

    Если ТипЗнч(ВыбранноеЗначение) = Тип("ДокументСсылка.Сортировка") Тогда
    НоваяСтрока = Объект.Номенклатура.Добавить();
    НоваяСтрока.Номенклатура = ВыбранноеЗначение;
    Если НайденныеСтроки.Количество() = 0 Тогда
    НоваяСтрока = Объект.Товары.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыбранноеЗначение);
    КонецЕсли;
    КонецЕсли;

    КонецПроцедуры
```
---
Товары— это табличная часть.

```1c
    &НаКлиенте
    Процедура ЗаполнениеТЧ(Команда)

    ОткрытьФорму("Документ.Сортировка.ФормаВыб",,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

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

    &НаКлиенте
    Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)

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

    КонецПроцедуры
```
---
ОбработкаВыбора на сервере не работает. Она должна быть на клиенте. И уже из неё вызывать серверную процедуру заполнения ТЧ.

```1c
    &НаКлиенте
    Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
    ЗаполнитьТабличнуюЧастьПриВыборе(ВыбранноеЗначение);
    КонецПроцедуры

    &НаСервере
    Процедура ЗаполнитьТабличнуюЧастьПриВыборе(ВыбранноеЗначение)

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

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

И с найденными строками у вас косяк полный был. Я поправил.
---
ТипЗнч(ВыбранноеЗначение) = Тип("ДокументСсылка.Сортировка")
У вас выбранное значение ДокументСсылка.Сортировка, а не табличная часть.
---
не совсем понимаю, как я укажу ссылку на ТЧ табличного документа?
---
У любого документа есть реквизиты и табличные части. Покажите его структуру.
---
Товары— это табличная часть.

```1c
    &НаКлиенте
    Процедура ЗаполнениеТЧ(Команда)

    ОткрытьФорму("Документ.Сортировка.ФормаВыб",,ЭтаФорма,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

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

    &НаКлиенте
    Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)

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

    КонецПроцедуры
```
---
На клиенте?
---
я пыталась так уже сделать наСервере , но проблема в том, что у меня ТЧ все равно остаётся пустой
---
Наверное, вы пытались выполнить СВОЙ код на сервере. Который не будет работать нигде, и про который я вам ниже написал.
---
Нет, также с перебором ТЧ пыталась сделать, 1х1 вариант пробовала, после нажатия выбрать документ у меня никакие поля не заполнялись
---
Показывайте.
---
Вот полный код, первая часть которого была похожа на приведённый пример

```1c
    &НаСервере
    Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)

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

    КонецПроцедуры
```
---
ОбработкаВыбора на сервере не работает. Она должна быть на клиенте. И уже из неё вызывать серверную процедуру заполнения ТЧ.

```1c
    &НаКлиенте
    Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
    ЗаполнитьТабличнуюЧастьПриВыборе(ВыбранноеЗначение);
    КонецПроцедуры

    &НаСервере
    Процедура ЗаполнитьТабличнуюЧастьПриВыборе(ВыбранноеЗначение)

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

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

И с найденными строками у вас косяк полный был. Я поправил.
---
Всё работает, сделала еще полтора часа назад, а по итогу, из-за того, что не знала, как правильно работает ОбработкаВыбора, не могла закончить с задачей этой((

Спасибо большое FatPanzer и user705522_constantin_h за помощь
---
Ошиблась с полями, НоваяСтрока.Номенклатура = ВыбранноеЗначение; заменяла на ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЧ);
---
Дело в другом. Дело в том, что потом вы пытаетесь с этой ссылкой на документ сотворить неописуемое:
```1c
    НоваяСтрока = Объект.Номенклатура.Добавить();
    НоваяСтрока.Номенклатура = ВыбранноеЗначение;
    Если НайденныеСтроки.Количество() = 0 Тогда
    НоваяСтрока = Объект.Товары.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыбранноеЗначение);
    КонецЕсли;
```
 Т.е. вы хотите номенклатуре присвоить ссылку на документ, а потом еще и строку табличной части заполнить значениями из этой ссылки.
Так не работает.
---
А где обход строк? Хоть какой-то цикл?
---
при выборе значения проведённого документа из 2го дока, я получаю все данные ТЧ или это не так?
---
Нет, не так. Вы получаете ссылку (идентификатор) документа, но не его данные. Тем более на клиенте.
---
Вот код в форме 2го документа (СписокВыборЗначения)

```1c
    Если Результат <> Неопределено И ТипЗнч(ДополнительныеПараметры) = Тип("ДокументСсылка.ПриходнаяНакладная") Тогда
    ЗначениеВыбора = новый Структура;
    ЗначениеВыбора.Вставить("Номенклатура", ДополнительныеПараметры);
    ОповеститьОВыборе(ЗначениеВыбора);
    КонецЕсли;
```