|
Объединение картинок и вывод в СКД | ☑ | ||
---|---|---|---|---|
0
1c_yeah
27.06.14
✎
09:48
|
Здравствуйте ув. форумчане! Помогите решить следующую задачу.
Конфигурация ERP 2.0. Отчет (прайс-лист)на СКД. В поле "Маркеры" необходимо вывести картинку состоящую из нескольких (до 4х) картинок которые находятся в присоединенных файлах номенклатуры. Имена этих картинок Маркер1 Маркер2 и тд. Вывести одну целую картинку не проблема. Сама сложность заключается в том что б собрать эти картинки(Маркеры1,2 ...) (до 4х штук) в одну и потом уже вывести в отчет. Спасибо всем кто уделит немного внимания)) |
|||
1
1c_yeah
27.06.14
✎
12:57
|
апну
|
|||
2
1c_yeah
27.06.14
✎
16:53
|
Уточню вопрос.
Есть ОбластьЯчеекТабличногоДокумента, Есть в документе 4 картинки, как их расположить в одной области в разных углах? |
|||
3
vmv
27.06.14
✎
16:58
|
собрать в коллекцию картинки, а дальше, а дальше не скажу!
|
|||
4
Dmitry1c
27.06.14
✎
16:59
|
Выводи каждую картинку в каждую ячейку отдельно
|
|||
5
1c_yeah
27.06.14
✎
17:05
|
(4) Ячейка одна но большая
|
|||
6
shuhard
27.06.14
✎
17:08
|
(5) что мешает сделать 4 ячейки ?
|
|||
7
1c_yeah
27.06.14
✎
17:21
|
(6) Эта ячейка - поле в отчете СКД с текстом %картинка%
Как её разбить на 4 ? |
|||
8
1c_yeah
27.06.14
✎
17:26
|
Если нельзя разбить ячейку на 4 тогда другой вопрос.
как можно объеденить картинки программно? |
|||
9
mikecool
27.06.14
✎
17:28
|
(8) делай в строке сразу 4 ячейки, по необходимости объединяй, если картинок меньше 4х
|
|||
10
Dmitry1c
27.06.14
✎
17:29
|
Погугли задачку из спеца по УТ11 - прайс-лист с картинками.
Там как раз на СКД и описано, как выводить картинки при использовании СКД. |
|||
11
1c_yeah
27.06.14
✎
17:30
|
(9)Как при компоновке результата сделать что в одной строке отчета в определенной колонке было 2 строки и 2 колонки?
|
|||
12
1c_yeah
27.06.14
✎
17:31
|
(10) Дмитрий, отчет у меня уже сделан с картинками, мне бы 4 картинки в одну ячейку впихнуть)
|
|||
13
1c_yeah
27.06.14
✎
17:34
|
(10) Нашел я решение этой задачки, у меня все также почти. но там проще случай чем у меня((
|
|||
14
mikecool
27.06.14
✎
17:38
|
(11) для этого наверняка придется рисовать макет для вывода области
|
|||
15
1c_yeah
27.06.14
✎
17:40
|
(14) О это идея!!я и забыл про макеты. спасибо!
|
|||
16
1c_yeah
01.07.14
✎
17:30
|
Может кому пригодится.. выкрутился следующим образом:
В процедуре при компоновке результата //_Добавление_маркеров+ Если МассивНоменклатуры.Количество() > 0 Тогда Запрос = Новый Запрос("ВЫБРАТЬ | ВЫРАЗИТЬ(ПрисоединенныеФайлы.ПрисоединенныйФайл КАК Справочник.НоменклатураПрисоединенныеФайлы).ВладелецФайла КАК Номенклатура, | ВЫРАЗИТЬ(ПрисоединенныеФайлы.ПрисоединенныйФайл КАК Справочник.НоменклатураПрисоединенныеФайлы).ВладелецФайла.Артикул КАК Артикул, | ПрисоединенныеФайлы.ХранимыйФайл |ИЗ | РегистрСведений.ПрисоединенныеФайлы КАК ПрисоединенныеФайлы |ГДЕ | ВЫРАЗИТЬ(ПрисоединенныеФайлы.ПрисоединенныйФайл КАК Справочник.НоменклатураПрисоединенныеФайлы).ВладелецФайла В (&СписокНоменклатуры) | И ВЫРАЗИТЬ(ПрисоединенныеФайлы.ПрисоединенныйФайл КАК Справочник.НоменклатураПрисоединенныеФайлы).Наименование ПОДОБНО ""Маркер%"" | |УПОРЯДОЧИТЬ ПО | Артикул, | ВЫРАЗИТЬ(ПрисоединенныеФайлы.ПрисоединенныйФайл КАК Справочник.НоменклатураПрисоединенныеФайлы).Наименование"); Запрос.УстановитьПараметр("СписокНоменклатуры", МассивНоменклатуры); ВыборкаМаркеры = Запрос.Выполнить().Выбрать(); Счетчик = 0; ПредыдущаяНоменклатура = Справочники.Номенклатура.ПустаяСсылка(); Пока ВыборкаМаркеры.Следующий() Цикл НоваяНоменклатура = (ПредыдущаяНоменклатура<>ВыборкаМаркеры.Номенклатура); Если НоваяНоменклатура Тогда Счетчик = 1; Иначе Счетчик = Счетчик+1; КонецЕсли; Если Счетчик > 4 Тогда продолжить; КонецЕсли; ФотоМаркера = Новый Картинка(ВыборкаМаркеры.ХранимыйФайл.Получить()); Рис = ДокументРезультат.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка); Рис.РазмерКартинки = РазмерКартинки.Пропорционально;//.АвтоРазмер;//РеальныйРазмер; Рис.Картинка = ФотоМаркера; Рис.Имя = ВыборкаМаркеры.Артикул+"***"+Строка(Счетчик); ПредыдущаяНоменклатура = ВыборкаМаркеры.Номенклатура; КонецЦикла КонецЕсли; //_Добавление_маркеров- |
|||
17
1c_yeah
01.07.14
✎
17:31
|
И в модуле формы:
|
|||
18
1c_yeah
01.07.14
✎
17:31
|
&НаКлиенте
Процедура СформироватьПрайс(Команда) Перем КолонкаАртикул; СкомпоноватьРезультат(РежимКомпоновкиРезультата.Авто); //_Добавление_маркеров+ Попытка ОбработкаИзображений = Новый ComОбъект("ImageMagickObject.MagickImage.1"); Исключение Сообщить("Не удалось инициализировать Image Magick по причине:", СтатусСообщения.Важное); Сообщить(ОписаниеОшибки(), СтатусСообщения.БезСтатуса); Возврат; КонецПопытки; КолКолонок = Результат.ШиринаТаблицы; КолСтрок = Результат.ВысотаТаблицы; Для Кол = 1 По КолКолонок Цикл Для Стр = 1 По КолСтрок Цикл ТекЯчейка = Результат.Область(Стр, Кол); Если Результат.Область(Стр, Кол).Текст = "Артикул" ИЛИ Результат.Область(Стр, Кол).Текст = "Article" Тогда КолонкаАртикул = Кол; ИначеЕсли Результат.Область(Стр, Кол).Текст = "Маркеры" ИЛИ Результат.Область(Стр, Кол).Текст = "Markers" Тогда КолонкаМаркер = Кол; СтрокаШапки = Стр; Прервать; КонецЕсли; КонецЦикла; КонецЦикла; Для Стр = (СтрокаШапки+1) По КолСтрок Цикл Если Результат.Область(Стр, КолонкаМаркер).Текст = "%КартинкаМаркер%" Тогда Артикул = Результат.Область(Стр, КолонкаАртикул).Текст; СтруктураМаркеров = Новый Структура("Маркер1,Маркер2,Маркер3,Маркер4"); Для Сч = 1 ПО 4 Цикл Попытка РисунокМаркер = Результат.Рисунки[Артикул+"***"+Строка(Сч)]; ИмяФайлаМаркер = КаталогВременныхФайлов()+"Image"+Строка(Сч)+".JPEG"; РисунокМаркер.Картинка.Записать(ИмяФайлаМаркер); Результат.Рисунки.Удалить(РисунокМаркер); СтруктураМаркеров.Вставить("Маркер"+Строка(Сч),ИмяФайлаМаркер); Исключение СтруктураМаркеров.Вставить("Маркер"+Строка(Сч),Неопределено); КонецПопытки КонецЦикла; ОбработкаИзображений.Montage(СтруктураМаркеров.Маркер1,СтруктураМаркеров.Маркер2,СтруктураМаркеров.Маркер3,СтруктураМаркеров.Маркер4,"-geometry", "+2+2",СтруктураМаркеров.Маркер1); Рис = Результат.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка); Рис.Картинка = Новый Картинка(СтруктураМаркеров.Маркер1); Рис.РазмерКартинки = РазмерКартинки.АвтоРазмер; Рис.Расположить(Результат.Область(Стр, КолонкаМаркер)); КонецЕсли; КонецЦикла; //_Установка_изображений_Маркеров- КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |