![]() |
![]() |
![]() |
|
Как вклеить картинку из буфера обмена в ячейку таблицы? | ☑ | ||
---|---|---|---|---|
0
Passer
20.10.05
✎
11:10
|
Есть процедура Сформировать. В ней сначала вырисовывается форма. После того, как форма нарисована, нужно поверх в определённую ячейку вклеить картинку из буфера обмена. Начало такое
... ExcelApp=CreateObject("Excel.Application"); ExcelApp.Displayalerts = 0; ExcelApp.Workbooks.Add(); ExcelApp.ActiveWorkBook().ActiveSheet().Pictures.Insert("C:\1\Pic\2_1Pic1.bmp").Copy(); ... Тут рисунок уже в буфере. Теперь надо вклеить в Таблицу 1С. Есть варианты? Интерактивно можно, а программно? |
|||
1
GrayT
20.10.05
✎
11:11
|
А зачем через буфер? Не судьба сразу вставить?
|
|||
2
Passer
20.10.05
✎
11:13
|
Да.
|
|||
3
GrayT
20.10.05
✎
11:14
|
Что, да?
|
|||
4
Passer
20.10.05
✎
11:14
|
Такая задачка: поверх отрисованой печатной формы заклеить рисунок из буфера в произвольную ячейку.
|
|||
5
GrayT
20.10.05
✎
11:15
|
Вставить не судьба?
На таблицу объект картинка В тексте картинки пишешь Таб.ТекущийОбъект.Загрузить("C:\1\Pic\2_1Pic1.bmp"); Таб.ТекущийОбъект.РежимРисования(3) |
|||
6
Passer
20.10.05
✎
11:20
|
Таблица УЖЕ отрисована.
Без перерисовки можно? З.Ы.:По условию нада из буфира... |
|||
7
Груздь
20.10.05
✎
11:20
|
||||
8
smaharbA
20.10.05
✎
11:21
|
Пелять... Вы зае... Что читать хелп западло
ExcelApp.ActiveWorkbook.Worksheets(2).Range("d5").Activate(); ExcelApp.ActiveWorkbook.Worksheets(2).Paste(); |
|||
9
GrayT
20.10.05
✎
11:21
|
" рисунок из буфера в произвольную ячейку." и "Интерактивно можно," - это как?
|
|||
10
GrayT
20.10.05
✎
11:21
|
(8)Вроде про 1С речь :(
|
|||
11
Passer
20.10.05
✎
11:22
|
(8) И она будет вставлена! Только а Ёксель... А не в 1С :-(
|
|||
12
Passer
20.10.05
✎
11:22
|
(9) Правой клавишей мышки.... :=)
|
|||
13
Груздь
20.10.05
✎
11:23
|
(6) >>З.Ы.:По условию нада из буфира...
Это ты сам выдумал себе такой геморрой ..., и теперь пытаешься ещё нас на него подцепить ... Зачем? |
|||
14
Passer
20.10.05
✎
11:25
|
(7,13) Почему среда интерактивно поддерживает то, до чего нельзя достучаться программно?
"Кто так строит... " (с) к/ф "Чародеи" А если серьёзно: буфер - штука полезная. Только как его курить? |
|||
15
smaharbA
20.10.05
✎
11:29
|
(14) Я непонял ты в
Куда.Загрузить("C:\1\Pic\2_1Pic1.bmp"); Куда.РежимРисования(2); WClipboard(Куда); - тут чего пытаешься сделать, этож запись в буфер, а тебе видать надо чтение из... |
|||
16
Passer
20.10.05
✎
11:38
|
Это был другой вариант. Проблема в том, что мне нужно вклеить картинку размером более 1х1 ячейку. Нужно клеить 1х2, 2х1, 2х2 и т.д. по обстоятельствам. Все ячейки одного размера, но в одной колонке могут встречаться картинки различной ширины, а в строках - различной высоты. Сначала я пробовал объединить ячейки, но при этом у обънединённой ячейки картинка отрисовывается не на всю объединённую ячейку, а только на размер первой (верхней левой) ячейки. А мне надо всё закрыть. Поэтому рассматриваю два варианта:
1. Вывести катринку в 1С в ячейку подходящего размера, скопировать картинку в буфер обмена, уменьшить ячейку до стандартного размера и .... вот тут поверх ячейки 1С нужно клеить картинку... 2. Вывести картинку в Ексель, скопировать в буфер и ... вот тут поверх ячейки 1С нужно клеить картинку... По другому пропорции картинки искажаются и не удаётся "задать" ей размер более 1х1 ячейку. А нодо именно это. |
|||
17
Passer
20.10.05
✎
11:39
|
За очепятки извиняюсь...
"Потому что мысль.." (с) ? |
|||
18
Passer
20.10.05
✎
11:41
|
Неужели прийдётся в екселе всё рисовать?
|
|||
19
Груздь
20.10.05
✎
11:41
|
(16) Заготовить все возможные секции и выводить нужную "по обстоятельствам" ...
|
|||
20
Passer
20.10.05
✎
11:48
|
(19)Так 1С её в ОДНУ (1х1) ячейку пихает, уменьшая размер или показывая только среднюю часть картинки.
|
|||
21
Passer
20.10.05
✎
11:50
|
Оригинальный размер можно сохранить только через буфер обмана.
|
|||
22
Груздь
20.10.05
✎
11:52
|
(20) Чушь!
|
|||
23
Passer
20.10.05
✎
11:54
|
(22) Как это?
|
|||
24
Passer
20.10.05
✎
11:58
|
(22) Это другим словом называется - РежимРисования.
1 - нарушаются пропорции 2 - видно только середину рисунка 3 - рисунок видно весь, но он уменьшен. Остаётся только буфер... |
|||
25
Passer
20.10.05
✎
17:35
|
Ап.
|
|||
26
Груздь
20.10.05
✎
17:47
|
Я могу разместить одну картинку в любом количестве ячеек ...
Хоть 1х1, хоть 1х2, 2х1, 2х2, 1х4 ... Я не понимаю твоей проблемы ... Имхо, буфер обмена тебе нужен только затем, чтоб получить побольше острых ощущений ... Уже сутки прошли ... Давно пора бы сделать задуманное ... |
|||
27
Passer
20.10.05
✎
18:57
|
Я а кроме как через буфер не могу. Показываю почему:
... //******************************************* Процедура Сформировать() Для а = 1 по 4 Цикл Для б = 1 по 4 Цикл Обл = Таблица.Область("R"+(а+1)+"C"+(б+1)+":R"+(а+1)+"C"+(б+1)); Обл.РамкаОбвести(5,5,5,5); Обл.ВысотаСтроки(50); Обл.ШиринаСтолбца(10); КонецЦикла; КонецЦикла; Обл = Таблица.Область("R2C2:R4C2"); Обл.Объединить(); Обл = Таблица.Область("R5C2:R5C4"); Обл.Объединить(); Обл = Таблица.Область("R3C5:R5C5"); Обл.Объединить(); Обл = Таблица.Область("R2C3:R2C5"); Обл.Объединить(); Таблица.Показать(); КонецПроцедуры ... Вот по такой схеме нужно ячейки разместить. Как? З.Ы.: В конечном варианте схема может быть и сложнее типа: .... //******************************************* Процедура Сформировать1() Для а = 1 по 4 Цикл Для б = 1 по 9 Цикл Обл = Таблица.Область("R"+(а+1)+"C"+(б+1)+":R"+(а+1)+"C"+(б+1)); Обл.РамкаОбвести(5,5,5,5); Обл.ВысотаСтроки(50); Обл.ШиринаСтолбца(10); КонецЦикла; КонецЦикла; Обл = Таблица.Область("R2C2:R4C2"); Обл.Объединить(); Обл = Таблица.Область("R5C2:R5C4"); Обл.Объединить(); Обл = Таблица.Область("R3C5:R5C5"); Обл.Объединить(); Обл = Таблица.Область("R2C3:R2C5"); Обл.Объединить(); Обл = Таблица.Область("R3C6:R5C8"); Обл.Объединить(); Обл = Таблица.Область("R2C8:R2C10"); Обл.Объединить(); Обл = Таблица.Область("R4C9:R4C10"); Обл.Объединить(); Таблица.Показать(); КонецПроцедуры ... |
|||
28
Груздь
20.10.05
✎
19:26
|
Ищи ВК ActiveBMP ...
|
|||
29
Passer
20.10.05
✎
19:30
|
Вот это уже другой разговор...
А то "в сад, в сад".... |
|||
30
Груздь
20.10.05
✎
19:34
|
(29) Один хрен, можно обойтись штатными средствами ...
Только убедить тебя в этом труднее, чем предложить альтернативное решение ... |
|||
31
Passer
20.10.05
✎
19:36
|
А ALS к нему есть?
|
|||
32
Груздь
20.10.05
✎
19:39
|
||||
33
Груздь
20.10.05
✎
19:39
|
(31) Не знаю, не смотрел его ни разу ...
|
|||
34
Passer
20.10.05
✎
19:40
|
Так стандартными можно наделать рисунков типа 1х2,2х1,2х2 и т.д., нарезать их размером 1х1 и потом разработать сложный алгоритм обклейки одиночных квадратиков кусочками нужного рисунка....
З.Ы.: А для работы с буфером обмена ВК назвать не можешь? |
|||
35
Груздь
20.10.05
✎
19:44
|
(34) Если ты даже сможешь прочитать картинку из буфера, то тип этого объекта, скорей всего, не будет равен соответствовать типу 1с-овской картинки ...
|
|||
36
Груздь
20.10.05
✎
19:46
|
(35)+ В 1С:Addon есть CopyToClipboard() и PasteFromClipboard() ...
|
|||
37
Passer
20.10.05
✎
20:13
|
(36)Соответствует типу OLE:Picture. Туды можно не только "1с-овскую картинку", но и OLE пихать...
Ушёл искать 1C:Addon. ... Кто добрый - всем спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |