Как при выходе за границы листа при печати - уменьшать ширину колонок и картинки- пока не поместится на 1 лист , печать макета на листе
Добрый день, уважаемые форумчани. Прошу помощи
1С:Предприятие 8.3 (8.3.15.1869), "Управление производственным предприятием", формы обычные (не управляемые)
печатаю в макете
как устранить при печати не правильное разбитие листа
т.е. Необходимо автоматом уменьшать ширину колонок и картинки (картинки пропорционально) пока не поместится всё на 1 печатный лист по ширине
и по длине без разбития пополам картинки с переносом шапки отчета на следующий лист при печати в нём
автоматом - т.е. при нажатии пользователем на отдельную кнопку подбора величины
Т.е. вопрос - как отловить -что не помещается на 1 лист (неделимая область карточки обведенная рамкой) и автоматом подобрать границы ширины (границы ширины колонок и границы ширины рисунка)
и по длине сделать перенос шапки отчета на следующий лист?
неделимая область
область шапки для переноса на следующий лист
в чем ошибка
весь код:
помогите пожалуйста.
Заранее спасибо
1С:Предприятие 8.3 (8.3.15.1869), "Управление производственным предприятием", формы обычные (не управляемые)
печатаю в макете
как устранить при печати не правильное разбитие листа
т.е. Необходимо автоматом уменьшать ширину колонок и картинки (картинки пропорционально) пока не поместится всё на 1 печатный лист по ширине
и по длине без разбития пополам картинки с переносом шапки отчета на следующий лист при печати в нём
автоматом - т.е. при нажатии пользователем на отдельную кнопку подбора величины
Т.е. вопрос - как отловить -что не помещается на 1 лист (неделимая область карточки обведенная рамкой) и автоматом подобрать границы ширины (границы ширины колонок и границы ширины рисунка)
и по длине сделать перенос шапки отчета на следующий лист?
неделимая область
ОблКаталог=Макет.ПолучитьОбласть(НомерСтроки_н+1,1,НомерСтроки_к,6);
ТабДокумент.Вывести(ОблКаталог);
область шапки для переноса на следующий лист
ОбластьЗаголовокСтрока=Макет.ПолучитьОбласть(2,1,4,6);
в чем ошибка
ОбластьЗаголовокСтрока=Макет.ПолучитьОбласть(2,1,4,6);
ТабШапка.Вывести(ОбластьЗаголовокСтрока);
МассивОбластей.Очистить();
МассивОбластей.Добавить(ТабДокумент);
Если Не ТабДок.ПроверитьВывод(МассивОбластей) Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
МассивОбластей.Очистить();
КонецЕсли;
Показатьвесь код:
Для 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);
если Рисунок1.Высота>ВысотаРисунка тогда Рисунок1.Высота=ВысотаРисунка; конецесли;
если Рисунок1.Ширина>ШиринаРисунка тогда Рисунок1.Ширина=ШиринаРисунка; конецесли;
ОбластьКартинка02 = ТабДок.Область(НомерСтроки_н+1,6,НомерСтроки_к,6);
ОбластьКартинка02.Объединить();
Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
ОбластьКарточки2 =ТабДок.Область(НомерСтроки_н+1,4,НомерСтроки_к,6);
ОбластьКарточки2.Обвести(Линия, Линия, Линия, Линия);
Рисунок2 = ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок2.Картинка = Изображение2;
Рисунок2.Расположить(ОбластьКартинка02);
если Рисунок2.Высота>ВысотаРисунка тогда Рисунок2.Высота=ВысотаРисунка; конецесли;
если Рисунок2.Ширина>ШиринаРисунка тогда Рисунок2.Ширина=ШиринаРисунка; конецесли;
ОблКаталог=Макет.ПолучитьОбласть(НомерСтроки_н+1,1,НомерСтроки_к,6);
ТабДокумент.Вывести(ОблКаталог);
конеццикла;
ОбластьЗаголовокСтрока=Макет.ПолучитьОбласть(2,1,4,6);
ТабШапка.Вывести(ОбластьЗаголовокСтрока);
МассивОбластей.Очистить();
МассивОбластей.Добавить(ТабДокумент);
Если Не ТабДок.ПроверитьВывод(МассивОбластей) Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
МассивОбластей.Очистить();
КонецЕсли;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Истина;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
ТабДок.РазмерСтраницы= "A4";
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Вывести(ТабДок);
ТабДок.Показать();
Показатьпомогите пожалуйста.
Заранее спасибо
Прикрепленные файлы:
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот