Имя: Пароль:
1C
1С v8
вставить картинку в из буфера обмена в форматированный документ
0 Lacoster
 
19.08.14
10:11
Всем привет! Прошу прощенья за дубль темы, но почему-то не могу писать в уже созданную тему
v8: вставить картинку в из буфера обмена в форматированный документ
Короче вопрос мой в том же. Нужно из ПринтСкрина вставить картинку в форматированный документ.
Вот собственно кусок кода где я получаю картинку и могу её сохранить:
&НаКлиенте
Процедура КонтрВ(Команда)
//Попытка
        СтрокаКартинки = КомпонентБО.ПолучитьКартинкуИзБуфераОбмена();
        Если ЗначениеЗаполнено(СтрокаКартинки) Тогда
            ДанныеКартинки = Base64Значение(СтрокаКартинки);
            Картинка = Новый Картинка(ДанныеКартинки);
            Картинка.Записать("D:\test.jpg");
.......
Как вставить-то её в поле не нажимая кнопку добавить картинку и не указывая на неё?
1 Lacoster
 
19.08.14
10:19
Да, и если написать в конце
ФорматированныйДокумент.Добавить(Картинка);
то вставляется просто слово Картинка.
2 Ganiev
 
19.08.14
11:02
Если значение параметра ТекстФорматированногоДокумента, то в указанную позицию документа будет добавлено строковое представление переданного значения.
Если значение КартинкаФорматированногоДокумента, то тип значения должен быть или Картинка, или Строка, содержащая URL картинки. В противном случае вызывается исключение.
Если значение параметра ПереводСтрокиФорматированногоДокумента, то значение параметра игнорируется и добавляется перевод строки.
Значение по умолчанию: Неопределено.
3 Lacoster
 
19.08.14
11:12
Разобрался. Вдруг кому полезно будет
Процедура
ФорматированныйДокумент.Добавить(Картинка,ТипЭлементаФорматированногоДокумента.Картинка);
может выполняться только на сервере. Короче отправим её туда, и собственно код


Процедура КонтрВ(Команда)
//Попытка
        СтрокаКартинки = КомпонентБО.ПолучитьКартинкуИзБуфераОбмена();
        Если ЗначениеЗаполнено(СтрокаКартинки) Тогда
            ДанныеКартинки = Base64Значение(СтрокаКартинки);
            Картинка = Новый Картинка(ДанныеКартинки);
            Картинка.Записать("D:\test.jpg");
            //   Этаформа.Элементы.ФорматированныйДокументКартинка
            ДобавитьНаСервере(Картинка);
            
        КонецЕсли;
    //Исключение
    ////    Предупреждение("Ошибка при вставке изображения из буфера: " + Символы.ПС + ОписаниеОшибки());
    //КонецПопытки;
    // Вставить содержимое обработчика.
КонецПроцедуры
&НаСервере
Процедура ДобавитьНаСервере(Картинка)
    ФорматированныйДокумент.Добавить(Картинка,ТипЭлементаФорматированногоДокумента.Картинка);
    КонецПроцедуры
4 Lacoster
 
21.08.14
11:20
Хочу поднять тему снова. А как бы вставить картинку из веб-клиента? Все что описано выше - работает в тонком клиенте.
Конкретно ругается на строку где определяю КомпонентБО
Вот кусок кода:
&НаКлиенте
  Процедура  ПриОткрытии(Отказ, СтандартнаяОбработка)
      ПриОткрытии1(Отказ);
      
      ИмяБиблиотекиClipboard = "clipboard.dll";
    //  ПроверкаНаНаличиеБиблиотекиСервер(ИмяБиблиотекиClipboard);
      
      Попытка
              //УстановитьВнешнююКомпоненту("S:\Отделы\IT\clipboard.dll");
                ПодключитьВнешнююКомпоненту("S:\Отделы\IT\clipboard.dll","clipboard",ТипВнешнейКомпоненты.COM);
          ПодключитьВнешнююКомпоненту("AddIn.clipboard");
          //    
          Попытка
              
              КомпонентБО = Новый("AddIn.clipboard");
5 zulu_mix
 
21.08.14
11:23
а с чего ты взял что на маке или никсах есть и длл и ком?
6 Lacoster
 
21.08.14
11:28
(5) даже не думал об этом. Но у нас только винда везде
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший