подскажите пожалуйста как скопировать из одной табличной части в другую информацию УТ 10.3
У меня.
Таблица1 это Товары
Таблица 2 это ТоварыНаУдаление
мне нужно скопировать строки в которых в поле Размещение ничего не стоит(тобишь пустое значение). подскажите как пожалуйста,а то смотрел в нете,чёт не получается с условием,если без условия,то копируется
---
Так я ж написал?

```1c
    Если НЕ ЗначениеЗаполнено(Товары[i-1].Размещение)
```

или

```1c
    Если Товары[i-1].Размещение = Ложь
```
---
НУ можно запросом, но тогда документ надо сначала сохранить Товары, потом уже заполнять ТоварыНаУдаление.
Получаешь Запросом Свою тч, с условием что Размещение = "", далее пишешь обработчик заполнения, можно на кнопку повесить, или на какую нибудь процедуру ИзмененияТЧ допустим.

```1c
    Пока Выборка.Следующий()Цикл
    Строка = ТвояТЧ.Добавить();
    Строка.Товар = Выборка.Товар;
    Строка.Цена = Выборка.Цена
    И тд(//Не знаю какие у тебя колонки в тч)
```

Думаю как-то так
.
Ну а если без запроса то
Выгружаешь ТЧ
ставишь Условие

```1c
    Если НЕ ЗначениеЗаполнено(Размещение)
```

И заполняешь вторую ТЧ

(1)
---
(2) то есть,если без запроса.то будет так?

```1c
    Если НЕ ЗначениеЗаполнено(Размещение) тогда
    Таблица2.Загрузит
```
ь(Таблица1.Выгрузить());
КонецЕсли;
?
мне кажется так не сработает правильно,или вообще не сработает.)) поправьте пожалуйста меня))
---
Нет, так будет не правильно. Это погуглите я точно не могу сказать.
Но надо как-то так

```1c
    Таблица1.Выгрузить() //Выгрузили данные из 1 таблицы
    Далее надо ставить условие Что
    Если НЕ ЗначениеЗаполнено(Размещение) тогда
    Таблица2.Добавить() //то есть добавляем только те строки, в которых размещение не указано
```

Если честно, не могу ниче подсказать на счет Выгрузить загрузить, а вот запросом думаю все будет работать.
ДУмаю еще можно сделать отбор.
С помощью отбора выгрузить только те строки где размещение не указано.

```1c
    Отбор = Новый Структура("Размещение",");
    Табл = Докум.товары.Выгрузить(Отбор,);
```
---
у меня Размещение не реквизит, а поле ТЧ
---
посмотрите (4) и попробуйте отбор.
---
4?
---
ой, (5)
Нет, так будет не правильно. Это погуглите я точно не могу сказать.
Но надо как-то так
Таблица1.Выгрузить() //Выгрузили данные из 1 таблицы
Далее надо ставить условие Что

```1c
    Если НЕ ЗначениеЗаполнено(Размещение) тогда
    Таблица2.Добавить() //то есть добавляем только те строки, в которых размещение не указано
```

Если честно, не могу ниче подсказать на счет Выгрузить загрузить, а вот запросом думаю все будет работать.
ДУмаю еще можно сделать отбор.
С помощью отбора выгрузить только те строки где размещение не указано.

```1c
    Отбор = Новый Структура("Размещение",");
    Табл = Докум.товары.Выгрузить(Отбор,);
```

или спросите у SedovSU@mail.ru
он точно Вам подскажет.
---
```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЗаказПокупателя.Товары.(
    | Ссылка,
    | НомерСтроки,
    | ЕдиницаИзмерения,
    | ЕдиницаИзмеренияМест,
    | Количество,
    | КоличествоМест,
    | Коэффициент,
    | Номенклатура,
    | ПлановаяСебестоимость,
    | ПроцентСкидкиНаценки,
    | Размещение,
    | СтавкаНДС,
    | Сумма,
    | СуммаНДС,
    | ХарактеристикаНоменклатуры,
    | Цена,
    | ПроцентАвтоматическихСкидок,
    | УсловиеАвтоматическойСкидки,
    | ЗначениеУсловияАвтоматическойСкидки,
    | КлючСтроки,
    | СерияНоменклатуры
    | )
    |ИЗ
    | Документ.ЗаказПокупателя КАК ЗаказПокупателя";

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

    Строка = ТоварыНаУдаление.Добавить();
    Строка.Размещение = ВыборкаДетальныеЗаписи.Размещение;
    Строка.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;

    КонецЦикла;
    тут не верно указываю вот эти строки?
    Строка.Размещение = ВыборкаДетальныеЗаписи.Размещение;
    Строка.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
```

??
---
Как вариант.
В таблицу2 выгружаешь таблицу1
Далее Цикл по таблице 2, только с последней строки.
и в цикле по условию заполненные строки с "Размещением" удаляем.
---
тоже хороший вариант,возьму на заметку,спасибо)
---
Тут несколько вариантов.

1. Выгрузить(), Загрузить
Таблица2.Загрузить(Таблица1.Выгрузить());
2. Обойти циклом Таблицу2 и добавить в Таблицу1
---
а как сделать чтобы с условием?
---
Надо написать:
Запрос.УстановитьПараметр("Размещение", "");

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЗаказПокупателя.Товары.(
    | Ссылка,
    | НомерСтроки,
    | ЕдиницаИзмерения,
    | ЕдиницаИзмеренияМест,
    | Количество,
    | КоличествоМест,
    | Коэффициент,
    | Номенклатура,
    | ПлановаяСебестоимость,
    | ПроцентСкидкиНаценки,
    | Размещение,
    | СтавкаНДС,
    | Сумма,
    | СуммаНДС,
    | ХарактеристикаНоменклатуры,
    | Цена,
    | ПроцентАвтоматическихСкидок,
    | УсловиеАвтоматическойСкидки,
    | ЗначениеУсловияАвтоматическойСкидки,
    | КлючСтроки,
    | СерияНоменклатуры
    | )
    |ИЗ
    | Документ.ЗаказПокупателя КАК ЗаказПокупателя";
    Запрос.УстановитьПараметр("Размещение", ");//вот это параметр
    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ВыборкаТЧ = ВыборкаДетальныеЗаписи.Товары.Выбрать()
    Пока ВыборкаТЧ.Следующий() Цикл
    Строка = ТоварыНаУдаление.Добавить();
    Строка.Размещение = ВыборкаТЧ.Размещение;
    Строка.Номенклатура = ВыборкаТЧ.Номенклатура;
    //тут должны быть все строки которые выхотите заполнить
    КонецЦикла;
    КонецЦикла;
```
---
прикольно конечно,но мне выгрузило весь справочник номенклатуры походу )))))) а мне надо только из заказа этого)))
---
Поставь еще одно условие:

```1c
    Запрос.УстановитьПарамертр("Ссылка", ЭтаФорма.Ссылка);
```

Тогда все заработает.
---
пишу вот так,так оно ругается

```1c
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ВыборкаТЧ = ВыборкаДетальныеЗаписи.Товары.Выбрать();
    Пока ВыборкаТЧ.Следующий() Цикл
    Если ВыборкаТЧ.Размещение.Наименование = " тогда
    Строка = ТоварыНаУдаление.Добавить();
    Строка.Размещение = ВыборкаТЧ.Размещение;
    Строка.Номенклатура = ВыборкаТЧ.Номенклатура;
    КонецЕсли;
    //тут должны быть все строки которые выхотите заполнить
    КонецЦикла;
    КонецЦикла;
```

на вот эту строку: Если ВыборкаТЧ.Размещение.Наименование = "" тогда
---
Подскажете?
---
Скорее всего так. Сделай реквизит Заказ с типом который тебе надо и выведи на форму.
Но подозреваю, что Размещение это не строка.

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЗаказПокупателя.Товары.(
    | Ссылка,
    | НомерСтроки,
    | ЕдиницаИзмерения,
    | ЕдиницаИзмеренияМест,
    | Количество,
    | КоличествоМест,
    | Коэффициент,
    | Номенклатура,
    | ПлановаяСебестоимость,
    | ПроцентСкидкиНаценки,
    | Размещение,
    | СтавкаНДС,
    | Сумма,
    | СуммаНДС,
    | ХарактеристикаНоменклатуры,
    | Цена,
    | ПроцентАвтоматическихСкидок,
    | УсловиеАвтоматическойСкидки,
    | ЗначениеУсловияАвтоматическойСкидки,
    | КлючСтроки,
    | СерияНоменклатуры
    | )
    |ИЗ
    | Документ.ЗаказПокупателя КАК ЗаказПокупателя

    |ГДЕ
    | ЗаказПокупателя.Ссылка = &Заказ
    | И ЗаказПокупателя.Товары.Размещение = &Размещение";

    Запрос.УстановитьПараметр("Заказ", Объект.Заказ);

    Запрос.УстановитьПараметр("Размещение", ");//вот это параметр

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ВыборкаТЧ = ВыборкаДетальныеЗаписи.Товары.Выбрать()
    Пока ВыборкаТЧ.Следующий() Цикл
    Строка = ТоварыНаУдаление.Добавить();
    Строка.Размещение = ВыборкаТЧ.Размещение;
    Строка.Номенклатура = ВыборкаТЧ.Номенклатура;
    //тут должны быть все строки которые выхотите заполнить
    КонецЦикла;
    КонецЦикла;
```
---
Если сделать вот так,то копирует все данные из заказа
---
```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЗаказПокупателя.Товары.(
    | Ссылка,
    | НомерСтроки,
    | ЕдиницаИзмерения,
    | ЕдиницаИзмеренияМест,
    | Количество,
    | КоличествоМест,
    | Коэффициент,
    | Номенклатура,
    | ПлановаяСебестоимость,
    | ПроцентСкидкиНаценки,
    | Размещение,
    | СтавкаНДС,
    | Сумма,
    | СуммаНДС,
    | ХарактеристикаНоменклатуры,
    | Цена,
    | ПроцентАвтоматическихСкидок,
    | УсловиеАвтоматическойСкидки,
    | ЗначениеУсловияАвтоматическойСкидки,
    | КлючСтроки,
    | СерияНоменклатуры
    | )
    |ИЗ
    | Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |ГДЕ
    | ЗаказПокупателя.Номер = &Номер";

    Запрос.УстановитьПараметр("Номер", номер );

    Запрос.УстановитьПараметр("Размещение", ");//вот это параметр

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ВыборкаТЧ = ВыборкаДетальныеЗаписи.Товары.Выбрать();
    Пока ВыборкаТЧ.Следующий() Цикл
    Строка = ТоварыНаУдаление.Добавить();
    Строка.Размещение = ВыборкаТЧ.Размещение;
    Строка.Номенклатура = ВыборкаТЧ.Номенклатура;
    //тут должны быть все строки которые выхотите заполнить
    КонецЦикла;
    КонецЦикла;
```
---
а мне надо чтобы по размещению только копировало,где пусто
---
Вот окончательный запрос:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЗаказПокупателя.Товары.(
    | Ссылка,
    | НомерСтроки,
    | ЕдиницаИзмерения,
    | ЕдиницаИзмеренияМест,
    | Количество,
    | КоличествоМест,
    | Коэффициент,
    | Номенклатура,
    | ПлановаяСебестоимость,
    | ПроцентСкидкиНаценки,
    | Размещение,
    | СтавкаНДС,
    | Сумма,
    | СуммаНДС,
    | ХарактеристикаНоменклатуры,
    | Цена,
    | ПроцентАвтоматическихСкидок,
    | УсловиеАвтоматическойСкидки,
    | ЗначениеУсловияАвтоматическойСкидки,
    | КлючСтроки,
    | СерияНоменклатуры
    | )
    |ИЗ
    | Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |ГДЕ
    | ЗаказПокупателя.Ссылка = &Ссылка
    | И ЗаказПокупателя.Размещение = &Размещение";

    Запрос.УстановитьПараметр("Ссылка", Ссылка );

    Запрос.УстановитьПараметр("Размещение", ");//вот это параметр

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ВыборкаТЧ = ВыборкаДетальныеЗаписи.Товары.Выбрать();
    Пока ВыборкаТЧ.Следующий() Цикл
    Строка = ТоварыНаУдаление.Добавить();
    Строка.Размещение = ВыборкаТЧ.Размещение;
    Строка.Номенклатура = ВыборкаТЧ.Номенклатура;
    //тут должны быть все строки которые выхотите заполнить
    КонецЦикла;
    КонецЦикла;
```
---
вот что выдаёт
{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(2887)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(28, 54)}: Поле не найдено "ЗаказПокупателя.Размещение"
ЗаказПокупателя.Ссылка = &Ссылка И ЗаказПокупателя.<<?>>Размещение = &Размещение
{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(2887)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(28, 54)}: Поле не найдено "ЗаказПокупателя.Размещение"
ЗаказПокупателя.Ссылка = &Ссылка И ЗаказПокупателя.<<?>>Размещение = &Размещение
---
здесь в запросе сменил на
|ГДЕ

```1c
    | ЗаказПокупателя.Ссылка = &Ссылка
    | И ЗаказПокупателя.Товары.Размещение = &Размещение";
```

(Добавил Товары)
запрос срабатывает,но ничего не выводит в таблицу)
---
Добавьте Условие(просто проверить запрос пустой или нет)

После строки РезультатЗапроса = Запрос.Выполнить();
Добавьте:

```1c
    Если РезультатЗапроса.Пустой() Тогда
    Сообщить ("Ничего не получилось");
    КонецЕсли
```
---
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
в этой строке если отладчиком смотреть,оно сразу пропускает цикл,не заходит в него. чего так?
---
Скорее всего Размещение это не строка. Убери условие "Размещение" из запроса, сделай проверку в цикле.

```1c
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ВыборкаТЧ = ВыборкаДетальныеЗаписи.Товары.Выбрать();
    Пока ВыборкаТЧ.Следующий() Цикл
    Если НЕ ЗначениеЗаполнено(ВыборкаТЧ.Размещение) Тогда
    Строка = ТоварыНаУдаление.Добавить();
    Строка.Размещение = ВыборкаТЧ.Размещение;
    Строка.Номенклатура = ВыборкаТЧ.Номенклатура;
    //тут должны быть все строки которые выхотите заполнить
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
```
---
Скорее всего у вас не правильно задаются параметры.
И еще Сначала сохраните документ, потом уже заполняйте вторую таблицу.
И вообще скиньте скрин что у вас там и как.
---
если у вас уже был вариант , когда копирует все данные из заказа
Ну так поставьте туда условие что НЕ НАДО копировать и радуйтесь, неужели вы сами даже условия поставить не в состоянии?
Не ждите тут полных решений...
---
вы меня смотивировали) Спасибо)
Я просто ещё учусь немного,поэтому задаю такие глупые вопросы,когда сталкиваюсь с ними
Сделал вот так.

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЗаказПокупателя.Товары.(
    | Ссылка,
    | НомерСтроки,
    | ЕдиницаИзмерения,
    | ЕдиницаИзмеренияМест,
    | Количество,
    | КоличествоМест,
    | Коэффициент,
    | Номенклатура,
    | ПлановаяСебестоимость,
    | ПроцентСкидкиНаценки,
    | Размещение,
    | СтавкаНДС,
    | Сумма,
    | СуммаНДС,
    | ХарактеристикаНоменклатуры,
    | Цена,
    | ПроцентАвтоматическихСкидок,
    | УсловиеАвтоматическойСкидки,
    | ЗначениеУсловияАвтоматическойСкидки,
    | КлючСтроки,
    | СерияНоменклатуры
    | )
    |ИЗ
    | Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |ГДЕ
    | ЗаказПокупателя.Номер = &Номер";
    Запрос.УстановитьПараметр("Размещение", ");//вот это параметр
    Запрос.УстановитьПараметр("Номер", Номер);
    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ВыборкаТЧ = ВыборкаДетальныеЗаписи.Товары.Выбрать();
    Пока ВыборкаТЧ.Следующий() Цикл

    Если НЕ ЗначениеЗаполнено(ВыборкаТЧ.Размещение) тогда

    Строка = ТоварыНаУдаление.Добавить();
    Строка.Размещение = ВыборкаТЧ.Размещение;
    Строка.Номенклатура = ВыборкаТЧ.Номенклатура;
    КонецЕсли;
    //тут должны быть все строки которые выхотите заполнить
    КонецЦикла;
    КонецЦикла;
```

Спасибо всем большое!
---
Запрос.УстановитьПараметр("Размещение", "");//вот это параметр Эту строку можно удалить))
---
подскажите пожалуйста,у меня в справочнике Номенклатуры есть реквизит НеРезервировать, как мне в моём запросе сделать так чтобы срабатывало моё условие

```1c
    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ВыборкаТЧ = ВыборкаДетальныеЗаписи.Товары.Выбрать();
    Пока ВыборкаТЧ.Следующий() Цикл

    Если ВыборкаДетальныеЗаписи.НеРезервировать = Истина тогда
    Сообщить(");
    иначе
    Если НЕ ЗначениеЗаполнено(ВыборкаТЧ.Размещение) тогда

    Строка = ТоварыНаУдаление.Добавить();
    Строка.Размещение = ВыборкаТЧ.Размещение;
    Строка.Номенклатура = ВыборкаТЧ.Номенклатура;
    Строка.ЕдиницаИзмерения = ВыборкаТЧ.ЕдиницаИзмерения;
    Строка.СтавкаНДС = ВыборкаТЧ.СтавкаНДС;
    Строка.Количество = ВыборкаТЧ.Количество;
    Строка.Коэффициент = ВыборкаТЧ.Коэффициент;
    Строка.Сумма = ВыборкаТЧ.Сумма;
    строка.СуммаНДС = ВыборкаТЧ.СуммаНДС;
    строка.Цена = ВыборкаТЧ.Цена;
    КонецЕсли;
    КонецЕсли;

    КонецЦикла;
    КонецЦикла;
```
---
Надо получать запросом этот реквизит, у вас в запросе получается только табличная часть.

```1c
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Если ВыборкаДетальныеЗаписи.НеРезервировать = Истина тогда
    Сообщить(");
    Иначе
    ВыборкаТЧ = ВыборкаДетальныеЗаписи.Товары.Выбрать();
    Пока ВыборкаТЧ.Следующий() Цикл

    Если НЕ ЗначениеЗаполнено(ВыборкаТЧ.Размещение) тогда

    Строка = ТоварыНаУдаление.Добавить();
    Строка.Размещение = ВыборкаТЧ.Размещение;
    Строка.Номенклатура = ВыборкаТЧ.Номенклатура;
    Строка.ЕдиницаИзмерения = ВыборкаТЧ.ЕдиницаИзмерения;
    Строка.СтавкаНДС = ВыборкаТЧ.СтавкаНДС;
    Строка.Количество = ВыборкаТЧ.Количество;
    Строка.Коэффициент = ВыборкаТЧ.Коэффициент;
    Строка.Сумма = ВыборкаТЧ.Сумма;
    строка.СуммаНДС = ВыборкаТЧ.СуммаНДС;
    строка.Цена = ВыборкаТЧ.Цена;
    КонецЕсли;
    КонецЕсли;

    КонецЦикла;
    КонецЦикла;
```
---
попробовал только что вот так,сработало.
Если ВыборкаТЧ.Номенклатура.НеРезервировать = Истина тогда
  Сообщить("");

Спасибо вам огромное за помощь. Добавлю вас в друзья,если вы не против
---
Хорошо что сработало! Я сам тоже новичок))
---
прикольно))
как удалить строку эту (ту что копировали в другую таблицу)

```1c
    Если ВыборкаТЧ.Номенклатура.НеРезервировать = Истина тогда
    Сообщить(");
    иначе
    Если НЕ ЗначениеЗаполнено(ВыборкаТЧ.Размещение) тогда

    Строка = ТоварыНаУдаление.Добавить();
    Строка.Размещение = ВыборкаТЧ.Размещение;
    Строка.Номенклатура = ВыборкаТЧ.Номенклатура;
    Строка.ЕдиницаИзмерения = ВыборкаТЧ.ЕдиницаИзмерения;
    Строка.СтавкаНДС = ВыборкаТЧ.СтавкаНДС;
    Строка.Количество = ВыборкаТЧ.Количество;
    Строка.Коэффициент = ВыборкаТЧ.Коэффициент;
    Строка.Сумма = ВыборкаТЧ.Сумма;
    строка.СуммаНДС = ВыборкаТЧ.СуммаНДС;
    строка.Цена = ВыборкаТЧ.Цена;
    строкаизТовары = Товары;
    строкаизТовары.Удалить();
    КонецЕсли;
```

                         строкаизТовары = Товары;
    строкаизТовары.Удалить();- что-то сюда надо добавить наверно или изменить по другому как-то?!
---
Какую именно строку?

Где номенклатура.нерезервировать = истина?
---
смотри есть две таблицы:
таблица 1 и таблица 2
я беру копирую строку из таблицы 1 по условиям что выше писал,и вставляю в таблицу 2,но из первой таблицы мне нужно удалить эту строку.
---
```1c
    i=Таблица1.Количество();
    Пока i>0 Цикл
    Если ПустаяСтрока(Таблица1[i-1].НеРезервировать) Тогда
    Таблица1.Удалить(i-1);
    КонецЕсли;
    i=i-1;
    КонецЦикла;
```

попробуй так, тут ты будешь удалять те строки, в которых НеРезервировать не заполнено
---
спасибо друг,вот так влетает
П
```1c
    ока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ВыборкаТЧ = ВыборкаДетальныеЗаписи.Товары.Выбрать();
    Пока ВыборкаТЧ.Следующий() Цикл

    Если ВыборкаТЧ.Номенклатура.НеРезервировать = Истина тогда
    Сообщить(");
    иначе
    Если НЕ ЗначениеЗаполнено(ВыборкаТЧ.Размещение) тогда

    Строка = ТоварыНаУдаление.Добавить();
    Строка.Размещение = ВыборкаТЧ.Размещение;
    Строка.Номенклатура = ВыборкаТЧ.Номенклатура;
    Строка.ЕдиницаИзмерения = ВыборкаТЧ.ЕдиницаИзмерения;
    Строка.СтавкаНДС = ВыборкаТЧ.СтавкаНДС;
    Строка.Количество = ВыборкаТЧ.Количество;
    Строка.Коэффициент = ВыборкаТЧ.Коэффициент;
    Строка.Сумма = ВыборкаТЧ.Сумма;
    строка.СуммаНДС = ВыборкаТЧ.СуммаНДС;
    строка.Цена = ВыборкаТЧ.Цена;

    i=Товары.Количество();
    Пока i>0 Цикл
    Если ПустаяСтрока(Товары[i-1].Размещение) Тогда
    Товары.Удалить(i-1);
    КонецЕсли;
    i=i-1;
    КонецЦикла;

    КонецЕсли;
    КонецЕсли;

    КонецЦикла;
    КонецЦикла;
```

но нужно обработать ещё как-то НеРезервировать,я пока размещение сделал,а вот НеРезервировать так не прокатит,как его всунуть тут ещё в это условие?
---
а что надо сделать? я не понял
---
надо сделать ещё чтобы не удаляла,что если есть галочка в Справочнике Номенклатуры (НеРезервировать), если она установлена,то не удалять эти позиции
---
Так я ж написал?

```1c
    Если НЕ ЗначениеЗаполнено(Товары[i-1].Размещение)
```

или

```1c
    Если Товары[i-1].Размещение = Ложь
```
---
спасибо дружище,ты огонь! Очень помог,и сам научился и разобрался)
---
Хорошо, раз все получилось, если хочешь в Вк добавь меня, я так понимаю, и я, и ты, новички)

vk.com/ba_r01
---
уже добавляю,спасибо,мне всегда интересно делиться и учиться с кем-то)
---
я тут выше описывал
Если ВыборкаТЧ.Номенклатура.НеРезервировать = Истина тогда
Сообщить("");
иначе
Если НЕ ЗначениеЗаполнено(ВыборкаТЧ.Размещение) тогда
---
не,погоди,мне нужно не Размещение,а НеРезервировать
---
а, точно:

```1c
    i=Таблица1.Количество();
    Пока i>0 Цикл
    Если НЕ ЗначениеЗаполнено(Таблица1[i-1].Номенклатура.НеРезервировать) Тогда
    Таблица1.Удалить(i-1);
    КонецЕсли;
    i=i-1;
    КонецЦикла;
```

