Версия для печати темы (https://pro1c.org.ua/index.php?s=e3df458b24145ecaa166b07475ac0c00&showtopic=55305)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Поместить картинку в динамически расширающийся макет печатной формы

Автор: Constantus 20.11.19, 10:27

Приветствую, Форумчане!
1с8.3.12, СП, самопис, УФ.

Пытаюсь сотворить ценник. В макете есть 2-е области, которые динамически расширяются в зависимости от количества данных заполнения (от 1 до много строк).

Имеется картинка "Кредит", которая должна появится на ценнике в зависимости от того, можно или нет оформить кредит (на форме галочка).

Как можно разместить эту картинку поверх макета после того, как ценник будет сформирован? Т.е. сначала получить итоговой ценник, потом разместить картинку и расположить её на макете в зависимости от высоты итогового ценника?

Автор: fly 20.11.19, 11:01

Constantus @ Сегодня, 11:27 * ,

Область = Макет.ПолучитьОбласть("");

Рисунок = Область.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
// указываете размещение и размеры рисунка
Рисунок.Лево =;
Рисунок.Верх=;
Рисунок.Ширина=;....
// указываете непосредственно картинку из нового элемента картинка или библиотеки
Карт = ......
Рисунок.Картинка = Карт;
// выводите область на печать
ТабДок.Вывести(Область);


что то типо того

Автор: Constantus 20.11.19, 12:21

fly @ Сегодня, 15:01 * ,

Красиво, но

Область = Макет.ПолучитьОбласть("");


Область не найдена...

У меня 3-и наименованные области... Может есть смысл как-то поиграться с получением области в формате R12C1:R14C3

R12 - начало первой области

R14 - начало второй области


Автор: fly 20.11.19, 12:31

Constantus @ Сегодня, 13:21 * ,
"" - имеется ввиду вставить "ИмяОбласти"
к примеру

Макет.ПолучитьОбласть("Шапка")

Автор: Constantus 20.11.19, 12:42

Картинку выводит, но после вывода всех:

    ОбластьЦена     = Макет.ПолучитьОбласть("Цена");
    ОбластьЦена.Параметры.ЦенаКомплекта = Формат(Объект.ЦенаКомплекта, "ЧЦ=15; ЧДЦ=2");
    ТабДок.Вывести(ОбластьЦена);
    
    Область = Макет.ПолучитьОбласть(5,1,14,3);

Рисунок = Область.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
// указываете размещение и размеры рисунка
Рисунок.Лево =12;
Рисунок.Верх=0;
Рисунок.Ширина=40;
Рисунок.Высота=30;
// указываете непосредственно картинку из нового элемента картинка или библиотеки
Карт = БиблиотекаКартинок.Ретушь;
Рисунок.Картинка = Карт;
// выводите область на печать
ТабДок.Вывести(Область);
    
Возврат ТабДок;


Можно ли как-то вверх поднять над всем макетом?

fly @ Сегодня, 16:31 * ,

так в том и суть, что нужно разместить не в конкретной области, а над всеми областями..., т.е. над областью "ПерваяОбласть" и "Вторая область"... после их вывода на экран...

Автор: fly 20.11.19, 12:56

Constantus @ Сегодня, 13:42 * ,
Добавьте новую область для картинки.

И выводите её когда хотите, хоть первой, хоть последней, хоть после каждой области.
Или не выводите если не надо на печать.
В область потом добавляете вышеуказанным кодом картинку, или сразу в макете рисуете картинку на области.

Автор: sava1 20.11.19, 13:00

Цитата(Constantus @ 20.11.19, 12:42) *
после их вывода на экран..


после вывода...
обл = ТабДок.ПолучитьОбласть("R1C1:R1C10");
// а дальше работаем по рисунку...

Автор: Constantus 20.11.19, 14:13

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

Есть возможность фоновый рисунок не клонировать по всему экрану, а только единыжды?

Автор: fly 20.11.19, 14:45

Цитата(Constantus @ 20.11.19, 14:13) *
Выкрутился применив фоновый рисунок.

можно уточнить код, что то пару дней назад читал про фоновые рисунки - отложил на потом проверить код,
и найти примеры кода как добавляется.
как раз в тему получается

Автор: Constantus 20.11.19, 17:21

fly @ Сегодня, 18:45 * ,


    Если Объект.ВозможностьКредитования Тогда    
        ТабДок.ФоноваяКартинка = Новый Картинка("D:\Кредит01.bmp");// БиблиотекаКартинок.Кредит;
        ТабДок.ФиксированныйФон = Ложь;    
    КонецЕсли;



БиблиотекаКартинок.Кредит - тоже работает

Автор: Constantus 27.11.19, 16:01

Поторопился...

При предварительном просмотре фоновая картинка выходит, но на печать нет... Как фоновую картинку заставить распечатываться?


Если Объект.ВозможностьКредитования Тогда    
        ТабДок.ФоноваяКартинка = БиблиотекаКартинок.Кредит;
        ТабДок.ФиксированныйФон = Ложь;    
    КонецЕсли;

Автор: fly 28.11.19, 23:06

Constantus @ Вчера, 16:01 * ,
Вывод на печать идет через общий модуль и общую форму в базовых конфиурациях, возможно и вашей такой же механизм применен.

Для конфигурации УТП можно:
1. В общем модуле УниверсальныеМеханизмы.НапечататьДокумент() добавляем фон к макету
Например ПечДокумент.ФоноваяКартинка = КартинкаФона
Это сработает при непосредственной печати.
Имя картинки можно передать в процедуру как параметр.
2. В общей форме ПечатьДокументов в процедуре ПриОткрытии() добавляем строку
ЭлементыФормы.ПолеТабличногоДокумента.ФоноваяКартинка = ПечатныйДокумент.ФоноваяКартинка
И вот тогда вроде работает.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua