| 0
    
        IgorTrifonov   24.03.14✎ 10:29 | 
        Всем здрасьте. Есть задание с экономить бумагу.
То есть узенькую печать, печатать в две колонки. Как в газетах.
 Сначала первая колонка заполняется, затем вторая.
 И только, только, только, потом на печать.
 
 Алгоритмик простенький:
 Сначала я заполняю таблицу значений (читая запрос), а затем просто распечатываю эту самую таблицу значений.
 Таблица значений (тз) заполняется разными строками из запроса (в отладчике это хорошо видно)
 И записей в запросе примерно 200
 А вот когда распечатываю тз, то печатается 200 раз только одна запись.
 
 
 Пожалуйста направьте мозги в нужное русло.
 
 // в цикле заполним тз, а потом выведем тз на печать
 Запрос1 = Результат.Выбрать(ОбходРезультатаЗапроса.Прямой);
 Пока Запрос1.Следующий() Цикл
 
 Область = ?(ЧастьЛиста = Левая, ОбластьСтрока, ОбластьСтрока2);
 Область.Параметры.Заполнить(Запрос1);
 
 ПроверкаЗаполненияЛиста.Добавить(Область);
 Если Не ТабДок.ПроверитьВывод(ПроверкаЗаполненияЛиста) Тогда
 ПроверкаЗаполненияЛиста.Очистить();
 ПроверкаЗаполненияЛиста.Добавить(Область);
 КолВоСтрок = ?(КолВоСтрок = 0, пп, пп - КолВоСтрок);
 ЧастьЛиста = ?(ЧастьЛиста = Левая, Правая, Левая);
 КонецЕсли;
 
 Если ЧастьЛиста = Левая Тогда
 нс = тз.Добавить();
 нс.Левая = Область;    // нс[ЧастьЛиста] = Область;
 Иначе
 тз[пп - КолВоСтрок].Правая= Область;
 КонецЕсли;
 
 пп = пп + 1;
 КонецЦикла;
 
 Для Сч = 0 по тз.Количество() - 1 Цикл
 ТабДок.Вывести(тз[Сч].Левая);    ТабДок.Присоединить(тз[Сч].Правая);
 КонецЦикла;
 |  | 
    
        | 4
    
        azt-yur   24.03.14✎ 11:02 | 
        У вас одна и та же область перезаполняется каждый раз. 
Сделайте получение новой области при каждом проходе.
 Замените
 Область = ?(ЧастьЛиста = Левая, ОбластьСтрока, ОбластьСтрока2);
 На
 Область = ?(ЧастьЛиста = Левая, Макет.ПолучитьОбласть("Строка"), Макет.ПолучитьОбласть("Строка2");
 |  |