Имя: Пароль:
1C
1С v8
Печать Таблицы на нескольких страницах
0 Csar
 
05.03.13
14:02
Всем привет.
Подскажите, пожалуйста, как организовать корректную печать табличного документа на нескольких страниц? Дело в том, что если таблица больше чем на страницу, то при печати она обрезается не по границе строки, а где попало и на следующей странице продолжается с этого момента. В итоге получается не красиво, бухгалтер бракует такую печать.
1 RomaH
 
naïve
05.03.13
14:04
проверить вывод?
2 Csar
 
05.03.13
14:06
(1) Так?
Если Не ТабДок.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
    ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;


В таком случае существенно усложнится заполнение ТабДок. Нет ли чего то более просто, типа задания свойства документа или что то в этом духе?
3 palpetrovich
 
05.03.13
14:08
(2) ну если существенно усложнится , считай строки :)
4 Юный 1С
 
05.03.13
14:08
Вот пример из УПП при печати ТОРГ 12
МассивВыводимыхОбластей.Очистить();
               МассивВыводимыхОбластей.Добавить(ОбластьМакета);
               МассивВыводимыхОбластей.Добавить(ОбластьИтоговПоСтранице);

Если НомерСтроки = КоличествоСтрок Тогда                    МассивВыводимыхОбластей.Добавить(ОбластьПодвала);
                   МассивВыводимыхОбластей.Добавить(ОбластьМакетаВсего);
КонецЕсли;        
               
Если НомерСтроки <> 1 И НЕ ФормированиеПечатныхФормСервер.ПроверитьВыводТабличногоДокумента(ТабДокумент, МассивВыводимыхОбластей) Тогда ... КонецЕсли;
5 Csar
 
05.03.13
14:16
Спасибо!
Видимо не избежать доп. наворота для проверки.
6 RomaH
 
naïve
05.03.13
14:18
(5) это фигня, вот когда "ПроверитьВывод" будет безбожно врать на пару строк, вот тогда - да
7 Csar
 
05.03.13
14:24
(6) а что тогда делать? Вручную рассчитывать высоты всех областей?
8 RomaH
 
naïve
05.03.13
14:26
(7) ну может и не встретиться
я просто вычитал пару строк
9 Csar
 
05.03.13
14:49
такой еще момент. 1С проверяет умещается ли текст на ланшафтной ориентации, хотя надо на портретной. Как ее pfcndfnbm проверять на портретной?
Я испробовал уже все предварительные свойства, но не работает как надо. Мой код
   ТабДок = ЭлементыФормы.ПолеТабличногоДокумента1;
   ТабДок.Очистить();
   ТабДок.РазмерСтраницы = "A4";
   ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
   ТабДок.АвтоМасштаб = Истина;
   ТабДок.СохранятьСвойстваОтображения = Истина;

После этого делаю проверку вывода. В итоге разделительная полоса появляется, но на том месте, где она нужна была бы при альбомной ориентации.
10 Csar
 
05.03.13
15:11
Почему то ПроверитьВывод врет в меньшую сторону, т.е. в печатной форме ТабДок разделительные полосы встречаются раньше чем надо. Где же тут корявость моих рук?
11 Юный 1С
 
05.03.13
15:50
Либо в МассивВыводимыхОбластей что-то не то добавил. А может быть (если я не прав, то поправьте меня) это связано с параметром вывода, а точнее с ориентацией (ланшафт или портрет) выводимого таб. документа. Т.е. в самом начале не задана конкретно ориентация страницы, он проверяет помешается или нет (допустим при портретном выводи), а потом в самом конце явно задаете ориентация (ландшафт) и там начинает отображать некорректно
12 Csar
 
05.03.13
16:06
(11) Нет, условия задаю в начале (см. (9)).
Ориентация смотрю отладчиком как у ТабДок, так и у областей Портретная. Как я понял дело не в ориентации, а из принципа формирования высоты областей и высоты страницы. Как то неправильно считается высота областей.
Ниже вырезка параметров одной из области. Может это то что то подскажет?

Свойство    Значение    Тип
МассивОбластей[4]    ТабличныйДокумент    ТабличныйДокумент
АвтоМасштаб    Ложь    Булево
ВерхнийКолонтитул    КолонтитулТабличногоДокумента    КолонтитулТабличногоДокумента
ВстроенныеТаблицы    КоллекцияВстроенныхТаблиц    КоллекцияВстроенныхТаблиц
Вывод    Авто    ИспользованиеВывода
ВыделенныеОбласти    ВыделенныеОбластиТабличногоДокумента    ВыделенныеОбластиТабличногоДокумента
ВысотаСтраницы    297    Число
ВысотаТаблицы    1    Число
Защита    Ложь    Булево
ИмяПараметровПечати    ""    Строка
ИмяПринтера        Неопределено
ИмяСохраненияПоложенияОкна    ""    Строка
ИспользуемоеИмяФайла    ""    Строка
ИтогиСнизу    Ложь    Булево
ИтогиСправа    Ложь    Булево
КлючПараметровПечати    ""    Строка
КлючСохраненияПоложенияОкна    ""    Строка
КодЯзыкаМакета        Неопределено
КоличествоЭкземпляров    1    Число
МасштабПечати        Неопределено
НаправлениеПерехода    По колонкам    ТипНаправленияПереходаТабличногоДокумента
НижнийКолонтитул    КолонтитулТабличногоДокумента    КолонтитулТабличногоДокумента
Области    КоллекцияОбластейТабличногоДокумента    КоллекцияОбластейТабличногоДокумента
ОбластьПечати        Неопределено
ОриентацияСтраницы    Портрет    ОриентацияСтраницы
ОтображатьГруппировки    Истина    Булево
ОтображатьЗаголовки    Истина    Булево
ОтображатьСетку    Истина    Булево
Параметры    ПараметрыМакетаТабличногоДокумента    ПараметрыМакетаТабличногоДокумента
ПовторятьПриПечатиКолонки        Неопределено
ПовторятьПриПечатиСтроки        Неопределено
ПолеСверху    0    Число
ПолеСлева    10    Число
ПолеСнизу    0    Число
ПолеСправа    10    Число
РазборПоКопиям        Неопределено
РазмерКолонтитулаСверху    10    Число
РазмерКолонтитулаСнизу    10    Число
РазмерСтраницы        Неопределено
Рисунки    КоллекцияРисунковТабличногоДокумента    КоллекцияРисунковТабличногоДокумента
СохранятьСвойстваОтображения    Ложь    Булево
ТекущаяОбласть    ОбластьЯчеекТабличногоДокумента    ОбластьЯчеекТабличногоДокумента
ТолькоПросмотр    Ложь    Булево
ТочностьПечати    Авто    ТочностьПечати
ФиксацияСверху    0    Число
ФиксацияСлева    0    Число
ФиксированныйФон    Ложь    Булево
ФоноваяКартинка    Картинка    Картинка
ЦветТекстаГруппировки    Недоступно для чтения    
ЦветТекстаЗаголовков    Недоступно для чтения    
ЦветФонаГруппировки    Недоступно для чтения    
ЦветФонаЗаголовков    Недоступно для чтения    
ЧерноБелаяПечать    Ложь    Булево
ЧерноБелыйПросмотр    Ложь    Булево
ШиринаСтраницы    210    Число
ШиринаТаблицы    8    Число
ЭкземпляровНаСтранице        Неопределено
13 Csar
 
05.03.13
16:08
(12) Таких областей 20 шт, плюс 4 области с высотойТаблицы 4, 3, 2 и 12 (остальные параметры те же).

Вот параметры к ТабДоку
Свойство    Значение    Тип
ТабДок    ПолеТабличногоДокумента    ПолеТабличногоДокумента
АвтоКонтекстноеМеню    Истина    Булево
АвтоМасштаб    Истина    Булево
АктивизироватьПоУмолчанию    Ложь    Булево
ВертикальнаяПолосаПрокрутки    Истина    Булево
Верх    60    Число
ВерхнийКолонтитул    КолонтитулТабличногоДокумента    КолонтитулТабличногоДокумента
Видимость    Истина    Булево
ВстроенныеТаблицы    КоллекцияВстроенныхТаблиц    КоллекцияВстроенныхТаблиц
Вывод    Авто    ИспользованиеВывода
ВыделенныеОбласти    ВыделенныеОбластиТабличногоДокумента    ВыделенныеОбластиТабличногоДокумента
Высота    770    Число
ВысотаСтраницы    297    Число
ВысотаТаблицы    28    Число
ГоризонтальнаяПолосаПрокрутки    Истина    Булево
Данные    ""    Строка
Доступность    Истина    Булево
Защита    Ложь    Булево
ИзменяетДанные    Ложь    Булево
Имя    "ПолеТабличногоДокумента1"    Строка
ИмяПараметровПечати    ""    Строка
ИмяПринтера        Неопределено
ИмяСохраненияПоложенияОкна    ""    Строка
ИспользуемоеИмяФайла    ""    Строка
ИтогиСнизу    Ложь    Булево
ИтогиСправа    Ложь    Булево
КлючПараметровПечати    ""    Строка
КлючСохраненияПоложенияОкна    ""    Строка
КодЯзыкаМакета        Неопределено
КоличествоЭкземпляров    1    Число
КонтекстноеМеню        Неопределено
Лево    7    Число
МасштабПечати        Неопределено
НаправлениеПерехода    По колонкам    ТипНаправленияПереходаТабличногоДокумента
НижнийКолонтитул    КолонтитулТабличногоДокумента    КолонтитулТабличногоДокумента
Области    КоллекцияОбластейТабличногоДокумента    КоллекцияОбластейТабличногоДокумента
ОбластьПечати        Неопределено
ОриентацияСтраницы    Портрет    ОриентацияСтраницы
ОтображатьВыделение    При активности    ТипОтображенияВыделенияТабличногоДокумента
ОтображатьГруппировки    Истина    Булево
ОтображатьЗаголовки    Ложь    Булево
ОтображатьСетку    Ложь    Булево
Параметры    ПараметрыМакетаТабличногоДокумента    ПараметрыМакетаТабличногоДокумента
ПервыйВГруппе    Ложь    Булево
ПовторятьПриПечатиКолонки        Неопределено
ПовторятьПриПечатиСтроки        Неопределено
ПолеСверху    10    Число
ПолеСлева    10    Число
ПолеСнизу    10    Число
ПолеСправа    10    Число
ПорядокОбхода    7    Число
ПорядокОтображения    6    Число
ПропускатьПриВводе    Ложь    Булево
РазборПоКопиям        Неопределено
РазмерКолонтитулаСверху    10    Число
РазмерКолонтитулаСнизу    10    Число
РазмерСтраницы    "A4"    Строка
РазрешитьНачалоПеретаскивания    Истина    Булево
РазрешитьПеретаскивание    Истина    Булево
Рамка    Рамка    Рамка
Рисунки    КоллекцияРисунковТабличногоДокумента    КоллекцияРисунковТабличногоДокумента
Свертка    Нет    РежимСверткиЭлементаУправления
СохранятьСвойстваОтображения    Ложь    Булево
ТекущаяОбласть    ОбластьЯчеекТабличногоДокумента    ОбластьЯчеекТабличногоДокумента
ТипЗначения        ОписаниеТипов
ТолькоПросмотр    Истина    Булево
ТочностьПечати    Авто    ТочностьПечати
ФиксацияСверху    0    Число
ФиксацияСлева    0    Число
ФиксированныйФон    Ложь    Булево
ФоноваяКартинка    Картинка    Картинка
ЦветРамки    стиль: Рамка    Цвет
ЦветТекстаГруппировки    Ошибка чтения значения    
ЦветТекстаЗаголовков    Ошибка чтения значения    
ЦветФонаГруппировки    Ошибка чтения значения    
ЦветФонаЗаголовков    Ошибка чтения значения    
ЧерноБелаяПечать    Ложь    Булево
ЧерноБелыйПросмотр    Ложь    Булево
Ширина    1 901    Число
ШиринаСтраницы    210    Число
ШиринаТаблицы    8    Число
ЭкземпляровНаСтранице        Неопределено
14 Csar
 
05.03.13
16:11
Я также пробовал обнулять поля сверху и снизу для областей. Думал, что они влияют. Не помогло.
15 Csar
 
05.03.13
16:39
Выяснил, что Параметр ВысотаТаблицы - это не высота таблицы в мм, а реально количество строк области. При этом реальную высоту этой области я не знаю как получить
16 Reset
 
05.03.13
16:47
Про ВместеСоСледующим еще почитай
17 Csar
 
05.03.13
16:54
(16) А причем тут "ВместеСоСледующим"? Это свойство вроде бы для склеивания соседних областей? Это мне не поможет.
В макете установлено по-умолчанию авторазмер высоты. Вот, думаю из-за этого и коряво работает "ПроверитьВывод"?
18 Reset
 
05.03.13
16:57
(17) А ты почитал? Или вроде?
19 Reset
 
05.03.13
16:59
(17) Ты: "то при печати она обрезается ... где попало "
СП про (16): "Объединяет строки или колонки области таким образом, чтобы при разделении на страницы они всегда оказывались на одной странице"
Ты: "Это мне не поможет"

Что мне сказать тебе в ответ? :)
20 Reset
 
05.03.13
17:02
Ты пожаловался просто, дескать "ПроверитьВывод" слишком сложно. Это альтернатива. Как хочешь :)
21 Csar
 
05.03.13
17:12
(20) Спасибо за помощь, но задача не сгруппировать области вместе, а сделать так, что бы весь ТабДок делился по страницам максимально плотно забивая страницы. А у меня сейчас ТабДок поделился на 2 страницы, причем первая страница занята на 2/3 объема и туда спокойно поместится еще десяток строк(областей).
А свойство "ВместеСоСледующим" необходимо для того, что бы избежать случаем, когда на второй странице остается лишь подвал, как пример.
22 Reset
 
05.03.13
17:14
(21) В (0) об этом ни слова
23 Csar
 
05.03.13
17:24
(22) Проблема появилась, когда посоветовали через проверятьВывод вносить разделители страниц. В (0) еще не было не полного заполнения страницы.