1С 7.7 Как в печатной форме программно вставить картинку в объединенные ячейки

1. Vlad Volkov (HiFox) 14.04.17 10:57 Сейчас в теме
Здравствуйте!

Есть код:

Процедура Сформировать()
	Тб = СоздатьОбъект("Таблица");
	Тб.ИсходнаяТаблица("Таблица");
	
	Для к = 1 по 5 Цикл
		Тб.ВывестиСекцию("Строка");	
	КонецЦикла;	    
	
	ОблТаб = Тб.Область(1,2,5,2);
	ОблТаб.Объединить();
	ОблТаб.ВертикальноеПоложение(3);  
	ОблТаб.ГоризонтальноеПоложение(3); 
	ОблТаб.РамкаОбвести(3,3,3,3);
	
        ТУТ НАДО ПРОГРАММНО ВСТАВИТЬ КАРТИНКУ В ОБЛАСТЬ ОблТаб
	
	Тб.ТолькоПросмотр(1);
	Тб.Показать("Прайс","");
КонецПроцедуры
...Показать Скрыть

Собственно вопрос - "Как программно вставить картику в эту область (объединенные ячейки)?"
Найденные решения
11. Владислав Чинючин (vcv) 83 19.04.17 20:51 Сейчас в теме
(10)
если картинке установить, скажем, высоту 5 строк жестко

Если разговор про 1С таблицы, то в ней картинки имеют не фиксированный размер, а относительно положения тех ячеек, в которых находятся углы картинки.
если в группе строк меньше 5

Если картинка не влазит полностью в выводимую секцию таблицы, то она просто не выведется.
используя макросы, в excel ведь можно добавлять строки

В эксель можно. Но откуда взялся эксель? ТС, вроде как, относительно штатными средствами хочет решить.

В общем - я что-то не совсем понял о чем вы. Если о возможном методе формирования отчета, как в (4), то я бы предложил такой метод:
В шаблоне таблицы секция из двух строк - строка заголовка группы прайса и строка строки прайса. В левой части картинка, которая ровно по высоте как эти две строки. При формировании прайса выводим секцию, потом вставляем N-1 строк между первой и второй (где N - количество товаров в группе). Йоксель это позволяет. Получаем строки в результирующей таблице отчета, где первая строка заголовок группы, ниже неё N строк без оформления для товаров, а слева растянутая на все строки по вертикали картинка. Заполняем выведенные строки товарами и оформлением ячеек.
Дальше выводим аналогичным образом следующую группу товаров.
Экспериментировать не пробовал, надеюсь, сработает.:)
Самоделкин; +1 Ответить 2
Остальные ответы
2. rjhev korum (корум) 306 14.04.17 11:22 Сейчас в теме
(1) ни разу не сталкивался.
Обычно при выводе прайса пользовались готовыми макетами, в одной из области уже вставлен объект Картинка (или Рисунок, не помню), и задачей программы было подсунуть правильный путь к картинке.
3. Дмитрий Дмитренко (Sokar) 14.04.17 11:27 Сейчас в теме
4. Vlad Volkov (HiFox) 14.04.17 12:17 Сейчас в теме
(2) Нужна вот такая структура http://clip2net.com/s/3Jw9xeb А через СЕКЦИИ так не сделать
5. Vlad Volkov (HiFox) 14.04.17 12:18 Сейчас в теме
(3) Это не то, смотрите ссылку выше, что я хочу
6. Анатолий Ман (Самоделкин) 2 14.04.17 20:11 Сейчас в теме
(4)Так как хотите, быстро сделать не получится!
7. Сергей (Che) Коцюра (CheBurator) 3382 15.04.17 03:25 Сейчас в теме
8. Владислав Чинючин (vcv) 83 15.04.17 07:33 Сейчас в теме
Я то думал Чебуратор спрашивает на мисте, а оказывается, он чужой вопрос транслирует :)

В голову приходит такой вариант:
Если в таблице картинка занимает по высоте несколько строк и ты вставляешь/удаляешь строки где-нибудь в середине, картинка автоматически растягивается/сжимается. Только штатная таблица не умеет программно удалять/вставлять строки. Но умеет Йоксель, который с изображениями ведёт себя аналогично.
9. Сергей (Che) Коцюра (CheBurator) 3382 15.04.17 21:01 Сейчас в теме
(8) потому что 1.занятно 2.может и мне пригодиться
10. Анатолий Ман (Самоделкин) 2 19.04.17 19:46 Сейчас в теме
(8)Владислав, а если картинке установить, скажем, высоту 5 строк жестко, потом если в группе строк меньше 5 тогда высота строки = 5 / кол-во строк, а если больше 5, то добавить необходимое кол-во строк, используя макросы, в excel ведь можно добавлять строки если объединены строки в столбце.
11. Владислав Чинючин (vcv) 83 19.04.17 20:51 Сейчас в теме
(10)
если картинке установить, скажем, высоту 5 строк жестко

Если разговор про 1С таблицы, то в ней картинки имеют не фиксированный размер, а относительно положения тех ячеек, в которых находятся углы картинки.
если в группе строк меньше 5

Если картинка не влазит полностью в выводимую секцию таблицы, то она просто не выведется.
используя макросы, в excel ведь можно добавлять строки

В эксель можно. Но откуда взялся эксель? ТС, вроде как, относительно штатными средствами хочет решить.

В общем - я что-то не совсем понял о чем вы. Если о возможном методе формирования отчета, как в (4), то я бы предложил такой метод:
В шаблоне таблицы секция из двух строк - строка заголовка группы прайса и строка строки прайса. В левой части картинка, которая ровно по высоте как эти две строки. При формировании прайса выводим секцию, потом вставляем N-1 строк между первой и второй (где N - количество товаров в группе). Йоксель это позволяет. Получаем строки в результирующей таблице отчета, где первая строка заголовок группы, ниже неё N строк без оформления для товаров, а слева растянутая на все строки по вертикали картинка. Заполняем выведенные строки товарами и оформлением ячеек.
Дальше выводим аналогичным образом следующую группу товаров.
Экспериментировать не пробовал, надеюсь, сработает.:)
Самоделкин; +1 Ответить 2
12. Анатолий Ман (Самоделкин) 2 19.04.17 21:20 Сейчас в теме
(11)Ну, я про то, чтобы сохранить Прайс в ексель (без картинок это пройдёт намного быстрей), потом в ексель уже формировать нужный вид Прайса.
13. Владислав Чинючин (vcv) 83 20.04.17 05:22 Сейчас в теме
(12) Ну у меня прайса с картинками нет, что бы скорость оценивать. Может сначала попробовать сохранить через Йоксель? И только потом углубляться в сложности управления Экселем?
Самоделкин; +1 Ответить
14. Vlad Volkov (HiFox) 20.04.17 16:32 Сейчас в теме
Пока выкрутился через СЕКЦИИ http://clip2net.com/s/3JIbIdb

Для к = 1 по 3 Цикл   //Понятно, что кол-во нужных строк (пробелов) вычисляется
	Тб.ВывестиСекцию("Строка");
КонецЦикла;
	
Тб.ВывестиСекцию("Строка1|Колонка1");
	
Для к = 1 по 10 Цикл // кол-во товарных строк 
	ОблТаб = Тб.Область(к,2,к,2); 
	ОблТаб.ВертикальноеПоложение(3);  
	ОблТаб.ГоризонтальноеПоложение(3); 
	ОблТаб.РамкаОбвести(3,3,3,3); 
	ОблТаб.Текст = Строка(к);
	ОблТаб.ВысотаСтроки(15);
КонецЦикла;
...Показать Скрыть


Результат: http://clip2net.com/s/3JIc8so

Т.е. по сути, я обошёлся без объединения, просто вывожу картинку в нужном мне месте.

Но вопрос актуален.
15. Владислав Чинючин (vcv) 83 21.04.17 13:39 Сейчас в теме
(14) А чем вас не устроило описанное в (11) ?
16. Vlad Volkov (HiFox) 21.04.17 16:55 Сейчас в теме
(15) Почему не устроило? Устроило :) По сути это оно и есть. Но есть две тонкости. 1. Этим способом не просто сделать прайс в 2е колонки, например так: http://clip2net.com/s/3JKDJiI 2. Эксель почему-то ломает пропорции картинок.
17. александр (whtblck) 98 29.05.17 15:26 Сейчас в теме
(16)
я так и не понял, получилось вывести в печатную форму?
такая же проблема: нужно вывести картинку в n-ное количество объединенных ячеек.
Если у Вас получилось - надоумьте, как?
спасибо
Оставьте свое сообщение