или

```1c
    i=Таблица1.Количество();
    Пока i>0 Цикл
    Если Таблица1[i-1].Номенклатура.НеРезервировать = Ложь Тогда
    Таблица1.Удалить(i-1);
    КонецЕсли;
    i=i-1;
    КонецЦикла;
```

или

```1c
    i=Таблица1.Количество();
    Пока i>0 Цикл
    Если НЕ Таблица1[i-1].Номенклатура.НеРезервировать Тогда
    Таблица1.Удалить(i-1);
    КонецЕсли;
    i=i-1;
    КонецЦикла;
```
---
спасибо большое,сейчас попробую
---
Если ВыборкаДетальныеЗаписи.НеРезервировать = Истина тогда
Сообщить("");
иначе
Если НЕ ЗначениеЗаполнено(ВыборкаТЧ.Размещение) тогда
вот это чтобы правильно работало,я так понимаю надо в запрос добавить справочник Номенклатуры?*
---
или можно просто через ссылку как-то обратиться?
---
Надо наверное добавить справочник в запрос, но надо связать справочник и документ, чтоб данные были правильными
---
Тч1.загрузить(ТЧ2 выгрузить(ТЧ2.найтиСтроки(Новый Структупа("Какоетополе", неопределено)),"список,колонок")
---
Спасибо,буду знать)))
---
писал что-то подобное - https://infostart.ru/public/460032/
те из заказа покупателя формируем таблицу которая читается в заказе поставщику
те строки что остались в заказе поставщику прописываются как размещение в заказе покупателя
при повторном вызове обработки они не будут попадать в табличную часть
---
прикольно)
---
Спасибо всем, Тема закрыта.