Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 18:00
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Картинка в СКД  (Прочитано 2855 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн andryscha92

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С
Здравствуйте! В рознице 1.0 имеется типовой отчет Прайс лист. Отчет на СКД выводится программным способом. Подскажите можно ли в отчет СКД вставить картинку для каждого товара?Кто сталкивался может?


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Re: Картинка в СКД
« Ответ #1: 28 Ноя 2014, 12:21 »
Можно
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн andryscha92

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С
Re: Картинка в СКД
« Ответ #2: 28 Ноя 2014, 12:22 »
Можно
хотелось бы на примере, или идею какую?

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Re: Картинка в СКД
« Ответ #3: 28 Ноя 2014, 12:55 »
дописка на тему картинок - выделена "//+++"

Процедура ВывестиТиповойОтчет(ОтчетОбъект, Результат, ДанныеРасшифровки, ВыводВФормуОтчета = Истина, ВнешниеНаборыДанных = Неопределено, СвойМакетОформления = Неопределено) Экспорт

ОтчетОбъект.КомпоновщикНастроек.Восстановить();
Схема = ТиповыеОтчеты.ПолучитьСхемуКомпоновкиОбъекта(ОтчетОбъект);

//Сгенерируем макет компоновки данных при помощи компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

Попытка

//В качестве схемы компоновки будет выступать схема самого отчета
//В качестве настроек отчета - текущие настройки отчета
//Данные расшифровки будем помещать в ДанныеРасшифровки
Если ВыводВФормуОтчета Тогда
Если СвойМакетОформления<>Неопределено Тогда
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, ОтчетОбъект.КомпоновщикНастроек.Настройки, ДанныеРасшифровки, СвойМакетОформления);
Иначе
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, ОтчетОбъект.КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
КонецЕсли;
ДополнитьМакетыМакетаКомпоновкиРасшифровкойРесурсов(МакетКомпоновки, ОтчетОбъект.КомпоновщикНастроек);
//Создадим и инициализируем процессор компоновки
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
Если ВнешниеНаборыДанных = Неопределено Тогда
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
Иначе
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина);
КонецЕсли;
Иначе

Если СвойМакетОформления<>Неопределено Тогда
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, ОтчетОбъект.КомпоновщикНастроек.Настройки, , СвойМакетОформления);
Иначе
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, ОтчетОбъект.КомпоновщикНастроек.Настройки);
КонецЕсли;
//Создадим и инициализируем процессор компоновки
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
Если ВнешниеНаборыДанных = Неопределено Тогда
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , , Истина);
Иначе
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, , Истина);
КонецЕсли;
КонецЕсли;

//Создадим и инициализируем процессор вывода результата
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);

//Обозначим начало вывода
ПроцессорВывода.НачатьВывод();
Состояние(НСТР("ru='Если Вы хотите прервать вывод отчета, нажмите Ctrl+Break'"));

ТаблицаЗафиксирована = Не ВыводВФормуОтчета;

Результат.ФиксацияСверху = 0;
//Основной цикл вывода отчета
Пока Истина Цикл

ОбработкаПрерыванияПользователя();
//Получим следующий элемент результата компоновки
ЭлементРезультата = ПроцессорКомпоновки.Следующий();

Если ЭлементРезультата = Неопределено Тогда
//Следующий элемент не получен - заканчиваем цикл вывода
Прервать;

Иначе

// Зафиксируем шапку
Если Не ОтчетОбъект.РасширеннаяНастройка
   И Не ТаблицаЗафиксирована
  И ЭлементРезультата.ЗначенияПараметров.Количество() > 0
  И ТипЗнч(ОтчетОбъект.КомпоновщикНастроек.Настройки.Структура[0]) <> Тип("ДиаграммаКомпоновкиДанных") Тогда
ТаблицаЗафиксирована = Истина;
Результат.ФиксацияСверху = Результат.ВысотаТаблицы;
КонецЕсли;

//+++
ЕстьРисунки = Новый Соответствие;

Если ЭлементРезультата.ЗначенияПараметров.Количество() > 0 Тогда
    Для каждого Параметр Из ЭлементРезультата.ЗначенияПараметров Цикл

Если ТипЗнч(Параметр.Значение)=Тип("ХранилищеЗначения") Тогда

КартинкаТД = Результат.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Попытка
КартинкаТД.Картинка = Параметр.Значение.Получить();//Новый Картинка(Параметр.Значение.Получить());
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КартинкаТД.РазмерКартинки = РазмерКартинки.Пропорционально;

ИмяКартинки = Сред(Параметр.Имя,2);
ЕстьРисунки.Вставить(ИмяКартинки,КартинкаТД);

Параметр.Значение = "[П"+ИмяКартинки+"]";
КонецЕсли;

КонецЦикла;
КонецЕсли;
//+++

//Элемент получен - выведем его при помощи процессора вывода
ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);

//+++
Для каждого Рисунок Из ЕстьРисунки Цикл

КолонокВсего = Результат.ШиринаТаблицы;

Для Колонка=1 По КолонокВсего Цикл

ОбластьВывода = Результат.Область("R"+Формат(Результат.ВысотаТаблицы,"ЧГ=0")+"C"+Формат(Колонка,"ЧГ=0"));
Если ОбластьВывода.Текст = "[П"+Рисунок.Ключ+"]" Тогда

Рисунок.Значение.Расположить(ОбластьВывода);
    ОбластьВывода.ВысотаСтроки = 40;
КонецЕсли;
                                                                                   
КонецЦикла;

КонецЦикла;
//+++

КонецЕсли;

КонецЦикла;

//Обозначем завершение вывода
ПроцессорВывода.ЗакончитьВывод();

Исключение
Вопрос("Отчет не сформирован!" + Символы.ПС + ПолучитьОписаниеРодительскойПричиныИнформацииОбОшибке(ИнформацияОбОшибке()), РежимДиалогаВопрос.ОК);
КонецПопытки;

КонецПроцедуры

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн andryscha92

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С
Re: Картинка в СКД
« Ответ #4: 28 Ноя 2014, 13:01 »
дописка на тему картинок - выделена "//+++"

Процедура ВывестиТиповойОтчет(ОтчетОбъект, Результат, ДанныеРасшифровки, ВыводВФормуОтчета = Истина, ВнешниеНаборыДанных = Неопределено, СвойМакетОформления = Неопределено) Экспорт

ОтчетОбъект.КомпоновщикНастроек.Восстановить();
Схема = ТиповыеОтчеты.ПолучитьСхемуКомпоновкиОбъекта(ОтчетОбъект);

//Сгенерируем макет компоновки данных при помощи компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

Попытка

//В качестве схемы компоновки будет выступать схема самого отчета
//В качестве настроек отчета - текущие настройки отчета
//Данные расшифровки будем помещать в ДанныеРасшифровки
Если ВыводВФормуОтчета Тогда
Если СвойМакетОформления<>Неопределено Тогда
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, ОтчетОбъект.КомпоновщикНастроек.Настройки, ДанныеРасшифровки, СвойМакетОформления);
Иначе
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, ОтчетОбъект.КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
КонецЕсли;
ДополнитьМакетыМакетаКомпоновкиРасшифровкойРесурсов(МакетКомпоновки, ОтчетОбъект.КомпоновщикНастроек);
//Создадим и инициализируем процессор компоновки
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
Если ВнешниеНаборыДанных = Неопределено Тогда
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
Иначе
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина);
КонецЕсли;
Иначе

Если СвойМакетОформления<>Неопределено Тогда
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, ОтчетОбъект.КомпоновщикНастроек.Настройки, , СвойМакетОформления);
Иначе
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, ОтчетОбъект.КомпоновщикНастроек.Настройки);
КонецЕсли;
//Создадим и инициализируем процессор компоновки
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
Если ВнешниеНаборыДанных = Неопределено Тогда
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , , Истина);
Иначе
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, , Истина);
КонецЕсли;
КонецЕсли;

//Создадим и инициализируем процессор вывода результата
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);

//Обозначим начало вывода
ПроцессорВывода.НачатьВывод();
Состояние(НСТР("ru='Если Вы хотите прервать вывод отчета, нажмите Ctrl+Break'"));

ТаблицаЗафиксирована = Не ВыводВФормуОтчета;

