helpf.pro
Регистрация

v8: Видимость картинки в макете

Ermak
12.05.2012 13:54Прочитано: 9333
В документе Внутренний заказ есть реквизит Подпись (тип Булевский) в макет поставил картинку Имя - D1, как сделать условия если подпись истина тогда картинка (D1) отображается, если подпись лож не отображается.
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
12.05.2012 15:07Ответ № 1
(0) Ermak, как-то так:
Код 1C v 8.х
 Макет = ПолучитьМакет("Отчет"); 
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьКартинки = Макет.ПолучитьОбласть("ОбластьСКартинкой")
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

ТабДок = Новый ТабличныйДокумент;
//Вывод параметров в область
ОбластьЗаголовок.Параметры.ДатаНач = ДатаНач;
ОбластьЗаголовок.Параметры.ДатаКон = ДатаКон;
//Вывод области в табличный документ
ТабДок.Вывести(ОбластьЗаголовок);

//Вывод картинки
Картинка = Новый Картинка(ПутьККартинке);
// Элемент управления "Логотип" входит в коллекцию картинок области.
ОбластьКартинки.Рисунки.Логотип.Картинка = Картинка;

// ВОТ ЗДЕСЬ УСЛОВИЕ
ЕСЛИ Подпись ТОГДА //ВЫВОДИМ КАРТИНКУ
ТабДок.Вывести(ОбластьКартинки);
КОНЕЦЕСЛИ;

//Выведем шапку таблицы
ТабДок.Вывести(ОбластьШапкаТаблицы);
//Выведм строки из Результата запроса

ВыборкаДетали = Результат.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл
//Заполним параметры значениями свойств переданного объекта. Заполняются только те параметры, имена которых совпадают с именами свойств объекта.
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
//Запишем в и область Описание примечание из запроса
ОбластьДетальныхЗаписей.Область("Описание").Примечание.Текст = ВыборкаДетали.СодержаниеСобытия;
ТабДок.Вывести(ОбластьДетальныхЗаписей);
КонецЦикла;
//Зададим параметры вывода
ТабДок.АвтоМасштаб=истина; // уместить на одну страницу
ТабДок.ТолькоПросмотр=истина;
ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
ТабДок.ОтображатьСетку=Ложь;
ТабДок.ОтображатьЗаголовки=Ложь;
//Выведем полученный документ
ТабДок.Показать();
Ermak
12.05.2012 19:04Ответ № 2
у меня то то не так, нет ОбластьКартинки Смотрите вот мой код

Код 1C v 8.х
 Функция ПечатьСчетаЗаказа(Тип)

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
Запрос.Текст ="ВЫБРАТЬ
| ЗаказПокупателя.Номер,
| ЗаказПокупателя.Дата,
| ЗаказПокупателя.Организация,
| ЗаказПокупателя.Заказчик КАК Заказчик,
| ЗаказПокупателя.Организация КАК Руководители,
| ЗаказПокупателя.Организация КАК Поставщик,
| ЗаказПокупателя.Исполнитель КАК Исполнитель,
| ЗаказПокупателя.ПодразделениеИсполнитель КАК ПодразделениеИсполнитель,
| ЗаказПокупателя.ДатаЗаказа
|ИЗ
| Документ.ВнутреннийЗаказ КАК ЗаказПокупателя
|ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент";

Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ВнутреннийЗаказ_СчетЗаказ";

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| ВложенныйЗапрос.Номенклатура,
| ВложенныйЗапрос.Номенклатура.Код КАК Код,
| ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
| СУММА(ВложенныйЗапрос.Количество) КАК Количество,
| ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения,
| ВложенныйЗапрос.ХарактеристикаНоменклатуры КАК Характеристика,
| NULL КАК Серия,
| МИНИМУМ(ВложенныйЗапрос.НомерСтроки) КАК НомерСтроки,
| ВложенныйЗапрос.НомерТЧ КАК НомерТЧ,
| ВложенныйЗапрос.Цена,
| ВложенныйЗапрос.Стоимость,
| ВложенныйЗапрос.НомерПлатежа
|ИЗ
| (ВЫБРАТЬ
| ЗаказПокупателя.Номенклатура КАК Номенклатура,
| ЗаказПокупателя.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ЗаказПокупателя.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| ЗаказПокупателя.Количество КАК Количество,
| 1 КАК НомерТЧ,
| ЗаказПокупателя.НомерСтроки КАК НомерСтроки,
| ЗаказПокупателя.Цена КАК Цена,
| ЗаказПокупателя.Стоимость КАК Стоимость,
| ЗаказПокупателя.НомерПлатежа КАК НомерПлатежа
| ИЗ
| Документ.ВнутреннийЗаказ.Товары КАК ЗаказПокупателя
| ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЗаказПокупателя.Номенклатура,
| ЗаказПокупателя.Номенклатура.ЕдиницаХраненияОстатков,
| NULL,
| ЗаказПокупателя.Количество,
| 2,
| ЗаказПокупателя.НомерСтроки,
| NULL,
| NULL,
| NULL
| ИЗ
| Документ.ВнутреннийЗаказ.ВозвратнаяТара КАК ЗаказПокупателя
| ГДЕ
| ЗаказПокупателя.Ссылка = &ТекущийДокумент) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Номенклатура,
| ВложенныйЗапрос.ЕдиницаИзмерения,
| ВложенныйЗапрос.ХарактеристикаНоменклатуры,
| ВложенныйЗапрос.Номенклатура.Код,
| ВложенныйЗапрос.Номенклатура.Артикул,
| ВложенныйЗапрос.ЕдиницаИзмерения.Представление,
| ВложенныйЗапрос.НомерТЧ,
| ВложенныйЗапрос.Цена,
| ВложенныйЗапрос.Стоимость,
| ВложенныйЗапрос.НомерПлатежа
|
|УПОРЯДОЧИТЬ ПО
| НомерТЧ,
| НомерСтроки";
ЗапросТовары = Запрос.Выполнить().Выгрузить();

Макет = ПолучитьМакет("СчетЗаказ");

// Выводим шапку накладной
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
//ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Внутренний заказ");

//ОбластьМакета.Параметры.ТекстЗаголовка = "Заявка на МТР № " + Шапка.Номер + " на " + Формат( Шапка.Дата, "ДФ='ММММ гггг'");
ОбластьМакета.Параметры.ТекстЗаголовка = "Заявка на МТР № " + Шапка.Номер;


ТабДокумент.Вывести(ОбластьМакета);

ОбластьМакета = Макет.ПолучитьОбласть("Заказчик");
ОбластьМакета.Параметры.Заполнить(Шапка);
ОбластьМакета.Параметры.ПредставлениеЗаказчика = ?(ЗначениеЗаполнено(Шапка.Заказчик), СокрЛП(Шапка.Заказчик.Наименование), "");
ТабДокумент.Вывести(ОбластьМакета);

ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
ВыводитьКоды = Истина;
Колонка = "Артикул";
ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
ВыводитьКоды = Истина;
Колонка = "Код";
Иначе
ВыводитьКоды = Ложь;
КонецЕсли;

ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");

ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);

ОбластьКолонкаТовар = Макет.Область("Товар");
Если Не ВыводитьКоды Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
Макет.Область("КолонкаКодов").ШиринаКолонки;
КонецЕсли;

ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные");

Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл

Если ВыборкаСтрокТовары.Количество = 0 Тогда
Продолжить;
КонецЕсли;

Если Не ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
Продолжить;
КонецЕсли;

ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
ТабДокумент.Вывести(ОбластьНомера);

Если ВыводитьКоды Тогда
Если Колонка = "Артикул" Тогда
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;
Иначе
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;
КонецЕсли;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;

ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
ОбластьДанных.Параметры.Товар = ВыборкаСтрокТовары.Номенклатура.НаименованиеПолное + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары);
ТабДокумент.Присоединить(ОбластьДанных);

КонецЦикла;

// Вывести Итого
ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть("Итого|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные");

ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);

// Вывести Сумму прописью
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + ЗапросТовары.Количество();
ТабДокумент.Вывести(ОбластьМакета);


ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа");
ОбластьМакета.Параметры.Заполнить(Шапка);
//ФИОИсполнитель = ОбщегоНазначения.ФамилияИнициалыФизЛица(Шапка.Исполнитель);
//ОбластьМакета.Параметры.ФИОИсполнителя = ПодразделениеИсполнитель.Наименование+?(ЗначениеЗаполнено(ПодразделениеИсполнитель) И ЗначениеЗаполнено(ФИОИсполнитель),"; ","")+ФИОИсполнитель;

ТабДокумент.Вывести(ОбластьМакета);

Возврат ТабДокумент;

КонецФункции // ПечатьСчетаЗаказаКорректировки()

Картинку я поставил через Таблица - Рисунки - Картинка
В макете она стоит в области ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа");

Подскажите как в моем примере сделать!
Ermak
12.05.2012 21:38Ответ № 3
Все спасибо разобрался, вот кусочек с кода

Код 1C v 8.х
 	// Вывести Сумму прописью
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + ЗапросТовары.Количество();
ТабДокумент.Вывести(ОбластьМакета);



ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа");
//Ермаков нач
Картинка = Новый Картинка("G:\7777.PNG");
ОбластьМакета.Рисунки.Логотип.Картинка = Картинка;
ЕСЛИ Подпись ТОГДА //ВЫВОДИМ КАРТИНКУ
ТабДокумент.Вывести(ОбластьМакета);
КОНЕЦЕСЛИ;

//Ермаков кон

ОбластьМакета.Параметры.Заполнить(Шапка);
//ФИОИсполнитель = ОбщегоНазначения.ФамилияИнициалыФизЛица(Шапка.Исполнитель);
//ОбластьМакета.Параметры.ФИОИсполнителя = ПодразделениеИсполнитель.Наименование+?(ЗначениеЗаполнено(ПодразделениеИсполнитель) И ЗначениеЗаполнено(ФИОИсполнитель),"; ","")+ФИОИсполнитель;

//ТабДокумент.Вывести(ОбластьМакета);

Возврат ТабДокумент;
Ermak
12.05.2012 21:38Ответ № 4
Вопрос закрыт!
Подсказка: Вы можете приложить к ответу файл или изображение щелкнув по значку или в редакторе.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.