Имя: Пароль:
1C
1С v8
Некорректный вывод второй страницы табличного документа при печати
,
0 Len1vec
 
22.03.23
10:25
Добрый день. Подскажите, пожалуйста.
Есть макет, в котором есть 3 области: Абзац1, Абзац2 и ПустаяСтрока (все одинаковые по ширине и количеству ячеек.

Т.к. принтер не имеет функции двухсторонней печати, то пришлось делать "велосипед". А именно, на листе формата А4 вывести в левой половине пустую страницу, а в правой половине печатаемую область. Так они печатают сначала 1 страницу, переворачивают лист и печатают вторую страницу. Проблема вот в чем. Если первая страница выводится на печать нормально, то вторая выводится, почему-то, со смещением на одну ячейку влево (скрин 2), из-за чего получается слишком близко к середине. Как это исправить, чтобы печатаемые области выводились ровно относительно друг друга, как на первой странице?

Скрины:
1. Макет - https://hkar.ru/17m9j
2. То, что печатается - https://hkar.ru/17m9k

Код формирования табличного документа:
    ТД = Новый ТабличныйДокумент;
    ТД.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТД.РазмерСтраницы = "A4";
    ТД.АвтоМасштаб = Истина;
    ТД.ПолеСлева     = 1;
    ТД.ПолеСправа     = 1;
    ТД.ПолеСверху    = 5;
    ТД.ПолеСнизу    = 5;
    Макет = Справочники.Пациенты.ПолучитьМакет("ИнфСогласие");

    //Формируем первую страницу
    ТабДокПустая1 = Новый ТабличныйДокумент;
    ОблПустая1 = Макет.ПолучитьОбласть("ПустаяСтрока");
    ТабДокПустая1.Вывести(ОблПустая1);
    
        
    ТабДок1 = Новый ТабличныйДокумент;

    ОблАбзац1 = Макет.ПолучитьОбласть("Абзац1");
    /*Выводим данные для параметров*/
    ТабДок1.Вывести(ОблАбзац1);
    Область1 = ТабДокПустая1.ПолучитьОбласть(1,1, ТабДок1.ВысотаТаблицы, ТабДок1.ШиринаТаблицы);
    ТД.Вывести(Область1);
    ТД.ВывестиГоризонтальныйРазделительСтраниц(); //Отделяю левую (пустую) половину от правой
    ТД.Присоединить(ТабДок1);
    ТД.ВывестиГоризонтальныйРазделительСтраниц(); //Отделяю первую страницу от второй
    
    //Формируем вторую страницу    
    ТабДокПустая2 = Новый ТабличныйДокумент;
    ОблПустая2 = Макет.ПолучитьОбласть("ПустаяСтрока");
    ТабДокПустая2.Вывести(ОблПустая2);
        
    ТабДок2 = Новый ТабличныйДокумент;

    ОблАбзац2 = Макет.ПолучитьОбласть("Абзац2");
    ОблАбзац2.Параметры.ТекущаяДата = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
    ТабДок2.Вывести(ОблАбзац2);
        
    Область2 = ТабДокПустая2.ПолучитьОбласть(1,1, ТабДок2.ВысотаТаблицы, ТабДок2.ШиринаТаблицы);
    ТД.Вывести(Область2);
    ТД.ВывестиГоризонтальныйРазделительСтраниц();
    ТД.Присоединить(ТабДок2);

    ТД.Показать();
1 Len1vec
 
22.03.23
10:26
Платформа 8.2.19.130
2 vicof
 
22.03.23
11:06
Купить нормальный принтер не предлагать?)
3 CaIIIka
 
22.03.23
11:09
Ориентацией текста нарисовать вторую половину рядом вверх ногами)
4 Len1vec
 
22.03.23
11:13
(2) Не слишком, но жостка)
5 Len1vec
 
22.03.23
11:14
(3) Не, бумажка будет неправильно переворачиваться
6 CaIIIka
 
22.03.23
11:17
(5) Так за один же проход печататься будет.
7 Len1vec
 
22.03.23
11:19
(6) они печатают на одной половине листа а4, потом оставшуюся (пустую) снова используют для печати)
8 Len1vec
 
22.03.23
11:20
Экономия бумаги!
9 CaIIIka
 
22.03.23
11:26
Вообще меня смущает куча новых табличных документов, присоединения. Еще колонка 11 в макете (пустая). По колонкам нет ограничения.
Сделай вертикальную секцию и выводи ее.
10 Len1vec
 
22.03.23
11:36
(9) данный способ был предложен мне на этом же форуме (Вывод двух областей на листе формата А4 в ландшафте
11 Fish
 
22.03.23
11:42
(8) Режьте лист А4 на 2, и печатайте безо всяких переворотов.
12 Len1vec
 
22.03.23
15:22
(11) Так дело в том, что принтер печатает от правого конца листа к левому, соответственно и печатная форма составлена так (печатаемые области в правой половине листа), чтобы можно было печатать на обрезанной половине листа А4 с обеих сторон
13 azernot
 
22.03.23
18:42
(0) Удалите в макете колонку 11
ну или если она нужна, поставьте пробел в ячейке 48:11 макета.
У вас ширина области абзац2 в макете меньше, чем ширина области абзац1

А вообще, код в (0) просто ужас.
14 Len1vec
 
23.03.23
19:33
(13) с пробелом помогло! Ширина у областей абзац1 и абзац2 в макете полностью идентичны жи
15 azernot
 
23.03.23
19:45
(14) Это вам так кажется. Пунктирная линия вводит вас в заблуждение. Она показывает наибольшую ширину из этих областей, отмечая границу печати.