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

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