Имя: Пароль:
1C
1С v8
Печать рисунка в макете с условием
0 Azgerd
 
07.11.13
08:26
Здравствуйте! В макете договора с контрагентом вывел картинку (скан печати организации в формате *.gif). В форме перед формированием отчета сделал флаг "Печать с печатью". В зависимости от значения флага необходимо выводить или не выводить в отчете эту картину печати. Подскажите как это программно реализовать (вывод-невывод картинки в отчете).
1 Wobland
 
07.11.13
08:28
если Флаг, тогда выводить
2 Wobland
 
07.11.13
08:28
+(1) конец
3 Azgerd
 
07.11.13
08:32
Понятно, что если флаг, тогда выводить, но что? Выделить рисунок в отдельную область не получается, т.к. рисунок печати лежит поверх других полей (типа должность и ФИО руководителя), а как вывести или не вывести отдельный объект(картинку) - вот в чём проблема.
4 Бледно Золотистый
 
07.11.13
08:32
(3) 2 макета делай
5 Azgerd
 
07.11.13
08:35
(4) дык в чем и вопрос! Не хотелось бы размножением макетов заниматься! Может всёж есть программный способ вывода объектов в макет?
6 Лодырь
 
07.11.13
08:36
(5) Есть.
7 Azgerd
 
07.11.13
08:36
Просто вариантов договоров тоже несколько штук, и если идти по пути дублирования макетов с печатью и без печати, то какая-то засада получается...
8 Лодырь
 
07.11.13
08:38
КоллекцияРисунковТабличногоДокумента (SpreadsheetDocumentDrawingCollection)
Добавить (Add)
Синтаксис:

Добавить(<ТипРисунка>)
Параметры:

<ТипРисунка> (обязательный)

Тип: ТипРисункаТабличногоДокумента.
Тип добавляемого рисунка.
Возвращаемое значение:

Тип: РисунокТабличногоДокумента.

Описание:

Добавляет рисунок в конец коллекции рисунков табличного документа.

Доступность:

Сервер, толстый клиент, внешнее соединение.
9 Лодырь
 
07.11.13
08:40
(7) Зачастую гораздо проще сделать разделить макет на части и сделать варианты этих частей, а не ипать мозг размножением макетов целиком или програмным размещением картинок.
10 Azgerd
 
07.11.13
08:43
(8) Гы! Может я не въезжаю, НО у меня рисунок в макете есть, а как программно сделать, чтобы его не было. И еще один момент, если использовать
КоллекцияРисунковТабличногоДокумента (SpreadsheetDocumentDrawingCollection)
Добавить (Add)
То куда именно в макете этот рисунок добавится? Расположение очень важно!
11 RomaH
 
naïve
07.11.13
08:51
//{ШТРИХКОД
        КартинкаШК = МИС_СменаРаскладкиКлавиатурыСервер.ПолучитьКартинкуШК(ВыборкаПоДокументу.Номер);
        
        Если КартинкаШК = Неопределено Тогда
            Заголовок.Рисунки.Удалить(Заголовок.Рисунки.ШтрихКод);
            ОтрывнойТалон.Рисунки.Удалить(ОтрывнойТалон.Рисунки.ШтрихКодОтрывной);
        КонецЕсли;
        
        Заголовок.Области.ШтрихКод.Картинка = КартинкаШК;
12 Лодырь
 
07.11.13
08:51
(10) Ну як дыты..


НовыйРисунок = ТабДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
ОбластьЯчеек = ТабДокумент.Область("МестоПодПечать");
НовыйРисунок.Расположить(ОбластьЯчеек);
13 Бледно Золотистый
 
07.11.13
08:57
(10) Так проще не выводить: Область.Рисунки.Печать.Картинка = Новый Картинка();
14 Azgerd
 
07.11.13
09:26
Сделал так: после вывода областей сделал команду    ТабДок.Рисунки.Очистить();
благо мне надо убрать все рисунки из отчёта - удалились и печать и подпись.
Однако для общего развития как удалить конкретный рисунок?
Например в области макета "Подвал" табличного документа "ТабДок" есть картинка в свойствах которой Имя "D7", Картинка "Картинка:gif "
Пробовал так: ТабДок.Рисунки.Удалить(ТабДок.Рисунки.D7);
выдаёт ошибку "объект не найден", как в параметре правильно указать конкретный рисунок?
15 RomaH
 
naïve
07.11.13
09:43
(14) имя посмотри в отладчике в коллекции
ТабДок.Рисунки
16 Azgerd
 
07.11.13
10:13
(15) Странная х... В макете в свойствах объекта имя нужного рисунка = D7, а в отладчике методом тыка определил, что имя евоное "настоящее" = D2 ?! Хорошо когда рисунков мало, а когда много - запаришься разбираться где какой!
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший