Здравствуйте!
Конфигурация на УФ. Есть документ с ТЧ.
К этому документу сделана печатная форма. Подскажите, пожалуйста, как можно вывести на макет строки тч так:
<Строка1>
<Строка2>
<Строка3> и т.д., т.е. строки ТЧ на печать нужно выводить фиксированно, определенная строка ТЧ выводится в указанный параметр ПФ?
Простите за путанное объяснение.
Спасибо.
---
Лучше убрать из запроса табличную часть и получить ее отдельным запросом.

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | РеализацияТоваровУслуг.Номер КАК Номер,
    | РеализацияТоваровУслуг.Дата КАК Дата
    |ИЗ
    | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ
    | РеализацияТоваровУслуг.Ссылка = &Ссылка
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    | РеализацияТоваровУслугТовары.КоличествоМест КАК КоличествоМест,
    | РеализацияТоваровУслугТовары.Цена КАК Цена,
    | РеализацияТоваровУслугТовары.Сумма КАК Сумма
    |ИЗ
    | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |ГДЕ
    | РеализацияТоваровУслугТовары.Ссылка = &Ссылка";

    РезультатЗапроса = Запрос.ВыполнитьПакет();
    ДанныеШапки = РезультатЗапроса[0].Выбрать;
    ДанныеТЧ = РезультатЗапроса[1].Выгрузить;
```
---
```1c
    Сч = 1;
    Для каждого Стр Из Выборка.ЗаданиеВодителю Цикл
    ОбластьЛицевая.Параметры["СтрокаЗВ"+Сч] = Стр.Место;

    Сч = Сч+1;
    КонецЦикла
```
---
Доброе утро.

Самое простое воспользоваться конструктором запросов.

```1c
    Макет = ВнешниеОбработки.ВнешняяОбработка1.ПолучитьМакет("Макет");

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | РеализацияТоваровУслугТовары.НомерСтроки КАК НомерСтроки,
    | РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    | ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Номенклатура) КАК НоменклатураПредставление,
    | РеализацияТоваровУслугТовары.КоличествоМест КАК КоличествоМест,
    | РеализацияТоваровУслугТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения
    |ИЗ
    | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары";

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

    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

    ТабДок.Очистить();

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

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
    ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    КонецЦикла;
```

Если процедура будет в форме , то надо макет получать так:

Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
---
Есть ТЧ, в ней, например, строки:

1. Номенклатура 1
2. Номенклатура 2
3. Номенклатура 3
...
n. Номенклатура n

а в печатной форме сделано всего лишь 5 строк:
<Строка1>
<Строка2>
<Строка3>
<Строка4>
<Строка5>
Следовательно, остальные строки на печать попадать не должны.
Получается нужно вывести, например, первые пять позиций ТЧ.
Сомневаюсь, что конструктор такое сможет сделать.
---
Было бы нагляднее увидеть макет.
А так :

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

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

    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

    ТабДок.Очистить();

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

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ОбластьДетальныхЗаписей.Параметры["Номерклатура" + ВыборкаДетальныеЗаписи.НомерСтроки]

    КонецЦикла;
    ТабДок.Вывести(ОбластьДетальныхЗаписей);
```
---
Сам макет
---
На нем параметры СтрокаЗВ1, СтрокаЗВ2, СтрокаЗВ3, СтрокаЗВ4, СтрокаЗВ5. В данных полях должны появляться строки тч по номерами 1, 2, 3, 4, 5 соответственно.
---
Тогда этот вариант подойдет:
Сч= 1;
Для каждого Стр Из ТабличнаяЧастьДокумента Цикл

  ОбластьДетальныхЗаписей.Параметры["Строка3В" + Сч];
  Сч= Сч+1;
КонецЦикла;
---
Сам запрос:

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

    ОбластьЛицевая = Макет.ПолучитьОбласть("Лицевая");

    ОбластьОборотная = Макет.ПолучитьОбласть("Оборотная");
    ТабДок.Очистить();

    ВставлятьРазделительСтраниц = Ложь;
    Пока Выборка.Следующий() Цикл
    Если ВставлятьРазделительСтраниц Тогда
    ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;

    ОбластьЛицевая.Параметры.Номер = Выборка.Номер;
    ОбластьЛицевая.Параметры.ДатаВыписки = Формат(Выборка.Дата, "ДЛФ=ДД");
    ОбластьЛицевая.Параметры.ТекстДействителенДо = Формат(Выборка.ДействителенДо, "ДЛФ=ДД");
    ОбластьЛицевая.Параметры.МодельТС = Выборка.ТСМарка;
    ОбластьЛицевая.Параметры.ТранспортноеСредствоГосНомер = Выборка.ТСГосНомер;
    ОбластьЛицевая.Параметры.Водитель1 = Выборка.Наименование1;
    ОбластьЛицевая.Параметры.ВодительКод1 = Выборка.Код1;
    ОбластьЛицевая.Параметры.Водитель2 = Выборка.Наименование2;
    ОбластьЛицевая.Параметры.ВодительКод2 = Выборка.Код2;
    ОбластьЛицевая.Параметры.ДатаВыезда_ДД = Формат(Выборка.ВыездИзГаража, "ДФ=дд");
    ОбластьЛицевая.Параметры.ДатаВыезда_ММММ = Формат(Выборка.ВыездИзГаража, "ДФ=ММ");
    ОбластьЛицевая.Параметры.ВремяВыезда_ЧЧ = Формат(Выборка.ВыездИзГаража, "ДФ=ЧЧ");
    ОбластьЛицевая.Параметры.ВремяВыезда_ММ = Формат(Выборка.ВыездИзГаража, "ДФ=мм");
    ОбластьЛицевая.Параметры.ДатаВозвращения_ДД = Формат(Выборка.ВозвращениеВГараж, "ДФ=дд");
    ОбластьЛицевая.Параметры.ДатаВозвращения_ММММ = Формат(Выборка.ВозвращениеВГараж, "ДФ=ММ");
    ОбластьЛицевая.Параметры.ВремяВозвращения_ЧЧ = Формат(Выборка.ВозвращениеВГараж, "ДФ=ЧЧ");
    ОбластьЛицевая.Параметры.ВремяВозвращения_ММ = Формат(Выборка.ВозвращениеВГараж, "ДФ=мм");
    ОбластьЛицевая.Параметры.ГСМ1 = Выборка.ГорючееОсновное;
    ОбластьЛицевая.Параметры.ВыданоГСМ1 = Выборка.ВыданоОсновное;
    ОбластьЛицевая.Параметры.ОстатокПриВыезде1 = Выборка.ОстатокВыездОсновное;
    ОбластьЛицевая.Параметры.ОстатокПриВозвращении1 = Выборка.ОстатокВозвращениеОсновное;
    ОбластьЛицевая.Параметры.СданоГСМ1 = Выборка.СданоОсновное;
    ОбластьЛицевая.Параметры.ГСМ2 = Выборка.ГорючееДополнительное;
    ОбластьЛицевая.Параметры.ВыданоГСМ2 = Выборка.ВыданоДополнительное;
    ОбластьЛицевая.Параметры.ОстатокПриВыезде2 = Выборка.ОстатокВыездДополнительное;
    ОбластьЛицевая.Параметры.ОстатокПриВозвращении2 = Выборка.ОстатокВозвращениеДополнительное;
    ОбластьЛицевая.Параметры.СданоГСМ2 = Выборка.СданоДополнительное;
    ОбластьЛицевая.Параметры.ВодительПринял = Выборка.Наименование1;
    ОбластьЛицевая.Параметры.ВодительСдал = Выборка.Наименование1;
    ОбластьЛицевая.Параметры.ОсмотрелВрач = Выборка.Врач;
    ОбластьЛицевая.Параметры.ВыдалДиспетчер = Выборка.ВыдалДиспетчер;
    ОбластьЛицевая.Параметры.ВыпустилМеханик = Выборка.ВыпустилМеханик;
    ОбластьЛицевая.Параметры.ПринялМеханик = Выборка.ПринялМеханик;
    Если ЗначениеЗаполнено(Выборка.ГорючееДополнительное) Тогда
    ОбластьЛицевая.Параметры.ВыдатьГорючее = Строка(Выборка.ГорючееОсновное) + " " + "и" + " " + Строка(Выборка.ГорючееДополнительное);
    Иначе
    ОбластьЛицевая.Параметры.ВыдатьГорючее = Выборка.ГорючееОсновное;
    КонецЕсли;
    Если ЗначениеЗаполнено(Выборка.ВыданоДополнительное) Тогда
    ОбластьЛицевая.Параметры.ВыдатьКоличествоГорючего = Строка(Выборка.ВыданоОсновное) + " " + "и" + " " + Строка(Выборка.ВыданоДополнительное);
    Иначе
    ОбластьЛицевая.Параметры.ВыдатьКоличествоГорючего = Выборка.ВыданоОсновное;
    КонецЕсли;
    ОбластьЛицевая.Параметры.СпидометрВыезда = Выборка.ОдометрВыезд;
    ОбластьЛицевая.Параметры.СпидометрВозвращения = Выборка.ОдометрВозвращение;
    //ОбластьЛицевая.Параметры.СтрокаЗВ1 = "Место";
    ТабДок.Вывести(ОбластьЛицевая);

    ТабДок.Вывести(ОбластьОборотная);

    ВставлятьРазделительСтраниц = Истина;
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабДок.АвтоМасштаб = Истина;

    КонецЦикла;
    //}}
```
---
```1c
    Сч = 1;
    Для каждого Стр Из Выборка.ЗаданиеВодителю Цикл
    ОбластьЛицевая.Параметры["СтрокаЗВ"+Сч] = Стр.Место;

    Сч = Сч+1;
    КонецЦикла
```
---
Итератор для значения не определен
  Для каждого Стр Из Выборка.ЗаданиеВодителю Цикл
---
Лучше убрать из запроса табличную часть и получить ее отдельным запросом.

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | РеализацияТоваровУслуг.Номер КАК Номер,
    | РеализацияТоваровУслуг.Дата КАК Дата
    |ИЗ
    | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ
    | РеализацияТоваровУслуг.Ссылка = &Ссылка
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    | РеализацияТоваровУслугТовары.КоличествоМест КАК КоличествоМест,
    | РеализацияТоваровУслугТовары.Цена КАК Цена,
    | РеализацияТоваровУслугТовары.Сумма КАК Сумма
    |ИЗ
    | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |ГДЕ
    | РеализацияТоваровУслугТовары.Ссылка = &Ссылка";

    РезультатЗапроса = Запрос.ВыполнитьПакет();
    ДанныеШапки = РезультатЗапроса[0].Выбрать;
    ДанныеТЧ = РезультатЗапроса[1].Выгрузить;
```
---
Спасибо большое за терпеливые подсказки. Вы мне очень помогли. Все работает.