Имя: Пароль:
1C
 
Как вклеить картинку из буфера обмена в ячейку таблицы?
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.
...
Кто добрый - всем спасибо.