Результат.ФиксацияСверху = 0;
//Основной цикл вывода отчета
Пока Истина Цикл

ОбработкаПрерыванияПользователя();
//Получим следующий элемент результата компоновки
ЭлементРезультата = ПроцессорКомпоновки.Следующий();

Если ЭлементРезультата = Неопределено Тогда
//Следующий элемент не получен - заканчиваем цикл вывода
Прервать;

Иначе

// Зафиксируем шапку
Если Не ОтчетОбъект.РасширеннаяНастройка
   И Не ТаблицаЗафиксирована
  И ЭлементРезультата.ЗначенияПараметров.Количество() > 0
  И ТипЗнч(ОтчетОбъект.КомпоновщикНастроек.Настройки.Структура[0]) <> Тип("ДиаграммаКомпоновкиДанных") Тогда
ТаблицаЗафиксирована = Истина;
Результат.ФиксацияСверху = Результат.ВысотаТаблицы;
КонецЕсли;

//+++
ЕстьРисунки = Новый Соответствие;

Если ЭлементРезультата.ЗначенияПараметров.Количество() > 0 Тогда
    Для каждого Параметр Из ЭлементРезультата.ЗначенияПараметров Цикл

Если ТипЗнч(Параметр.Значение)=Тип("ХранилищеЗначения") Тогда

КартинкаТД = Результат.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Попытка
КартинкаТД.Картинка = Параметр.Значение.Получить();//Новый Картинка(Параметр.Значение.Получить());
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КартинкаТД.РазмерКартинки = РазмерКартинки.Пропорционально;

ИмяКартинки = Сред(Параметр.Имя,2);
ЕстьРисунки.Вставить(ИмяКартинки,КартинкаТД);

Параметр.Значение = "[П"+ИмяКартинки+"]";
КонецЕсли;

КонецЦикла;
КонецЕсли;
//+++

//Элемент получен - выведем его при помощи процессора вывода
ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);

//+++
Для каждого Рисунок Из ЕстьРисунки Цикл

КолонокВсего = Результат.ШиринаТаблицы;

Для Колонка=1 По КолонокВсего Цикл

ОбластьВывода = Результат.Область("R"+Формат(Результат.ВысотаТаблицы,"ЧГ=0")+"C"+Формат(Колонка,"ЧГ=0"));
Если ОбластьВывода.Текст = "[П"+Рисунок.Ключ+"]" Тогда

Рисунок.Значение.Расположить(ОбластьВывода);
    ОбластьВывода.ВысотаСтроки = 40;
КонецЕсли;
                                                                                   
КонецЦикла;

КонецЦикла;
//+++

КонецЕсли;

КонецЦикла;

//Обозначем завершение вывода
ПроцессорВывода.ЗакончитьВывод();

Исключение
Вопрос("Отчет не сформирован!" + Символы.ПС + ПолучитьОписаниеРодительскойПричиныИнформацииОбОшибке(ИнформацияОбОшибке()), РежимДиалогаВопрос.ОК);
КонецПопытки;

КонецПроцедуры

спасибо, буду разбираться и пробовать!


Теги:
 

СКД. Надпись "Отчет формируется" и картинка при формировании отчета

Автор AssemblerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 9935
Последний ответ 13 Сен 2011, 18:18
от Assembler
Картинка в таблицу управляемой формы внешней обработки

Автор ПростоБоссРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 2516
Последний ответ 05 Июн 2016, 19:40
от ПростоБосс
Не вставляется картинка в шаблон чека ккм. Розница 2.2 для Казахстана

Автор fan_club_chelsea@bk.ruРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 318
Последний ответ 14 Авг 2017, 09:21
от fan_club_chelsea@bk.ru
Картинка в фотопрайсе во внешнй печатной форме

Автор kirekРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 2064
Последний ответ 04 Авг 2010, 07:14
от kirek
Не отображается картинка при нажатии на товар 1С Предприятие 8.2

Автор Диляра ХайруллинаРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 823
Последний ответ 18 Май 2016, 16:22
от Kironten

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
47 Сообщений
oleg-x
44 Сообщений
andron81_81
44 Сообщений
BuhRust
33 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 243
  • Точка Скрытых: 0
  • Точка Пользователей: 8
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal