Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 14:56

Переделать запрос

Автор Antonio, 24 апр 2023, 23:42

0 Пользователей и 1 гость просматривают эту тему.

antoneus

Данные шапки и табличной части дергаем пакетным запросом, там и там в секцию ВЫБРАТЬ добавляем ссылку, в обоих запросах условие Ссылка В(&Ссылки), сначала выборка по данным шапки, заполняем шапку табдока, в выборке по табличным частям находим тч текущего документа:

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

возвращаем массив табдоков.

Antonio

antoneus, Посмотрите пожалуйста, все ли так. Вроде как вы сказали сделал. Табличная часть щас пустая возвращается. А в конце как правильно вернуть массив? его создать и добавить ТабДок туда, затем вернуть?

Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ЗаказКлиента.Организация КАК Организация,
| ЗаказКлиента.АдресДоставки КАК АдресДоставки,
| ЗаказКлиента.Номер КАК Номер,
| ЗаказКлиента.Контрагент.Наименование КАК КонтрагентНаименование,
| ЕСТЬNULL(ПартнерыАдресЭП.АдресЭП, НЕОПРЕДЕЛЕНО) КАК АдресЭПКонтрагента,
| ЕСТЬNULL(ПартнерыТелефон.НомерТелефона, НЕОПРЕДЕЛЕНО) КАК ТелефонКонтрагента,
| ЕСТЬNULL(СкладыАдрес.Представление, НЕОПРЕДЕЛЕНО) КАК АдресСклада,
| ЕСТЬNULL(СкладыТелефон.НомерТелефона, НЕОПРЕДЕЛЕНО) КАК ТелефонСклада,
| ЕСТЬNULL(ОрганизацииАдрес.Представление, НЕОПРЕДЕЛЕНО) КАК АдресОрганизации,
| ЕСТЬNULL(ОрганизацииАдресЭП.АдресЭП, НЕОПРЕДЕЛЕНО) КАК АдресЭпОрганизации,
| ЕСТЬNULL(ОрганизацииТелефон.НомерТелефона, НЕОПРЕДЕЛЕНО) КАК ТелефонОрганизации,
| ЗаказКлиента.БанковскийСчет.Банк.Код КАК БИК,
| ЗаказКлиента.БанковскийСчет.Банк.Ссылка КАК Банк,
| ЗаказКлиента.БанковскийСчет.НомерСчета КАК IBAN,
| ОрганизацииКонтактнаяИнформация.Регион КАК Город,
| ЗаказКлиента.Ссылка КАК Ссылка
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыАдресЭП
| ПО ЗаказКлиента.Партнер = ПартнерыАдресЭП.Ссылка
| И (ПартнерыАдресЭП.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты))
| И (ПартнерыАдресЭП.АдресЭП > """""""")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыТелефон
| ПО ЗаказКлиента.Партнер = ПартнерыТелефон.Ссылка
| И (ПартнерыТелефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
| И (ПартнерыТелефон.НомерТелефона > """""""")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады.КонтактнаяИнформация КАК СкладыАдрес
| ПО ЗаказКлиента.Склад = СкладыАдрес.Ссылка
| И (СкладыАдрес.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
| И (СкладыАдрес.Представление > """""""")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады.КонтактнаяИнформация КАК СкладыТелефон
| ПО ЗаказКлиента.Склад = СкладыТелефон.Ссылка
| И (СкладыТелефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
| И (СкладыТелефон.НомерТелефона > """""""")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииАдресЭП
| ПО ЗаказКлиента.Организация = ОрганизацииАдресЭП.Ссылка
| И (ОрганизацииАдресЭП.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты))
| И (ОрганизацииАдресЭП.АдресЭП > """""""")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииТелефон
| ПО ЗаказКлиента.Организация = ОрганизацииТелефон.Ссылка
| И (ОрганизацииТелефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
| И (ОрганизацииТелефон.Представление > """""""")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииАдрес
| ПО ЗаказКлиента.Организация = ОрганизацииАдрес.Ссылка
| И (ОрганизацииАдрес.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
| И (ОрганизацииАдрес.Представление > """""""")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
| ПО ЗаказКлиента.Организация = ОрганизацииКонтактнаяИнформация.Ссылка
|ГДЕ
| ЗаказКлиента.Ссылка В(&Ссылка)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
| ЗаказКлиентаТовары.Количество КАК Количество,
| ЗаказКлиентаТовары.Цена КАК Цена,
| ЗаказКлиентаТовары.Сумма КАК Сумма,
| ЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
| ЗаказКлиента.Валюта.Наименование КАК Валюта,
| ЗаказКлиента.Ссылка КАК Ссылка
|ИЗ
| Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКлиента
| ПО ЗаказКлиентаТовары.Ссылка = ЗаказКлиента.Ссылка
|ГДЕ
| ЗаказКлиента.Ссылка В(&Ссылка)";
Запрос.УстановитьПараметр("Ссылка", МассивОбъектов);
РезультатЗапроса = Запрос.ВыполнитьПакет();

Выборка1 = РезультатЗапроса[0].Выбрать();


ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьОрганизацияКонтрагент = Макет.ПолучитьОбласть("ОрганизацияКонтрагент");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ПОКА Выборка1.Следующий() Цикл
ОбластьШапка.Параметры.АдресСклада = Выборка1.АдресСклада;
ОбластьШапка.Параметры.ТелефонСклада = "Tel: " + Выборка1.ТелефонСклада;
ОбластьШапка.Параметры.НомерДокумента = Выборка1.Номер;
ОбластьШапка.Параметры.Контрагент = Выборка1.КонтрагентНаименование;
ОбластьШапка.Параметры.ДатаПечати = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
ОбластьОрганизацияКонтрагент.Параметры.Контрагент = Выборка1.КонтрагентНаименование;
ОбластьОрганизацияКонтрагент.Параметры.АдресКонтрагента = Выборка1.АдресДоставки;
ОбластьОрганизацияКонтрагент.Параметры.ТелефонКонтрагента = "Tel: " + Выборка1.ТелефонКонтрагента;
    ОбластьОрганизацияКонтрагент.Параметры.АдресЭПКонтрагент =" E-Mail: " + Выборка1.АдресЭПКонтрагента;
ОбластьОрганизацияКонтрагент.Параметры.Организация = Выборка1.Организация;
ОбластьОрганизацияКонтрагент.Параметры.АдресОрганизации = Выборка1.АдресОрганизации;
ОбластьОрганизацияКонтрагент.Параметры.ТелефонОрганизации = "Tel: "+ Выборка1.ТелефонОрганизации;
ОбластьОрганизацияКонтрагент.Параметры.АдресЭПОрганизации ="E-Mail: " + Выборка1.АдресЭПОрганизации;
ОбластьПодвал.Параметры.БИК = "BIC/SWIFT: " + Выборка1.БИК;
ОбластьПодвал.Параметры.БАН ="IBAN: " + Выборка1.IBAN;
ОбластьПодвал.Параметры.Банк=  "Bank: " + Выборка1.Банк;
ОбластьПодвал.Параметры.Город = "Address: " + Выборка1.Город;
КонецЦикла;
ТаблДокум.Вывести(ОбластьШапка);
ТаблДокум.Вывести(ОбластьОрганизацияКонтрагент);

ОбластьШапкаТабЧасти = Макет.ПолучитьОбласть("ШапкаТабЧасти");
ОбластьДеталиТабЧасти = Макет.ПолучитьОбласть("ДеталиТаблЧасти");
    ТаблДокум.Вывести(ОбластьШапкаТабЧасти);

Выборка2 = РезультатЗапроса[1].Выбрать();
СтруктураПоиска = Новый Структура("Ссылка", Выборка1.Ссылка);
Выборка2.НайтиСледующий(СтруктураПоиска);

СтрокиДокумента = Выборка2.Выбрать();
ТаблДокум.НачатьАвтогруппировкуСтрок();
Пока СтрокиДокумента.Следующий() Цикл
ОбластьДеталиТабЧасти.Параметры.Номенклатура = СтрокиДокумента.Номенклатура;
ОбластьДеталиТабЧасти.Параметры.Количество = СтрокиДокумента.Количество;
ОбластьДеталиТабЧасти.Параметры.Цена =  СтрокиДокумента.Цена;
ОбластьДеталиТабЧасти.Параметры.Сумма = СтрокиДокумента.Сумма;
ТаблДокум.Вывести(ОбластьДеталиТабЧасти);
КонецЦикла;

ТаблДокум.ЗакончитьАвтогруппировкуСтрок();
      ОбластьИтог = Макет.ПолучитьОбласть("Итог");
ОбластьИтог.Параметры.Итоги = СтрокиДокумента.СуммаДокумента;
ОбластьИтог.Параметры.Валюта = СтрокиДокумента.Валюта;

    ТаблДокум.Вывести(ОбластьИтог);
    ТаблДокум.Вывести(ОбластьПодвал);

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

ТаблДокум.АвтоМасштаб = Истина;
ТаблДокум.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТаблДокум.ПолеСлева = 5;
ТаблДокум.ПолеСправа = 5;
ТаблДокум.ВывестиГоризонтальныйРазделительСтраниц();
//МассивТабДок = Новый Массив;
//МассивТабДок.Добавить(ТаблДокум);
Возврат ТаблДокум

antoneus

Вот это

Выборка2 = РезультатЗапроса[1].Выбрать();
надо сделать до цикла по выборке1. А это
   
СтруктураПоиска = Новый Структура("Ссылка", Выборка1.Ссылка);
и так далее

надо делать внутри цикла по выборке1. После того, как цикл по Выборке1 прошел, в Выборка1.Ссылка уже ничего нет.

Antonio

antoneus, Сделал так пока, если правильно понял. Еще опять с проблемой столкнулся, что табличная часть в шапке печатается http://joxi.ru/BA03pk4tqx1Ry2 . Раньше тоже было такое, но решалось последовательным ПолучитьОбласть() и Вывести() по мере установки значений параметров для областей. Щас понимаю, что видимо ТаблДокум.Вывести() не на своих местах(ДеталиТаблЧасти выводятся раньше чем шапка), но куда правильно засунуть Вывести() пока не догоняю, по всякому пробовал.    &НаСервере
Функция СформироватьПечатнуюФорму(МассивОбъектов,КоллекцияПечатныхФорм)   Экспорт
ТаблДокум = Новый ТабличныйДокумент;
ТаблДокум.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ";
//область Адрессклада и областьОрганизация
Макет = ПолучитьМакет("Макет");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ЗаказКлиента.Организация КАК Организация,
| ЗаказКлиента.АдресДоставки КАК АдресДоставки,
| ЗаказКлиента.Номер КАК Номер,
| ЗаказКлиента.Контрагент.Наименование КАК КонтрагентНаименование,
| ЕСТЬNULL(ПартнерыАдресЭП.АдресЭП, НЕОПРЕДЕЛЕНО) КАК АдресЭПКонтрагента,
| ЕСТЬNULL(ПартнерыТелефон.НомерТелефона, НЕОПРЕДЕЛЕНО) КАК ТелефонКонтрагента,
| ЕСТЬNULL(СкладыАдрес.Представление, НЕОПРЕДЕЛЕНО) КАК АдресСклада,
| ЕСТЬNULL(СкладыТелефон.НомерТелефона, НЕОПРЕДЕЛЕНО) КАК ТелефонСклада,
| ЕСТЬNULL(ОрганизацииАдрес.Представление, НЕОПРЕДЕЛЕНО) КАК АдресОрганизации,
| ЕСТЬNULL(ОрганизацииАдресЭП.АдресЭП, НЕОПРЕДЕЛЕНО) КАК АдресЭпОрганизации,
| ЕСТЬNULL(ОрганизацииТелефон.НомерТелефона, НЕОПРЕДЕЛЕНО) КАК ТелефонОрганизации,
| ЗаказКлиента.БанковскийСчет.Банк.Код КАК БИК,
| ЗаказКлиента.БанковскийСчет.Банк.Ссылка КАК Банк,
| ЗаказКлиента.БанковскийСчет.НомерСчета КАК IBAN,
| ОрганизацииКонтактнаяИнформация.Регион КАК Город,
| ЗаказКлиента.Ссылка КАК Ссылка
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыАдресЭП
| ПО ЗаказКлиента.Партнер = ПартнерыАдресЭП.Ссылка
| И (ПартнерыАдресЭП.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты))
| И (ПартнерыАдресЭП.АдресЭП > """""""")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыТелефон
| ПО ЗаказКлиента.Партнер = ПартнерыТелефон.Ссылка
| И (ПартнерыТелефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
| И (ПартнерыТелефон.НомерТелефона > """""""")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады.КонтактнаяИнформация КАК СкладыАдрес
| ПО ЗаказКлиента.Склад = СкладыАдрес.Ссылка
| И (СкладыАдрес.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
| И (СкладыАдрес.Представление > """""""")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады.КонтактнаяИнформация КАК СкладыТелефон
| ПО ЗаказКлиента.Склад = СкладыТелефон.Ссылка
| И (СкладыТелефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
| И (СкладыТелефон.НомерТелефона > """""""")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииАдресЭП
| ПО ЗаказКлиента.Организация = ОрганизацииАдресЭП.Ссылка
| И (ОрганизацииАдресЭП.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты))
| И (ОрганизацииАдресЭП.АдресЭП > """""""")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииТелефон
| ПО ЗаказКлиента.Организация = ОрганизацииТелефон.Ссылка
| И (ОрганизацииТелефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
| И (ОрганизацииТелефон.Представление > """""""")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииАдрес
| ПО ЗаказКлиента.Организация = ОрганизацииАдрес.Ссылка
| И (ОрганизацииАдрес.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
| И (ОрганизацииАдрес.Представление > """""""")
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
| ПО ЗаказКлиента.Организация = ОрганизацииКонтактнаяИнформация.Ссылка
|ГДЕ
| ЗаказКлиента.Ссылка В(&Ссылка)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
| ЗаказКлиентаТовары.Количество КАК Количество,
| ЗаказКлиентаТовары.Цена КАК Цена,
| ЗаказКлиентаТовары.Сумма КАК Сумма,
| ЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
| ЗаказКлиента.Валюта.Наименование КАК Валюта,
| ЗаказКлиента.Ссылка КАК Ссылка
|ИЗ
| Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКлиента
| ПО ЗаказКлиентаТовары.Ссылка = ЗаказКлиента.Ссылка
|ГДЕ
| ЗаказКлиента.Ссылка В(&Ссылка)";

Запрос.УстановитьПараметр("Ссылка", МассивОбъектов);
РезультатЗапроса = Запрос.ВыполнитьПакет();

Выборка1 = РезультатЗапроса[0].Выбрать();
Выборка2 = РезультатЗапроса[1].Выбрать();

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьОрганизацияКонтрагент = Макет.ПолучитьОбласть("ОрганизацияКонтрагент");
      ОбластьШапкаТабЧасти = Макет.ПолучитьОбласть("ШапкаТабЧасти");
ОбластьДеталиТабЧасти = Макет.ПолучитьОбласть("ДеталиТаблЧасти");


ОбластьИтог = Макет.ПолучитьОбласть("Итог");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");


         
Пока Выборка1.Следующий() Цикл
СтруктураПоиска = Новый Структура("Ссылка", Выборка1.Ссылка);
Выборка2.НайтиСледующий(СтруктураПоиска);
СтрокиДокумента = Выборка2.Выбрать();
Пока выборка2.НайтиСледующий(СтруктураПоиска)Цикл

ОбластьШапка.Параметры.АдресСклада = Выборка1.АдресСклада;
ОбластьШапка.Параметры.ТелефонСклада = "Tel: " + Выборка1.ТелефонСклада;
ОбластьШапка.Параметры.НомерДокумента = Выборка1.Номер;
ОбластьШапка.Параметры.Контрагент = Выборка1.КонтрагентНаименование;
ОбластьШапка.Параметры.ДатаПечати = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");


ОбластьОрганизацияКонтрагент.Параметры.Контрагент = Выборка1.КонтрагентНаименование;
ОбластьОрганизацияКонтрагент.Параметры.АдресКонтрагента = Выборка1.АдресДоставки;
ОбластьОрганизацияКонтрагент.Параметры.ТелефонКонтрагента = "Tel: " + Выборка1.ТелефонКонтрагента;
    ОбластьОрганизацияКонтрагент.Параметры.АдресЭПКонтрагент =" E-Mail: " + Выборка1.АдресЭПКонтрагента;
ОбластьОрганизацияКонтрагент.Параметры.Организация = Выборка1.Организация;
ОбластьОрганизацияКонтрагент.Параметры.АдресОрганизации = Выборка1.АдресОрганизации;
ОбластьОрганизацияКонтрагент.Параметры.ТелефонОрганизации = "Tel: "+ Выборка1.ТелефонОрганизации;
ОбластьОрганизацияКонтрагент.Параметры.АдресЭПОрганизации ="E-Mail: " + Выборка1.АдресЭПОрганизации;

ОбластьПодвал.Параметры.БИК = "BIC/SWIFT: " + Выборка1.БИК;
ОбластьПодвал.Параметры.БАН ="IBAN: " + Выборка1.IBAN;
ОбластьПодвал.Параметры.Банк=  "Bank: " + Выборка1.Банк;
ОбластьПодвал.Параметры.Город = "Address: " + Выборка1.Город;


      ОбластьДеталиТабЧасти.Параметры.Номенклатура = Выборка2.Номенклатура;
ОбластьДеталиТабЧасти.Параметры.Количество = Выборка2.Количество;
ОбластьДеталиТабЧасти.Параметры.Цена =  Выборка2.Цена;
ОбластьДеталиТабЧасти.Параметры.Сумма = Выборка2.Сумма;

ОбластьИтог.Параметры.Итоги = Выборка2.СуммаДокумента;
ОбластьИтог.Параметры.Валюта = Выборка2.Валюта;
ТаблДокум.Вывести(ОбластьДеталиТабЧасти);

КонецЦикла;
        КонецЦикла;
 
ТаблДокум.Вывести(ОбластьШапка);

ТаблДокум.Вывести(ОбластьОрганизацияКонтрагент);

ТаблДокум.Вывести(ОбластьШапкаТабЧасти);


ТаблДокум.Вывести(ОбластьИтог);
 ТаблДокум.Вывести(ОбластьПодвал);

//
//ТаблДокум.ЗакончитьАвтогруппировкуСтрок();

//ТаблДокум.НачатьАвтогруппировкуСтрок();
   
   
  //ТаблДокум.Очистить();  

ТаблДокум.АвтоМасштаб = Истина;
ТаблДокум.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТаблДокум.ПолеСлева = 5;
ТаблДокум.ПолеСправа = 5;
ТаблДокум.ВывестиГоризонтальныйРазделительСтраниц();
МассивТабДок = Новый Массив;
МассивТабДок.Добавить(ТаблДокум);
Возврат МассивТабДок    

КонецФункции

Yotram

&НаСервере
Функция СформироватьПечатнуюФорму(МассивОбъектов,КоллекцияПечатныхФорм)   Экспорт
    ТаблДокум = Новый ТабличныйДокумент;
    ТаблДокум.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ";
//область Адрессклада и областьОрганизация
    Макет = ПолучитьМакет("Макет");
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    ЗаказКлиента.Организация КАК Организация,
        |    ЗаказКлиента.АдресДоставки КАК АдресДоставки,
        |    ЗаказКлиента.Номер КАК Номер,
        |    ЗаказКлиента.Контрагент.Наименование КАК КонтрагентНаименование,
        |    ЕСТЬNULL(ПартнерыАдресЭП.АдресЭП, НЕОПРЕДЕЛЕНО) КАК АдресЭПКонтрагента,
        |    ЕСТЬNULL(ПартнерыТелефон.НомерТелефона, НЕОПРЕДЕЛЕНО) КАК ТелефонКонтрагента,
        |    ЕСТЬNULL(СкладыАдрес.Представление, НЕОПРЕДЕЛЕНО) КАК АдресСклада,
        |    ЕСТЬNULL(СкладыТелефон.НомерТелефона, НЕОПРЕДЕЛЕНО) КАК ТелефонСклада,
        |    ЕСТЬNULL(ОрганизацииАдрес.Представление, НЕОПРЕДЕЛЕНО) КАК АдресОрганизации,
        |    ЕСТЬNULL(ОрганизацииАдресЭП.АдресЭП, НЕОПРЕДЕЛЕНО) КАК АдресЭпОрганизации,
        |    ЕСТЬNULL(ОрганизацииТелефон.НомерТелефона, НЕОПРЕДЕЛЕНО) КАК ТелефонОрганизации,
        |    ЗаказКлиента.БанковскийСчет.Банк.Код КАК БИК,
        |    ЗаказКлиента.БанковскийСчет.Банк.Ссылка КАК Банк,
        |    ЗаказКлиента.БанковскийСчет.НомерСчета КАК IBAN,
        |    ОрганизацииКонтактнаяИнформация.Регион КАК Город,
        |    ЗаказКлиента.Ссылка КАК Ссылка
        |ИЗ
        |    Документ.ЗаказКлиента КАК ЗаказКлиента
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыАдресЭП
        |        ПО ЗаказКлиента.Партнер = ПартнерыАдресЭП.Ссылка
        |            И (ПартнерыАдресЭП.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты))
        |            И (ПартнерыАдресЭП.АдресЭП > """""""")
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыТелефон
        |        ПО ЗаказКлиента.Партнер = ПартнерыТелефон.Ссылка
        |            И (ПартнерыТелефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
        |            И (ПартнерыТелефон.НомерТелефона > """""""")
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады.КонтактнаяИнформация КАК СкладыАдрес
        |        ПО ЗаказКлиента.Склад = СкладыАдрес.Ссылка
        |            И (СкладыАдрес.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
        |            И (СкладыАдрес.Представление > """""""")
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады.КонтактнаяИнформация КАК СкладыТелефон
        |        ПО ЗаказКлиента.Склад = СкладыТелефон.Ссылка
        |            И (СкладыТелефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
        |            И (СкладыТелефон.НомерТелефона > """""""")
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииАдресЭП
        |        ПО ЗаказКлиента.Организация = ОрганизацииАдресЭП.Ссылка
        |            И (ОрганизацииАдресЭП.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты))
        |            И (ОрганизацииАдресЭП.АдресЭП > """""""")
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииТелефон
        |        ПО ЗаказКлиента.Организация = ОрганизацииТелефон.Ссылка
        |            И (ОрганизацииТелефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
        |            И (ОрганизацииТелефон.Представление > """""""")
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииАдрес
        |        ПО ЗаказКлиента.Организация = ОрганизацииАдрес.Ссылка
        |            И (ОрганизацииАдрес.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
        |            И (ОрганизацииАдрес.Представление > """""""")
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
        |        ПО ЗаказКлиента.Организация = ОрганизацииКонтактнаяИнформация.Ссылка
        |ГДЕ
        |    ЗаказКлиента.Ссылка В(&Ссылка)
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
        |    ЗаказКлиентаТовары.Количество КАК Количество,
        |    ЗаказКлиентаТовары.Цена КАК Цена,
        |    ЗаказКлиентаТовары.Сумма КАК Сумма,
        |    ЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
        |    ЗаказКлиента.Валюта.Наименование КАК Валюта,
        |    ЗаказКлиента.Ссылка КАК Ссылка
        |ИЗ
        |    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКлиента
        |        ПО ЗаказКлиентаТовары.Ссылка = ЗаказКлиента.Ссылка
        |ГДЕ
        |    ЗаказКлиента.Ссылка В(&Ссылка)";
   
    Запрос.УстановитьПараметр("Ссылка", МассивОбъектов);
    РезультатЗапроса = Запрос.ВыполнитьПакет();

    Выборка1 = РезультатЗапроса[0].Выбрать();
    Выборка2 = РезультатЗапроса[1].Выбрать();
   
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьОрганизацияКонтрагент = Макет.ПолучитьОбласть("ОрганизацияКонтрагент");
      ОбластьШапкаТабЧасти = Макет.ПолучитьОбласть("ШапкаТабЧасти");
    ОбластьДеталиТабЧасти = Макет.ПолучитьОбласть("ДеталиТаблЧасти");

   


    ОбластьИтог = Макет.ПолучитьОбласть("Итог");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
   

// Перетащить вывод шапки сюда
ТаблДокум.Вывести(ОбластьШапка);

ТаблДокум.Вывести(ОбластьОрганизацияКонтрагент);
   
ТаблДокум.Вывести(ОбластьШапкаТабЧасти);   
   
             
    Пока Выборка1.Следующий() Цикл
    СтруктураПоиска = Новый Структура("Ссылка", Выборка1.Ссылка);
    Выборка2.НайтиСледующий(СтруктураПоиска);
    СтрокиДокумента = Выборка2.Выбрать();
    Пока выборка2.НайтиСледующий(СтруктураПоиска)Цикл
       
        ОбластьШапка.Параметры.АдресСклада = Выборка1.АдресСклада;
    ОбластьШапка.Параметры.ТелефонСклада = "Tel: " + Выборка1.ТелефонСклада;
    ОбластьШапка.Параметры.НомерДокумента = Выборка1.Номер;
    ОбластьШапка.Параметры.Контрагент = Выборка1.КонтрагентНаименование;
    ОбластьШапка.Параметры.ДатаПечати = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
   
   
    ОбластьОрганизацияКонтрагент.Параметры.Контрагент = Выборка1.КонтрагентНаименование;
    ОбластьОрганизацияКонтрагент.Параметры.АдресКонтрагента = Выборка1.АдресДоставки;
    ОбластьОрганизацияКонтрагент.Параметры.ТелефонКонтрагента = "Tel: " + Выборка1.ТелефонКонтрагента;
        ОбластьОрганизацияКонтрагент.Параметры.АдресЭПКонтрагент =" E-Mail: " + Выборка1.АдресЭПКонтрагента;
    ОбластьОрганизацияКонтрагент.Параметры.Организация = Выборка1.Организация;
    ОбластьОрганизацияКонтрагент.Параметры.АдресОрганизации = Выборка1.АдресОрганизации;
    ОбластьОрганизацияКонтрагент.Параметры.ТелефонОрганизации = "Tel: "+ Выборка1.ТелефонОрганизации;
    ОбластьОрганизацияКонтрагент.Параметры.АдресЭПОрганизации ="E-Mail: " + Выборка1.АдресЭПОрганизации;
       
    ОбластьПодвал.Параметры.БИК = "BIC/SWIFT: " + Выборка1.БИК;
    ОбластьПодвал.Параметры.БАН ="IBAN: " + Выборка1.IBAN;
    ОбластьПодвал.Параметры.Банк=  "Bank: " + Выборка1.Банк;
    ОбластьПодвал.Параметры.Город = "Address: " + Выборка1.Город;

   
              ОбластьДеталиТабЧасти.Параметры.Номенклатура = Выборка2.Номенклатура;
        ОбластьДеталиТабЧасти.Параметры.Количество = Выборка2.Количество;
        ОбластьДеталиТабЧасти.Параметры.Цена =  Выборка2.Цена;
        ОбластьДеталиТабЧасти.Параметры.Сумма = Выборка2.Сумма;
       
        ОбластьИтог.Параметры.Итоги = Выборка2.СуммаДокумента;
        ОбластьИтог.Параметры.Валюта = Выборка2.Валюта;
        ТаблДокум.Вывести(ОбластьДеталиТабЧасти);
       
    КонецЦикла;
        КонецЦикла;
     

   
ТаблДокум.Вывести(ОбластьИтог);
 ТаблДокум.Вывести(ОбластьПодвал);
   
    //
    //ТаблДокум.ЗакончитьАвтогруппировкуСтрок();
   
    //ТаблДокум.НачатьАвтогруппировкуСтрок();
   
       
      //ТаблДокум.Очистить();     
               
    ТаблДокум.АвтоМасштаб = Истина;
    ТаблДокум.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТаблДокум.ПолеСлева = 5;
    ТаблДокум.ПолеСправа = 5;
    ТаблДокум.ВывестиГоризонтальныйРазделительСтраниц();
    МассивТабДок = Новый Массив;
    МассивТабДок.Добавить(ТаблДокум);
    Возврат МассивТабДок           
               
КонецФункции

Yotram

Сорри) Не сработает) Не учел что это групповой вывод печатных форм
&НаСервере
Функция СформироватьПечатнуюФорму(МассивОбъектов,КоллекцияПечатныхФорм)   Экспорт
    ТаблДокум = Новый ТабличныйДокумент;
    ТаблДокум.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ";
//область Адрессклада и областьОрганизация
    Макет = ПолучитьМакет("Макет");
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    ЗаказКлиента.Организация КАК Организация,
        |    ЗаказКлиента.АдресДоставки КАК АдресДоставки,
        |    ЗаказКлиента.Номер КАК Номер,
        |    ЗаказКлиента.Контрагент.Наименование КАК КонтрагентНаименование,
        |    ЕСТЬNULL(ПартнерыАдресЭП.АдресЭП, НЕОПРЕДЕЛЕНО) КАК АдресЭПКонтрагента,
        |    ЕСТЬNULL(ПартнерыТелефон.НомерТелефона, НЕОПРЕДЕЛЕНО) КАК ТелефонКонтрагента,
        |    ЕСТЬNULL(СкладыАдрес.Представление, НЕОПРЕДЕЛЕНО) КАК АдресСклада,
        |    ЕСТЬNULL(СкладыТелефон.НомерТелефона, НЕОПРЕДЕЛЕНО) КАК ТелефонСклада,
        |    ЕСТЬNULL(ОрганизацииАдрес.Представление, НЕОПРЕДЕЛЕНО) КАК АдресОрганизации,
        |    ЕСТЬNULL(ОрганизацииАдресЭП.АдресЭП, НЕОПРЕДЕЛЕНО) КАК АдресЭпОрганизации,
        |    ЕСТЬNULL(ОрганизацииТелефон.НомерТелефона, НЕОПРЕДЕЛЕНО) КАК ТелефонОрганизации,
        |    ЗаказКлиента.БанковскийСчет.Банк.Код КАК БИК,
        |    ЗаказКлиента.БанковскийСчет.Банк.Ссылка КАК Банк,
        |    ЗаказКлиента.БанковскийСчет.НомерСчета КАК IBAN,
        |    ОрганизацииКонтактнаяИнформация.Регион КАК Город,
        |    ЗаказКлиента.Ссылка КАК Ссылка
        |ИЗ
        |    Документ.ЗаказКлиента КАК ЗаказКлиента
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыАдресЭП
        |        ПО ЗаказКлиента.Партнер = ПартнерыАдресЭП.Ссылка
        |            И (ПартнерыАдресЭП.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты))
        |            И (ПартнерыАдресЭП.АдресЭП > """""""")
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыТелефон
        |        ПО ЗаказКлиента.Партнер = ПартнерыТелефон.Ссылка
        |            И (ПартнерыТелефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
        |            И (ПартнерыТелефон.НомерТелефона > """""""")
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады.КонтактнаяИнформация КАК СкладыАдрес
        |        ПО ЗаказКлиента.Склад = СкладыАдрес.Ссылка
        |            И (СкладыАдрес.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
        |            И (СкладыАдрес.Представление > """""""")
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Склады.КонтактнаяИнформация КАК СкладыТелефон
        |        ПО ЗаказКлиента.Склад = СкладыТелефон.Ссылка
        |            И (СкладыТелефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
        |            И (СкладыТелефон.НомерТелефона > """""""")
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииАдресЭП
        |        ПО ЗаказКлиента.Организация = ОрганизацииАдресЭП.Ссылка
        |            И (ОрганизацииАдресЭП.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты))
        |            И (ОрганизацииАдресЭП.АдресЭП > """""""")
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииТелефон
        |        ПО ЗаказКлиента.Организация = ОрганизацииТелефон.Ссылка
        |            И (ОрганизацииТелефон.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
        |            И (ОрганизацииТелефон.Представление > """""""")
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииАдрес
        |        ПО ЗаказКлиента.Организация = ОрганизацииАдрес.Ссылка
        |            И (ОрганизацииАдрес.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
        |            И (ОрганизацииАдрес.Представление > """""""")
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
        |        ПО ЗаказКлиента.Организация = ОрганизацииКонтактнаяИнформация.Ссылка
        |ГДЕ
        |    ЗаказКлиента.Ссылка В(&Ссылка)
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
        |    ЗаказКлиентаТовары.Количество КАК Количество,
        |    ЗаказКлиентаТовары.Цена КАК Цена,
        |    ЗаказКлиентаТовары.Сумма КАК Сумма,
        |    ЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
        |    ЗаказКлиента.Валюта.Наименование КАК Валюта,
        |    ЗаказКлиента.Ссылка КАК Ссылка
        |ИЗ
        |    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
        |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК ЗаказКлиента
        |        ПО ЗаказКлиентаТовары.Ссылка = ЗаказКлиента.Ссылка
        |ГДЕ
        |    ЗаказКлиента.Ссылка В(&Ссылка)";
   
    Запрос.УстановитьПараметр("Ссылка", МассивОбъектов);
    РезультатЗапроса = Запрос.ВыполнитьПакет();

    Выборка1 = РезультатЗапроса[0].Выбрать();
    Выборка2 = РезультатЗапроса[1].Выбрать();
   
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьОрганизацияКонтрагент = Макет.ПолучитьОбласть("ОрганизацияКонтрагент");
      ОбластьШапкаТабЧасти = Макет.ПолучитьОбласть("ШапкаТабЧасти");
    ОбластьДеталиТабЧасти = Макет.ПолучитьОбласть("ДеталиТаблЧасти");

    ОбластьИтог = Макет.ПолучитьОбласть("Итог");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");   
             
    Пока Выборка1.Следующий() Цикл
    СтруктураПоиска = Новый Структура("Ссылка", Выборка1.Ссылка);
    Выборка2.НайтиСледующий(СтруктураПоиска);
    СтрокиДокумента = Выборка2.Выбрать();
    Пока выборка2.НайтиСледующий(СтруктураПоиска)Цикл
       
    ОбластьШапка.Параметры.АдресСклада = Выборка1.АдресСклада;
    ОбластьШапка.Параметры.ТелефонСклада = "Tel: " + Выборка1.ТелефонСклада;
    ОбластьШапка.Параметры.НомерДокумента = Выборка1.Номер;
    ОбластьШапка.Параметры.Контрагент = Выборка1.КонтрагентНаименование;
    ОбластьШапка.Параметры.ДатаПечати = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
   
   
    ОбластьОрганизацияКонтрагент.Параметры.Контрагент = Выборка1.КонтрагентНаименование;
    ОбластьОрганизацияКонтрагент.Параметры.АдресКонтрагента = Выборка1.АдресДоставки;
    ОбластьОрганизацияКонтрагент.Параметры.ТелефонКонтрагента = "Tel: " + Выборка1.ТелефонКонтрагента;
    ОбластьОрганизацияКонтрагент.Параметры.АдресЭПКонтрагент =" E-Mail: " + Выборка1.АдресЭПКонтрагента;
    ОбластьОрганизацияКонтрагент.Параметры.Организация = Выборка1.Организация;
    ОбластьОрганизацияКонтрагент.Параметры.АдресОрганизации = Выборка1.АдресОрганизации;
    ОбластьОрганизацияКонтрагент.Параметры.ТелефонОрганизации = "Tel: "+ Выборка1.ТелефонОрганизации;
    ОбластьОрганизацияКонтрагент.Параметры.АдресЭПОрганизации ="E-Mail: " + Выборка1.АдресЭПОрганизации;
     
// Перетащить вывод шапки сюда
ТаблДокум.Вывести(ОбластьШапка);
ТаблДокум.Вывести(ОбластьОрганизацияКонтрагент); 
ТаблДокум.Вывести(ОбластьШапкаТабЧасти);
   
    ОбластьПодвал.Параметры.БИК = "BIC/SWIFT: " + Выборка1.БИК;
    ОбластьПодвал.Параметры.БАН ="IBAN: " + Выборка1.IBAN;
    ОбластьПодвал.Параметры.Банк=  "Bank: " + Выборка1.Банк;
    ОбластьПодвал.Параметры.Город = "Address: " + Выборка1.Город;

   
              ОбластьДеталиТабЧасти.Параметры.Номенклатура = Выборка2.Номенклатура;
        ОбластьДеталиТабЧасти.Параметры.Количество = Выборка2.Количество;
        ОбластьДеталиТабЧасти.Параметры.Цена =  Выборка2.Цена;
        ОбластьДеталиТабЧасти.Параметры.Сумма = Выборка2.Сумма;
       
        ОбластьИтог.Параметры.Итоги = Выборка2.СуммаДокумента;
        ОбластьИтог.Параметры.Валюта = Выборка2.Валюта;
        ТаблДокум.Вывести(ОбластьДеталиТабЧасти);
       
    КонецЦикла;
        КонецЦикла;
     

   
ТаблДокум.Вывести(ОбластьИтог);
 ТаблДокум.Вывести(ОбластьПодвал);
   
    //
    //ТаблДокум.ЗакончитьАвтогруппировкуСтрок();
   
    //ТаблДокум.НачатьАвтогруппировкуСтрок();
   
       
      //ТаблДокум.Очистить();     
               
    ТаблДокум.АвтоМасштаб = Истина;
    ТаблДокум.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТаблДокум.ПолеСлева = 5;
    ТаблДокум.ПолеСправа = 5;
    ТаблДокум.ВывестиГоризонтальныйРазделительСтраниц();
    МассивТабДок = Новый Массив;
    МассивТабДок.Добавить(ТаблДокум);
    Возврат МассивТабДок           
               
КонецФункции

antoneus

ну алгоритм же надо сперва набросать хотя бы, а потом уже кодить

Запрос
Выборка1
Выборка2
Цикл по выборке1
Создание нового табличного документа
Заполнение и вывод шапки
Цикл по выборке2
Заполнение и вывод табличной части
Конец цикла по выборке2
Заполнение и вывод подвала
добавление табличного документа в массив
Конец цикла по выборке1
Возврат массива

И да, если мы предусматриваем групповую печать - ВЫБРАТЬ ПЕРВЫЕ 1 как-то противоречит нашим планам.

Antonio

antoneus, Добрый день, если верно соблюден алгоритм, то пока так(сам запрос уж кидать не буду. ПЕРВЫЕ 1 в нем заменил на РАЗЛИЧНЫЕ). Щас из внутреннего цикла по выборке 2 вообще на печать ничего не возвращается, даже шапка таблицы. по отладчику все норм показывает, все значения в параметрах есть. Остальные области печатаются нормально. UPD Наверное итоги и шапкутаблицы можно за второй цикл вынести
Запрос.УстановитьПараметр("Ссылка", МассивОбъектов);
РезультатЗапроса = Запрос.ВыполнитьПакет();

Выборка1 = РезультатЗапроса[0].Выбрать();
Выборка2 = РезультатЗапроса[1].Выбрать();

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьОрганизацияКонтрагент = Макет.ПолучитьОбласть("ОрганизацияКонтрагент");
      ОбластьШапкаТабЧасти = Макет.ПолучитьОбласть("ШапкаТабЧасти");
ОбластьДеталиТабЧасти = Макет.ПолучитьОбласть("ДеталиТаблЧасти");


ОбластьИтог = Макет.ПолучитьОбласть("Итог");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

МассивТабДок = Новый Массив;
         
Пока Выборка1.Следующий() Цикл
ТаблДокум = Новый ТабличныйДокумент;
ТаблДокум.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ";

ОбластьШапка.Параметры.АдресСклада = Выборка1.АдресСклада;
ОбластьШапка.Параметры.ТелефонСклада = "Tel: " + Выборка1.ТелефонСклада;
ОбластьШапка.Параметры.НомерДокумента = Выборка1.Номер;
ОбластьШапка.Параметры.Контрагент = Выборка1.КонтрагентНаименование;
ОбластьШапка.Параметры.ДатаПечати = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
ТаблДокум.Вывести(ОбластьШапка);

ОбластьОрганизацияКонтрагент.Параметры.Контрагент = Выборка1.КонтрагентНаименование;
ОбластьОрганизацияКонтрагент.Параметры.АдресКонтрагента = Выборка1.АдресДоставки;
ОбластьОрганизацияКонтрагент.Параметры.ТелефонКонтрагента = "Tel: " + Выборка1.ТелефонКонтрагента;
    ОбластьОрганизацияКонтрагент.Параметры.АдресЭПКонтрагент =" E-Mail: " + Выборка1.АдресЭПКонтрагента;
ОбластьОрганизацияКонтрагент.Параметры.Организация = Выборка1.Организация;
ОбластьОрганизацияКонтрагент.Параметры.АдресОрганизации = Выборка1.АдресОрганизации;
ОбластьОрганизацияКонтрагент.Параметры.ТелефонОрганизации = "Tel: "+ Выборка1.ТелефонОрганизации;
ОбластьОрганизацияКонтрагент.Параметры.АдресЭПОрганизации ="E-Mail: " + Выборка1.АдресЭПОрганизации;
ТаблДокум.Вывести(ОбластьОрганизацияКонтрагент);

СтруктураПоиска = Новый Структура("Ссылка", Выборка1.Ссылка);
Выборка2.НайтиСледующий(СтруктураПоиска);
СтрокиДокумента = Выборка2.Выбрать();
Пока СтрокиДокумента.НайтиСледующий(СтруктураПоиска)Цикл

ОбластьДеталиТабЧасти.Параметры.Номенклатура = Выборка2.Номенклатура;
ОбластьДеталиТабЧасти.Параметры.Количество = Выборка2.Количество;
ОбластьДеталиТабЧасти.Параметры.Цена =  Выборка2.Цена;
ОбластьДеталиТабЧасти.Параметры.Сумма = Выборка2.Сумма;

ОбластьИтог.Параметры.Итоги = Выборка2.СуммаДокумента;
ОбластьИтог.Параметры.Валюта = Выборка2.Валюта;
ТаблДокум.Вывести(ОбластьШапкаТабЧасти);
ТаблДокум.Вывести(ОбластьДеталиТабЧасти);
    ТаблДокум.Вывести(ОбластьИтог);
КонецЦикла;


ОбластьПодвал.Параметры.БИК = "BIC/SWIFT: " + Выборка1.БИК;
ОбластьПодвал.Параметры.БАН ="IBAN: " + Выборка1.IBAN;
ОбластьПодвал.Параметры.Банк=  "Bank: " + Выборка1.Банк;
ОбластьПодвал.Параметры.Город = "Address: " + Выборка1.Город;
    ТаблДокум.Вывести(ОбластьПодвал);

    МассивТабДок.Добавить(ТаблДокум);     
КонецЦикла;
 
//
//ТаблДокум.ЗакончитьАвтогруппировкуСтрок();

//ТаблДокум.НачатьАвтогруппировкуСтрок();
     
  //ТаблДокум.Очистить();  

ТаблДокум.АвтоМасштаб = Истина;
ТаблДокум.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТаблДокум.ПолеСлева = 5;
ТаблДокум.ПолеСправа = 5;
ТаблДокум.ВывестиГоризонтальныйРазделительСтраниц();


Возврат МассивТабДок

antoneus

Потому что надо

Пока СтрокиДокумента.Следующий() Цикл
Опять же - шапку тч выводим до цикла по строкам, итог тч - после цикла по строкам. Вот это

    ТаблДокум.АвтоМасштаб = Истина;
    ТаблДокум.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТаблДокум.ПолеСлева = 5;
    ТаблДокум.ПолеСправа = 5;
    ТаблДокум.ВывестиГоризонтальныйРазделительСтраниц();

тоже внутри цикла по выборке1, перед добавлением в массив.

LexaK

Antonio, попробуйте это
    СтруктураПоиска = Новый Структура("Ссылка", Выборка1.Ссылка);
    Выборка2.НайтиСледующий(СтруктураПоиска);
    СтрокиДокумента = Выборка2.Выбрать();
    Пока СтрокиДокумента.НайтиСледующий(СтруктураПоиска)Цикл

заменит на это
    Пока Выборка2.НайтиСледующий(Выборка1.Ссылка, "Ссылка")Цикл
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск