Ребят Вопрос касаемо табличной части, подскажите пожалуйста.
С кнопки заполняю табличную часть документа(из регистра), можно конечно прежде тч очистить, но в моем случае этого делать не надо, нужно сделать проверку по двум строкам: "Номенклатура" и "ДатаПоступления" и если такая строка есть то ее не нужно дублировать. Но как пропихнуть всю табличную часть для проверки в цикл заполнения из запроса, ну ни как не могу понять.

```1c
    &НаСервере
    Процедура ЗаполнитьПоНакладнымНаСервере()

    Запрос = Новый Запрос;
    Запрос.Параметры.Вставить("НачалоПериода",НачалоДня(Объект.Дата));
    Запрос.Параметры.Вставить("КонецПериода",КонецДня(Объект.Дата));
    Запрос.Текст = "ВЫБРАТЬ
    | ДеталиНаПриемкуНаСкладОстаткиИОбороты.Номенклатура КАК Номенклатура,
    | ДеталиНаПриемкуНаСкладОстаткиИОбороты.Номенклатура.Комментарий КАК Комментарий,
    | ДеталиНаПриемкуНаСкладОстаткиИОбороты.Номенклатура.ДецимальныйНомер КАК ДецимальныйНомер,
    | ДеталиНаПриемкуНаСкладОстаткиИОбороты.Номенклатура.ПринадлежностьКТипуПрибора КАК ПринадлежностьКТипуПрибора,
    | ДеталиНаПриемкуНаСкладОстаткиИОбороты.Номенклатура.Давление КАК Давление,
    | ДеталиНаПриемкуНаСкладОстаткиИОбороты.Номенклатура.Диаметр КАК Диаметр,
    | ДеталиНаПриемкуНаСкладОстаткиИОбороты.Номенклатура.Толщина КАК Толщина,
    | ДеталиНаПриемкуНаСкладОстаткиИОбороты.Номенклатура.Топология КАК Топология,
    | ДеталиНаПриемкуНаСкладОстаткиИОбороты.Период КАК ДатаПоступления,
    | ДеталиНаПриемкуНаСкладОстаткиИОбороты.КоличествоПриход КАК Количество
    |ИЗ
    | РегистрНакопления.ДеталиНаПриемкуНаСклад.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , ) КАК ДеталиНаПриемкуНаСкладОстаткиИОбороты" ;
    Выборка = Запрос.Выполнить().Выбрать();
    Объект.Продукция.Очистить();
    Пока Выборка.Следующий()Цикл

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

```1c
    ......
    Отбор = Новый Структура("КолонкаПоиска1, КолонкаПоиска2, ......., КолонкаПоискаN", ЗначениеПоиска1, ЗначениеПоиска1,.......ЗначениеПоискаN);

    МассивСтрок = Объект.Продукция.НайтиСтроки(Отбор);

    Если Не ЗначениеЗаполнено(МассивСтрок) Тогда
    НовСтр = Объект.Продукция.Добавить();
    ЗаполнитьЗначенияСвойств(НовСтр, Выборка);
    КонецЕсли;
```
---
Конечно если как то можно лучше проверку делать по всей строке табличной части на соотвествие, но никак не пойму как это делается, подскажите плиз ребят кто знает..
---
Не очень понятны требования. Но на первый "неправильный" взгляд - у вас уже есть цикл. Что вам мешает в нём делать проверки?
---
Проблема в том, что, что бы проверить в цикле(НаСервере) мне нужно обойти с проверкой всю таблицу, а как вырвать эти данные НаСервере не совсем понял
---
Что мешает сделать поиск строк в ТЧ?

```1c
    ......
    Отбор = Новый Структура("КолонкаПоиска1, КолонкаПоиска2, ......., КолонкаПоискаN", ЗначениеПоиска1, ЗначениеПоиска1,.......ЗначениеПоискаN);

    МассивСтрок = Объект.Продукция.НайтиСтроки(Отбор);

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