0
Родом из детства
10.11.21
✎
13:10
|
День добрый. В общем, код следующий:
1. Имеется массив табличных документов
2. В цикле обхожу этот массив, соединяя двух документов-соседей в один:
Для СчетчикДокументов = 0 по МассивТабличныхДокументов.Количество()-1 цикл
Если СчетчикДокументов + 1 > МассивТабличныхДокументов.Количество() - 1 тогда
Прервать;
Иначе
//док, который будет соединять два других
ПарныйДокумент = новый ТабличныйДокумент;
ЛевыйТД = МассивТабличныхДокументов[СчетчикДокументов];
ПравыйТД = МассивТабличныхДокументов[СчетчикДокументов + 1];
ПарныйДокумент.Вывести(ЛевыйТД);
ПарныйДокумент.Присоединить(ПравыйТД);
ПарныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
массивПарныхДокументов.Добавить(ПарныйДокумент);
СчетчикДокументов = СчетчикДокументов + 2;
КонецЕсли;
КонецЦикла;
4. Далее в цикле обхожу массивПарныхДокументов и в каждой итерации вывожу в результирующий табличный документ элемент этого массива.
Для Каждого ПарныйДокумент Из массивПарныхДокументов Цикл
ТабДок.Вывести(ПарныйДокумент);
КонецЦикла;
Возврат ТабДок;
Однако, в итоге, получаю табличный документ, где вся информация идет одна за другой, а не парно...
|
|
3
Родом из детства
10.11.21
✎
14:10
|
(1) В общем, нехорошие люди пишут, что сначала нужно выводить, а затем присоединять. Так работает
Для СчетчикДокументов = 0 по МассивТабличныхДокументов.Количество()-1 цикл
ПарныйДокумент = новый ТабличныйДокумент;
ЛевыйТД = МассивТабличныхДокументов[СчетчикДокументов];
ПарныйДокумент.Присоединить(ЛевыйТД);
Если СчетчикДокументов + 1 <= МассивТабличныхДокументов.Количество()-1 тогда
ПравыйТД = МассивТабличныхДокументов[СчетчикДокументов + 1];
ПарныйДокумент.Присоединить(ПравыйТД);
СчетчикДокументов = СчетчикДокументов + 1;
КонецЕсли;
массивПарныхДокументов.Добавить(ПарныйДокумент);
КонецЦикла;
|
|