Имя: Пароль:
1C
1С v8
алгоритм ПроверитьВывод()
,
0 Sergafan
 
10.11.14
15:22
[CODE]      
        Шапка =  Макет.ПолучитьОбласть("Шапка");
        Строка = Макет.ПолучитьОбласть("Строка");
        Подвал = Макет.ПолучитьОбласть("Подвал");
        СтрокаСШапкой = Новый Массив;
    Для Каждого х из ТЗ Цикл         
        СтрокаСШапкой.Добавить(Шапка);        
        Если НЕ ТабДок.ПроверитьВывод(СтрокаСШапкой) Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
            СтрокаСШапкой.Очистить();
            СтрокаСШапкой.Добавить(Шапка);
        КонецЕсли;         
        ТабДок.Вывести(Шапка);
        
        Для Каждого у из Выгрузка Цикл                 
            СтрокаСШапкой.Добавить(Строка);                             
            ТабДок.Вывести(Строка);            
            КонецЦикла;

    СтрокаСШапкой.Добавить(Подвал);
    ТабДок.Вывести(Подвал);  
[/CODE]
Доброго времени суток, всем! Прошу помощи. Этот код оставляет много пустого места на странице, хотя Шапка(а иногда и строки с подвалом) могли бы уместиться на одной?
1 vicof
 
10.11.14
15:24
Слишком много областей напихал в массив
2 Drac0
 
10.11.14
15:25
(0) (1) ПроверитьВывод(), как и КоличествоСтраниц()криво работают. Там какая-то дикая погрешность в расчетах. На 8.3.5.1088 все так же.
3 vicof
 
10.11.14
15:33
(2) У меня на 8.2.17 нормально :)
4 Drac0
 
10.11.14
15:35
(3) Бывают ситуации, когда этот метод дает корректный результат даже на 8.3. :) Но логику я понять не смог...
5 Fish
 
10.11.14
15:41
(4) Да нормально работает ПроверитьВывод(). Но есть маленький нюанс, касающийся многострочных строк, где установлена автовысота и автоперенос текста.
6 1sanekmaloi1
 
10.11.14
15:50
Работает оно как надо, но каждый чих влияет на результат: параметры для текдока, параметры для принтера по умолчанию, сохраненные настройки пользователя, и можно перечислять до бесконечности
7 1sanekmaloi1
 
10.11.14
15:52
а в (0) не правильно заполняет массив для проверки
8 Drac0
 
10.11.14
16:08
(5) И какой же?
(6) Криво работает. Даже когда эти параметры не трогаются. Тупо промахивается в моем случае на пару строк. Причем это идет нарастающим итогом. Хотели сделать шапку табличной части на каждой странице, где есть табличная часть - не взлетело: 1С 8.3.4. Проблема в работе метода КоличествоСтраниц() табличного документа
9 Sergafan
 
10.11.14
16:21
У меня есть тоже предположение, что это косяк 1С. Потому что как ни пробовал, сколько массивов не пихал, - лучше не становилось. Платформа 8.3.5.1119
10 Sergafan
 
10.11.14
16:24
(4) Автовысота отключена, автоперенос вырубал - тухляк.
11 1sanekmaloi1
 
10.11.14
16:30
а типовой торг12 в БП, как ведет себя у вас, там этот метод используется для переноса строк?
12 Drac0
 
10.11.14
16:31
(11) нет. Там тупо считают количество строк. Похоже, в 1С в курсе об этом баге :)
13 1sanekmaloi1
 
10.11.14
16:34
хм, значит в ут 11, я буквально месяц назад смотрел, тестил на 3х компах, все было ок, на этих же 3х машинах и разработанная форма вела себя ок, а на 4м и торг 12 и моя форма глючили, потом куча манипуляций с принтерами, с чисткой кеша и т.д. на 4м тоже заработало.
14 1sanekmaloi1
 
10.11.14
16:35
+(13) выяснить причину увы не удалось
15 Drac0
 
10.11.14
16:37
(13) Вроде в УТ тоже раньше тупо считало количество строк. Надо глянуть будет.
16 1sanekmaloi1
 
10.11.14
16:43
буху 3.0 посмотрел, там используется именно ПроверитьВывод()
17 1sanekmaloi1
 
10.11.14
16:44
Если НЕ ОбщегоНазначенияБПВызовСервера.ПроверитьВыводТабличногоДокумента(ТабличныйДокумент, СтрокаСПодвалом) Тогда
18 Drac0
 
10.11.14
16:47
(17) Хм, любопытно. У нас на 2-х релизах 8.3 такой косяк на всех абсолютно компах. Надо копать, что не так.
AdBlock убивает бесплатный контент. 1Сергей