Имя: Пароль:
1C
 
вставить картинку из буфера в 1с
0 viktorovichvadim
 
14.11.08
11:31
Как встроенный язык восьмерки поможет вставить картинку (.bmp),уже висящую в буфере обмена, в какой либо рекизит справочника (видимо с типом ХранилищеЗначения)?
1 Hadgehogs
 
14.11.08
11:35
(0) Возьми НЕТЛЕНКУ 2.2, там это реализовано (почти).
2 viktorovichvadim
 
14.11.08
11:36
можно подробнее. не знаю, что это такое
3 Hadgehogs
 
14.11.08
11:37
(2) КАК? Вы еще не в курсе? Тогда мы идем к вам © Тайд. Операция Тайд или кипячение.
http://www.infostart.ru/projects/1737/
4 viktorovichvadim
 
14.11.08
11:50
а как все-таки с ее помощью решить мою задачу (к сожалению, нет времени искать нужный мне метод)
5 Hadgehogs
 
14.11.08
11:54
Объект=Новый ("Addin.Clipboard");
Нечто=Объект.ПолучитьИзБуфераОбмена(2);//Получаем буфер обмена. Если картинка - то в формате (1) - jpg, (2) - bmp
Если ТипЗнч(Нечто)<>Тип("Картинка") Тогда
Сообщить("В буфере обмена нет картинки!",СтатусСообщения.Важное);
Возврат;
КонецЕсли;
6 Hadgehogs
 
14.11.08
11:55
(5) В jpg жмется с максимальным качеством.
7 viktorovichvadim
 
14.11.08
12:01
Попытка
       ЗагрузитьВнешнююКомпоненту("C:\V8ADD.dll");
       Объект =Новый ("Addin.Clipboard");
       Сообщить("Удачно!");
       Возврат;
   Исключение
       Сообщить("Неудачно");
       Возврат;
   КонецПопытки;

На такой код выдает ошибку

{Обработка.МояОбработка.Форма.Форма(7)}: Тип не определен (Addin.Clipboard)
       Объект =Новый ("Addin.Clipboard");
8 viktorovichvadim
 
14.11.08
12:08
компонента зарегистрирована, загружается, а дальше в чем вопрос?
9 Hadgehogs
 
14.11.08
12:08
ППЦ, вы вообще с внешними компонентами работали?
1) V8add.dll кидаем в C:\ProgramFiles\1Cv81\bin, или как там у вас..
2) В модуле приложения, в ПриНачалеРаботыСистемы() добавить код

Попытка
ЗагрузитьВнешнююКомпоненту("V8add.dll");
Исключение
Сообщить("Нет Нетленки!");
КонецПопытки
10 Hadgehogs
 
14.11.08
12:09
(9) +
1) ППЦ - северный полярный лис
2) Когда писал (9) - не видел (8). Если (8) - также, как в (9) - то этого не может быть.
11 Hadgehogs
 
14.11.08
12:32
(0) Взлетело?
12 viktorovichvadim
 
14.11.08
12:45
в реале в буфере есть картинка (только как понять какого формата),

КартинкаВБуфере = БуферОбмена.ПолучитьИзБуфераОбмена(2); (на это не ругается)

но ТипЗнч(КартинкаВБуфере) равен Неопределено. В чем прикол?
13 Hadgehogs
 
14.11.08
12:53
(12) Картинка в буфере какого формата?
14 Hadgehogs
 
14.11.08
12:55
(13) Вернее, как помещаешь в буфер обмена?
15 Ужас бухгалтера
 
14.11.08
12:55
В Excel картинки бывают форматов DIB, PNG, JPEG, WMF, EMF...... И еще PICT, но это только для маков.
16 viktorovichvadim
 
14.11.08
13:01
помещаю картинку в буфер обмена так:

Эксель = ПолучитьCOMОбъект("", "Excel.Application");
Книга = Эксель.WorkBooks.Open(ТекФайл);
ТекЛист = Книга.WorkSheets("Лист1");
Картинка = ТекЛист.Pictures(1); // если она есть, а она действительно есть
Картинка.Copy();

после этого можно зайти в paint, вставить и данная картинка берется из буфера
17 Hadgehogs
 
14.11.08
13:03
(16) Смотрим (15). У меня работает только с bmp/jpg
18 Ужас бухгалтера
 
14.11.08
13:10
(17) Ты не спеши так... Хранить он может в разных форматах, но в буфер может вставлять не обязательно в том (или ТОЛЬКО в том) формате, в котором хранит. Вообще, странно у тебя получение объекта из буфера выглядит. Там же может быть несколько разных значений разного формата. А у тебя как-будто только один:
Если ТипЗнч(Нечто)<>Тип("Картинка") Тогда

Или не один? Может, он как раз в нескольких и вставляет, а ты цепляешься к первому попавшемуся. Тут, по идее, нужно анализировать список форматов и предоставить юзверю возможность получить данные в нужном формате.
19 Hadgehogs
 
14.11.08
13:21
(18) Да, поспешил.
Как я делаю:
Если буфер имеет формат  CF_DIB - беру бинарные данные буфера, -
1) для bmp - конверчу данные в BASE64, BASE64 конверчу в ДвоичныеДанные (уже 1С), ДвоичныеДанные в Картинку
2) для jpg - конверчу данные в JPG, конверчу данные в BASE64, BASE64 конверчу в ДвоичныеДанные (уже 1С), ДвоичныеДанные в Картинку.
Вот
20 Hadgehogs
 
14.11.08
13:22
конверчу -> конвертю
21 viktorovichvadim
 
14.11.08
13:28
а как все-таки насчет моей задачи. кокой есть выход?
22 Hadgehogs
 
14.11.08
13:37
(21) Пришли Екселевский файл, гляну.
23 viktorovichvadim
 
14.11.08
13:46
файл - это excel тест с диска ИТС
http://farsesoft.ifolder.ru/8234341
24 viktorovichvadim
 
14.11.08
14:04
а в ответ - тишина... он вчера не вернулся из боя.
25 Hadgehogs
 
14.11.08
14:05
(23) У меня ВКОНТАКТЕ_ОДНОКЛАСНИКИ_ИПРОЧИЕ фильтр режит этот ресурс
liveups@yandex.ru