Как при печати Макета не допустить разбитие пополам неделимой области (выводимой в цикле, с картинкой), а если не хватает места то переносить на следующую страницу с шапкой

1. SvetaS2014 06.01.24 22:05 Сейчас в теме
Добрый день, уважаемые форумчани. Прошу помощи
1С:Предприятие 8.3 (8.3.15.1869), "Управление производственным предприятием", , формы обычные (не управляемые)

печатаю в макете.
но при выводе по листам неделимая область с картинкой (обведённая рамкой) делится пополам.
Как устранить деление по палам её вместе с картинкой , чтобы она не делилась, а переходила на следующий лист, но вместе с шапкой макета. И так на каждом листе.

Макет = ЭтотОбъект.ПолучитьМакет("МакетКаталогПоЭлементам");

ОбластьШапка1= Макет.ПолучитьОбласть("ШапкаСтока|Шапка1");
ОбластьШапка2= Макет.ПолучитьОбласть("ШапкаСтока|Параметры1");
ОбластьШапка3= Макет.ПолучитьОбласть("ШапкаСтока|Шапка2");
ОбластьШапка4= Макет.ПолучитьОбласть("ШапкаСтока|Параметры2");

ОбластьКартинка11= Макет.ПолучитьОбласть("параметр|Шапка1");
ОбластьПараметр1= Макет.ПолучитьОбласть("параметр|Параметры1");
ОбластьКартинка22= Макет.ПолучитьОбласть("параметр|Шапка2");
ОбластьПараметр2= Макет.ПолучитьОбласть("параметр|Параметры2");

ОбластьШапка4.Параметры.Дата = ТекущаяДата();
ТабДок.Вывести(ОбластьШапка1);
ТабДок.Присоединить(ОбластьШапка2);
ТабДок.Присоединить(ОбластьШапка3);
ТабДок.Присоединить(ОбластьШапка4);
МассивОбластей = Новый Массив;

НомерСтроки=5;

Для каждого строка из аа Цикл
    
...........
     
        Для i = 1 По строка[0].свойства.Количество() Цикл
             
            если  строка[0].свойства[i-1].выбор=Истина  Тогда   
                
              ОбластьПараметр1.Параметры.ИмяДопПоля=строка[0].свойства[i-1].наименование;
                           
                ТабДок.Область(5+(i-1),3).ШиринаКолонки = ШиринаРисунка;
                ТабДок.Область(5+(i-1),3).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);   //имя,размер,полужирный,наклонный,подчеркивание,зачеркивание
                
                ТабДок.Область(5+(i-1),2).ШиринаКолонки  =ШиринаКол;
                ТабДок.Область(5+(i-1),2).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь); 

                ТабДок.Область(5+(i-1),1).ШиринаКолонки = ШиринаКол;
                            ТабДок.Область(5+(i-1),1).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь); 

                ТабДок.Область(5+(i-1),1).ВысотаСтроки=ВысотаСтр;
                ТабДок.Область(5+(i-1),2).ВысотаСтроки=ВысотаСтр;

                            ОбластьПараметр1.Параметры.ЗначениеДопПоля=строка[0].свойства[i-1].значение;
               
                ТабДок.Вывести(ОбластьПараметр1);
                            ТабДок.Присоединить(ОбластьКартинка11);
               
                ОбластьПараметр2.Параметры.ИмяДопПоля=строка[1].свойства[i-1].наименование;
                ОбластьПараметр2.Параметры.ЗначениеДопПоля=строка[1].свойства[i-1].значение;
                
                ТабДок.Область(5+(i-1),4).ВысотаСтроки=ВысотаСтр;
                ТабДок.Область(5+(i-1),5).ВысотаСтроки=ВысотаСтр;
                ТабДок.Область(5+(i-1),4).ШиринаКолонки =ШиринаКол;
                ТабДок.Область(5+(i-1),4).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь); 

                ТабДок.Область(5+(i-1),5).ШиринаКолонки =ШиринаКол;
                ТабДок.Область(5+(i-1),5).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь); 

                ТабДок.Область(5+(i-1),6).ШиринаКолонки = ШиринаРисунка;
                            ТабДок.Область(5+(i-1),6).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь); 

                ТабДок.Присоединить(ОбластьПараметр2);
                            ТабДок.Присоединить(ОбластьКартинка22);
             
                 
        КонецЦикла;
              НомерСтроки_н=НомерСтроки;
              НомерСтроки=НомерСтроки+строка[0].свойства.Количество();
              НомерСтроки_к=НомерСтроки;
                                  
              ОбластьКартинка01 = ТабДок.Область(НомерСтроки_н+1,3,НомерСтроки_к,3);
              ОбластьКартинка01.Объединить();
              
              Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
              ОбластьКарточки1 =ТабДок.Область(НомерСтроки_н+1,1,НомерСтроки_к,3);
                      ОбластьКарточки1.Обвести(Линия, Линия, Линия, Линия); 
              
              
              Рисунок1 =  ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
              Рисунок1.Картинка = Изображение1;
              Рисунок1.Расположить(ОбластьКартинка01); 
                        
              ОбластьКартинка02 = ТабДок.Область(НомерСтроки_н+1,6,НомерСтроки_к,6);
              ОбластьКартинка02.Объединить();
              
                             
              Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
              ОбластьКарточки2 =ТабДок.Область(НомерСтроки_н+1,4,НомерСтроки_к,6);
                          ОбластьКарточки2.Обвести(Линия, Линия, Линия, Линия); 
              
              Рисунок2 =  ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
              Рисунок2.Картинка = Изображение2;
              Рисунок2.Расположить(ОбластьКартинка02); 
        
             ОблКаталог=Макет.ПолучитьОбласть(НомерСтроки_н+1,1,НомерСтроки_к,6);
              ТабДокумент.Вывести(ОблКаталог);
          

          конеццикла;    
          
        ОбластьЗаголовокСтрока=Макет.ПолучитьОбласть(2,1,4,6);
        
        ТабШапка.Вывести(ОбластьЗаголовокСтрока);
        
        МассивОбластей.Очистить();        
        МассивОбластей.Добавить(ТабДокумент);
        
        Если Не ТабДок.ПроверитьВывод(МассивОбластей) Тогда    
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
            МассивОбластей.Очистить();
        КонецЕсли;
        

ТабДок.Защита = Истина;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
ТабДок.РазмерСтраницы=  "A4"; 
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Вывести(ТабДок);
ТабДок.Показать();
Показать


неделимая область (которая не должна разрываться вместе с картинкой) имеется в виду область обведённая линией и содержащая картинку.
 Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
              ОбластьКарточки1 =ТабДок.Область(НомерСтроки_н+1,1,НомерСтроки_к,3);
                      ОбластьКарточки1.Обвести(Линия, Линия, Линия, Линия); 
                        
                             
              Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
              ОбластьКарточки2 =ТабДок.Область(НомерСтроки_н+1,4,НомерСтроки_к,6);
                          ОбластьКарточки2.Обвести(Линия, Линия, Линия, Линия);

а то получается что картинка делится пополам между страницами - это недопустимо
шапка имеется виду
ОбластьЗаголовокСтрока= ТабДок.Область(2,1,4,6);


как такое устранить?
чтобы картинка не отображалась отдельно от надписи на другом листе (а переносилась вся карточка) и чтобы картинка не делилась пополам, а сначала переносилась шапка, а потом вся карточка.

Как такое исправить?
Помогите, пожалуйста.
Прикрепленные файлы:
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот