Внешняя обработка. В модуле документа наСервере функция, в которой заполняется макет. Но не могу понять, как заполнить табличную часть из документа "Счет На оплату". Сделал запрос:

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

Далее делаю заполнение:

```1c
    Пока Выборка.Следующий() Цикл
    ОбластьНомера.Параметры.НомерСтроки = Выборка.Индекс(Выборка) + 1;
    ОбластьДанных.Параметры.Товар = СокрЛП(Выборка.Товар);
    ОбластьДанных.Параметры.Сумма = Сумма + Выборка.Сумма;
    ОбластьДанных.Параметры.СуммаНДС = СуммаНДС + Выборка.СуммаНДС;
    КонецЦикла;
```

только ничего не получается...
Помогите советом!
---
Ваш запрос берет источником данных документ, в выходных данных - таблица значений Товары. Соответственно, в выборке нет полей. Вернее, одно поле "Товары". Нужно брать источником данных табличную часть. Правильный запрос:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | СчетНаОплатуПокупателюТовары.НомерСтроки,
    | СчетНаОплатуПокупателюТовары.Номенклатура,
    | СчетНаОплатуПокупателюТовары.Количество,
    | СчетНаОплатуПокупателюТовары.Цена,
    | СчетНаОплатуПокупателюТовары.Сумма,
    | СчетНаОплатуПокупателюТовары.СтавкаНДС,
    | СчетНаОплатуПокупателюТовары.СуммаНДС
    |ИЗ
    | Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателю
    |ГДЕ
    | СчетНаОплатуПокупателю.Ссылка В(&Ссылка)";
```

Заполнение при этом я бы исправил так:

```1c
    Пока Выборка.Следующий() Цикл
    ОбластьНомера.Параметры.НомерСтроки = Выборка.НомерСтроки;
    ОбластьДанных.Параметры.Товар = СокрЛП(Выборка.Номенклатура);
    ОбластьДанных.Параметры.Сумма = "Сумма" + Выборка.Сумма;
    ОбластьДанных.Параметры.СуммаНДС = "СуммаНДС" + Выборка.СуммаНДС;
    КонецЦикла;
```
---
А строки табличной части кто будет перебирать? И уже из них брать Номенклатуру и прочее.
---
AngelVIII,
Есть 3 варианта:
1) Переписать запрос, тогда не нужно будет переписывать обработку

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | НомерСтроки,
    | Номенклатура,
    | Количество,
    | Цена,
    | Сумма,
    | СтавкаНДС,
    | СуммаНДС
    |
    |ИЗ
    | Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателю
    |ГДЕ
    | СчетНаОплатуПокупателю.Ссылка В(&Ссылка)";
```

и все...
другие два нужно править обработку запроса. Могу написать если надо..
---
да, очень надо. Любой из из вариантов
---
Ваш запрос берет источником данных документ, в выходных данных - таблица значений Товары. Соответственно, в выборке нет полей. Вернее, одно поле "Товары". Нужно брать источником данных табличную часть. Правильный запрос:

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | СчетНаОплатуПокупателюТовары.НомерСтроки,
    | СчетНаОплатуПокупателюТовары.Номенклатура,
    | СчетНаОплатуПокупателюТовары.Количество,
    | СчетНаОплатуПокупателюТовары.Цена,
    | СчетНаОплатуПокупателюТовары.Сумма,
    | СчетНаОплатуПокупателюТовары.СтавкаНДС,
    | СчетНаОплатуПокупателюТовары.СуммаНДС
    |ИЗ
    | Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплатуПокупателю
    |ГДЕ
    | СчетНаОплатуПокупателю.Ссылка В(&Ссылка)";
```

Заполнение при этом я бы исправил так:

```1c
    Пока Выборка.Следующий() Цикл
    ОбластьНомера.Параметры.НомерСтроки = Выборка.НомерСтроки;
    ОбластьДанных.Параметры.Товар = СокрЛП(Выборка.Номенклатура);
    ОбластьДанных.Параметры.Сумма = "Сумма" + Выборка.Сумма;
    ОбластьДанных.Параметры.СуммаНДС = "СуммаНДС" + Выборка.СуммаНДС;
    КонецЦикла;
```
---
ryzig,
```1c
    СокрЛП(Выборка.Номенклатура);
```
  - методологически неверно, нужно использовать представление. Плюс напомню про "ЗаполнитьЗначениеСвойств" )
---
(8) в ваших запросах ошибки, даже конструктор запроса не открывается!
А из-за того, что из запроса ничего не выходит, не заполняется табличная часть.
Но по вашим советам сделал так:

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

Ссылка - Это ссылка на документ, из которого надо выдернуть табличную часть. Но тоже не правильно. из запроса ошибка выходит.

PS. понял. .у меня в тестовом документе была услуга, поэтому не попадала в запрос.. пришлось сделать еще один запрос с Услугами.

цикл верный так:

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

"Я художник, я так вижу." =)
---
AngelVIII, да немножко не углядел, что вы в начале в обработке запроса наделали...

Понял..., что получилось и вы рады)..

П.с.: Есть кстати хорошая "секретная" и полезная опция - перед созданием запроса, правой кнопочкой нажимаете на пустом месте и выбираете "Конструктор запроса с обработкой результата", далее Да, и далее выбираете просто с перебором выборки (по умолчанию) или с выводом в таб док.