1. arshanskiyav 10 09.10.17 23:10 Сейчас в теме

Печатная форма в pdf без полей

Добрый день.

Имеем:
Комплексная автоматизация, редакция 1.1 (1.1.90.1)
1С:Предприятие 8.3 (8.3.8.2322)
Обычные формы.

Делаю печатную форму, на первой странице втыкается картинка (программно), она должна быть размером с лист А4.
Вроде как размеры указал (210*297), но при выводе на предпросмотр выясняется, что даже при нулевых полях - какие то поля есть. Как результат картинка разбивается на несколько страниц и так и сохраняется в pdf.

Вывод осуществляется в ПолеТабличногоДокумента.
Так как страниц на выходе несколько, не могу использовать ФоноваяКартинка.

Собственно вопрос, кто-нибудь уже накрывал страницу картинкой?

Спасибо.
Найденные решения
6. madonov 159 13.10.17 16:02 Сейчас в теме
(4). Платформы под рукой сейчас не имею, да и сам я в легком подпитии (В Хабаровске уже глубокий вечер пятницы).
Но я бы рекомедовал попробовать вот так:

ТабДокумент=ЭлементыФормы.ПолеТабличногоДокумента;
    ТабДокумент.Очистить();
    
    ТабДокумент.ВерхнийКолонтитул.Выводить=Ложь;
    ТабДокумент.НижнийКолонтитул.Выводить=Ложь;
    ТабДокумент.ОтображатьСетку=Истина;
    ТабДокумент.ОтображатьЗаголовки = Истина;
    ТабДокумент.ПолеСверху=0;
    ТабДокумент.ПолеСнизу=0;
    ТабДокумент.ПолеСлева=0;
    ТабДокумент.ПолеСправа=0;
    ТабДокумент.ОтображатьГруппировки=Ложь;
    ТабДокумент.АвтоМасштаб=Ложь;
    ТабДокумент.МасштабПечати=100;
    ПутьДоКартинки=Строка(""+PSМодуль.ПолучитьПутьДоБазы()+"\Обработчики\КП\first_page.jpg");

    Строка = ТабДокумент.Область(1,,1,); //Выделяем первую строку целиком
    Строка.СоздатьФорматСтрок(); //создаем для первой строки отдельный формат, чтобы изменение ширины ячейки не влияло на последующие строки

    Ячейка=ТабДокумент.Область(1,1,1,1);    
    Ячейка.ВысотаСтроки=842;
    Ячейка.ШиринаКолонки=114;
    Ячейка.Картинка=Новый Картинка(ПутьДоКартинки,Ложь);
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
Показать



Создание формата строк

Для того чтобы создать новый формат строк (сделать у некоторых строк собственную ширину колонок), достаточно выделить строки, у которых необходимо изменить ширину колонки, и при помощи мыши изменить размер любой колонки. После изменения размера будет выдан запрос на создание нового формата строк. В случае подтверждения создания нового формата строк, для выделенных строк будет создан новый формат, и в дальнейшем, при изменении размеров колонок в данных строках, будут изменяться размеры колонок только в данных строках, остальные строки при этом затрагиваться не будут.

Для программной установки формата строк для определенной области табличного документа, следует воспользоваться методом СоздатьФорматСтрок(). После вызова метода строки, которые входили в область, для которой вызывался метод, будут иметь новый формат строк.
arshanskiyav; +1 Ответить
Остальные ответы
Сортировка: Древо
2. madonov 159 10.10.17 04:26 Сейчас в теме
Как вариант:
1.Сделать область из одной ячейки (Ширина 114, Высота 842)
2. Установить картинку в качестве фона этой ячейки
3. Вывести область картинки
4. Вывести последующие области

Минус такого решения в том, что весь документ в итоге будет без полей, но конечно можно решить на уровне макета.
Прикрепленные файлы:
3. arshanskiyav 10 10.10.17 20:59 Сейчас в теме
(2) Спасибо.
Несколько дезинформировал, я пытаюсь с макетом это сделать.
Ваше решение подошло.
Код
4. arshanskiyav 10 12.10.17 18:46 Сейчас в теме
(2)А есть еще варианты?
До сих пор бьюсь, в этом варианте ячейка 2,1,2,1 получает такую же ширину, соответственно табличный макет ниже улетает в тар-тар-ра-ры.
Если мы объединяем 12 колонок (грубо ширина макета 12 колонок), то проблема возвращается.

Я пока вижу один вариант - разными табличными документами выводить первую и остальные страницы, создать документ WORD и его сохранить в PDF.
Но мне кажется, что это уже извращение.

Можно как-нибудь два табличных документа сохранить в 1 PDF документ?
5. Guyer 7 12.10.17 22:02 Сейчас в теме
Если выводится в 2 разных табличных документа то в один pdf нельзя сохранить. Если же это 2 разных макета выводятся в один табличный документ то можно
6. madonov 159 13.10.17 16:02 Сейчас в теме
(4). Платформы под рукой сейчас не имею, да и сам я в легком подпитии (В Хабаровске уже глубокий вечер пятницы).
Но я бы рекомедовал попробовать вот так:

ТабДокумент=ЭлементыФормы.ПолеТабличногоДокумента;
    ТабДокумент.Очистить();
    
    ТабДокумент.ВерхнийКолонтитул.Выводить=Ложь;
    ТабДокумент.НижнийКолонтитул.Выводить=Ложь;
    ТабДокумент.ОтображатьСетку=Истина;
    ТабДокумент.ОтображатьЗаголовки = Истина;
    ТабДокумент.ПолеСверху=0;
    ТабДокумент.ПолеСнизу=0;
    ТабДокумент.ПолеСлева=0;
    ТабДокумент.ПолеСправа=0;
    ТабДокумент.ОтображатьГруппировки=Ложь;
    ТабДокумент.АвтоМасштаб=Ложь;
    ТабДокумент.МасштабПечати=100;
    ПутьДоКартинки=Строка(""+PSМодуль.ПолучитьПутьДоБазы()+"\Обработчики\КП\first_page.jpg");

    Строка = ТабДокумент.Область(1,,1,); //Выделяем первую строку целиком
    Строка.СоздатьФорматСтрок(); //создаем для первой строки отдельный формат, чтобы изменение ширины ячейки не влияло на последующие строки

    Ячейка=ТабДокумент.Область(1,1,1,1);    
    Ячейка.ВысотаСтроки=842;
    Ячейка.ШиринаКолонки=114;
    Ячейка.Картинка=Новый Картинка(ПутьДоКартинки,Ложь);
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
Показать



Создание формата строк

Для того чтобы создать новый формат строк (сделать у некоторых строк собственную ширину колонок), достаточно выделить строки, у которых необходимо изменить ширину колонки, и при помощи мыши изменить размер любой колонки. После изменения размера будет выдан запрос на создание нового формата строк. В случае подтверждения создания нового формата строк, для выделенных строк будет создан новый формат, и в дальнейшем, при изменении размеров колонок в данных строках, будут изменяться размеры колонок только в данных строках, остальные строки при этом затрагиваться не будут.

Для программной установки формата строк для определенной области табличного документа, следует воспользоваться методом СоздатьФорматСтрок(). После вызова метода строки, которые входили в область, для которой вызывался метод, будут иметь новый формат строк.
arshanskiyav; +1 Ответить
7. arshanskiyav 10 22.10.17 21:50 Сейчас в теме
(6) , спасибо, это реально решило проблему.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Салехард
зарплата от 80 000 руб. до 200 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 100 000 руб.
Полный день


Программист 1С
Санкт-Петербург
Полный день

Программист 1С
Санкт-Петербург
Полный день