Среда, 19 апреля 2023 15:50

Как передать картинку (ХранилищеЗначений) по Com-соединению из одной базы 1С в другую

Автор
Оцените материал
(3 голосов)
db = Новый COMобъект("V83.COMConnector");
Попытка 
	соединение= db.Connect(СтрокаПодключения);
Исключение
	сообщить("база не открыта");
	Предупреждение(ОписаниеОшибки());
	Возврат ложь;
КонецПопытки;


НоваяНоменклатура=Справочники.Номенклатура.НайтиПоКоду("ВашКод");

GUID = НоваяНоменклатура.УникальныйИдентификатор();
GUIDCom  = соединение.NewObject("УникальныйИдентификатор", Строка(GUID)); 
НоменклатураСсылкаCom = ТекПодключение.Справочники.Номенклатура.ПолучитьСсылку(GUIDCom);

НовКартинкаОбъект = Соединение.Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();

НовКартинкаОбъект.Объект = НоменклатураСсылкаCom;
НовКартинкаОбъект.Наименование = НоваяНоменклатура.ОсновноеИзображение.Наименование;
НовКартинкаОбъект.ВидДанных = Соединение.Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
НовКартинкаОбъект.ИмяФайла = НоваяНоменклатура.ОсновноеИзображение.ИмяФайла;
	  
Картинка=НоваяНоменклатура.ОсновноеИзображение.Хранилище.Получить();
Двоичные        = Картинка.ПолучитьДвоичныеДанные();
ДвоичныеСтрокой    = Base64Строка(Двоичные);
ДвоичныеCOM        = Соединение.Base64Значение(ДвоичныеСтрокой);
МояКартинкаCOM  = Соединение.NewObject("Картинка",ДвоичныеCOM);
НовКартинкаОбъект.Хранилище = Соединение.NewObject("ХранилищеЗначения",МояКартинкаCOM);
		   
НовКартинкаОбъект.Записать();

Прочитано 815 раз
Комментарии   
0 #1 Александр 18.10.2023 04:36
Спасибо. Реально сэкономил кучу времени
Цитировать
Добавить комментарий


Таргетированная СМС рассылка СМС Дар.