Имя: Пароль:
1C
1С v8
Группировка картинок в СКД
0 progaoff
 
15.03.18
11:44
Добрый день всем, есть такая проблема, нужно вывести одну картинку в отчет для нескольких характеристик, возможно ли это в СКД сделать?
     к            Характеристика1
     а            Характеристика2
     р            Характеристика3
     т            Характеристика4  
     и            Характеристика5
     к            Характеристика6
     а            Характеристика7
1 Бертыш
 
15.03.18
12:01
Если Вы умеете выводить картинки в макет, то можно
2 Малыш Джон
 
15.03.18
12:03
(0) размазать одну картинку по нескольким строчкам?
3 Tatitutu
 
15.03.18
12:04
4 Бертыш
 
15.03.18
12:06
(3) Идея хорошая, но может ему не надо как лучше, а надо как хочет заказчик
5 Бертыш
 
15.03.18
12:18
+1 На курсе Курсов по 1С в части СКД меня в числе прочего учили выводить картинки в макет через постобработку сформированного табличного документа. Через постобработку Вы чёрта лысого можете сделать, в том числе и растянуть картинку как Вы хотите
6 progaoff
 
15.03.18
12:23
(2) ага
7 Tatitutu
 
15.03.18
12:25
(6) а если характеристик у товара будет не 7 а 12 или 1 всего - то что с полем картинки делать ?
8 progaoff
 
15.03.18
12:25
(2) просто когда вывожу на каждую характеристику, это очень объёмно и долго.
9 Tatitutu
 
15.03.18
12:33
(8) Товар - картинка
далее
группировка строк
     - характеристика
     - характеристика
10 kittystark
 
15.03.18
12:53
делай в 2 прохода:
на первом выводи отчет СКД, картинки добавляй в ТД, но не Располагай
на втором объединяешь несколько нужных ячеек и уже потом делай Картинка.Расположить(ОбластьТДОбъединенныхЯчеек)
11 progaoff
 
15.03.18
13:41
(10) Если ЗначениеЗаполнено(ЗначениеВыводимыхДанных) Тогда
                Рис = ДокументРезультат.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
                Рис.РазмерКартинки = Размеркартинки.АвтоРазмер;
                Индекс = ДокументРезультат.Рисунки.Индекс(Рис);
                Картинка = ПолучитьДвоичныеДанныеКартинкиПоНоменклатуре(ЗначениеВыводимыхДанных);                
                ДокументРезультат.Рисунки[Индекс].Картинка = Новый Картинка(Картинка);
                
                ОбластьДляКартинки = ДокументРезультат.НайтиТекст("%Картинка%");
                Если ОбластьДляКартинки <> Неопределено тогда
                    ВысотаКартинки = ПолучитьВысотуКартинки(КомпоновщикНастроек.Настройки);
                    ОбластьДляКартинки.ВысотаСтроки  = ?(ВысотаКартинки = 0,70,ВысотаКартинки);
                    Если ВысотаКартинки > 0 Тогда
                        ОбластьДляКартинки.ШиринаКолонки = ВысотаКартинки;
                    КонецЕсли;
                    ДокументРезультат.Рисунки[Индекс].Расположить(ОбластьДляКартинки);
                    ОбластьДляКартинки.Текст = "%КартинкаДобавлена%";
                КонецЕсли;
12 progaoff
 
15.03.18
13:42
На этом участке?
13 kittystark
 
15.03.18
14:43
(12) если этот (11) код у тебя сидит внутри цикла

ПроцессорВывода.НачатьВывод()
...
ПроцессорВывода.ЗакончитьВывод()


то надо ПОСЛЕ него замутить второй цикл по строкам, внутри которого область берешь в несколько строк

ОбластьДляКартинки = ДокументРезультат.Область(индСтрНач, индКолСКартинкой, индСтрКон, индКолСКартинкой);
ДокументРезультат.Рисунки[Индекс].Расположить(ОбластьДляКартинки);
14 progaoff
 
15.03.18
15:31
(13) вопрос как область определить?
15 progaoff
 
15.03.18
15:32
(14) Если она зависит от количества характеристик.
16 kittystark
 
15.03.18
16:38
характеристика чего ? товара ?
выведи еще колонку с товаром, по ней и ориентируйся:
если в тек.строке товар тот же что и в следующей - объединяем

в самом конце грохни эту колонку ТД
17 progaoff
 
16.03.18
10:44
индСтрНач, индКолСКартинкой, индСтрКон, индКолСКартинкой
Что тут должно быть?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший