Имя: Пароль:
1C
1С v8
Пропускает строки при печати печатной формы
,
0 konst1231
 
10.06.14
12:05
Здравсвуйте,
Не могу разобраться - есть печатная форма док-та, при выводе которой в таб. документ в некоторых случаях появляются пропуски при выводе строк. Смотрел в отладчике,  св-во табличного документа ТабДок.ВысотаТаблицы при очередной итерации цикла менятся с 3 на 5 и т.д. Код простой, макет тоже.

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

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

Для Каждого СтрокаТЗ из ТЗ Цикл
    Область.Параметры.Заполнить(СтрокаТЗ);
    ТабДок.Вывести(Область);
    
КонецЦикла;
1 dj_serega
 
10.06.14
12:06
А сколько строк в области "Строка"?
2 godmod80
 
10.06.14
12:09
может в ТЗ пустые строки
3 konst1231
 
10.06.14
12:13
(1) одна
4 konst1231
 
10.06.14
12:14
(2) нет, нет пустых строк, смотрел в отладчике
5 konst1231
 
10.06.14
12:18
(2) в секции строка есть не только параметры, но и просто текст, он то в любом случае должен выводится.
6 Крошка Ру
 
10.06.14
12:21
(5) А чисто случайно, нет параметров, которые могут не помещаться в одну строку?
7 konst1231
 
10.06.14
12:22
8 konst1231
 
10.06.14
12:23
(6) вроде нет
9 singlych
 
10.06.14
12:38
Область=Макет.ПолучитьОбласть("Строка");
в цикл засунь
10 dj_serega
 
10.06.14
12:41
(0) а у тебя дальше по коду (после цикла) используется область "Строка"?
11 kosts
 
10.06.14
12:47
(0) Больше, больше кода...
12 konst1231
 
10.06.14
12:50
Нашел причину,
чтобы не перегружать коллег немного сократил код в (0),
в цикле есть еще строка


          
        Если  СтрокаТЗ.РазницаКоличество<>0 Тогда
            Область.Область(НомерСтроки,6,НомерСтроки,6).ЦветТекста = WebЦвета.Красный;
        КонецЕсли;

при комментировании, которой пропуски исчезают
13 konst1231
 
10.06.14
12:53
ТабДок=Новый ТабличныйДокумент;
    Макет=ПолучитьМакет("Печать");
    Область=Макет.ПолучитьОбласть("Шапка");
    ТабДок.Вывести(Область);

    НомерСтроки=1;
    Для Каждого СтрокаТЗ из ТЗ Цикл
        Область=Макет.ПолучитьОбласть("Строка");
        Область.Параметры.Заполнить(СтрокаТЗ);
          
        Если  СтрокаТЗ.РазницаКоличество<>0 Тогда
            Область.Область(НомерСтроки,6,НомерСтроки,6).ЦветТекста = WebЦвета.Красный;
        КонецЕсли;
        
        ТабДок.Вывести(Область);

        НомерСтроки=НомерСтроки+1;
    КонецЦикла;    
    
    Возврат ТабДок;
14 konst1231
 
10.06.14
12:55
А в чем проблема в этой строке:
Область.Область(НомерСтроки,6,НомерСтроки,6).ЦветТекста = WebЦвета.Красный
?
15 konst1231
 
10.06.14
13:29
Господа всем спасибо за ответы
16 kosts
 
10.06.14
13:29
(14) Скорее всего смещает курсор ...
17 Крошка Ру
 
10.06.14
13:56
(12)"чтобы не перегружать коллег немного сократил код в (0)"

konst1231, ты садист!