Передача файлов через COM
☑
0
Grekos2
17.08.20
✎
16:10
1С обычные формы.
Надо перенести файлы из справочника ХранилищеДополнительнойИнформации между двумя базами.
Пытаюсь сделать так:
В источнике:
Данные1 = Новый ХранилищеЗначения(ЭлементСправочникаХранилищаДопИнф.Хранилище.Получить(),Новый СжатиеДанных(9));
Данные2 = XMLСтрока(Данные1);
ХранДопИнф_Сом = connection.ДополнительныеМетоды.ПолучитьФайлИзДругойБазы(Данные2,Строка(УИД_Заявки),Наименование);
ХранДопИнф_Сом.Записать();
В приемнике:
Функция ПолучитьФайлИзДругойБазы(ДанныеФайл,Уид,Наимен) Экспорт
ДвоичныеДанные = XMLЗначение(Тип("ХранилищеЗначения"), ДанныеФайл).Получить();
НовЭлемен = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
Уид_Док = Новый УникальныйИдентификатор(Уид);
ССылканаОб = Документы.МойДокумент.ПолучитьСсылку(Уид_Док);
НовЭлемен.Объект = ССылканаОб;
НовЭлемен.ВидДанных=Перечисления.ВидыДополнительнойИнформацииОбъектов.Файл;
НовЭлемен.Хранилище = ДвоичныеДанные;
НовЭлемен.Записать();
Возврат НовЭлемен;
КонецФункции
В базе приемнике получается какой то странный файл который не открывается.
Что я делаю не так ?
1
s111
18.08.20
✎
09:56
Никогда так не делал, но интересно. Это же разные объекты. "XMLЗначение(Тип("ХранилищеЗначения"), ДанныеФайл).Получить()" - так что-то работает разве? Решился вопрос?
2
Grekos2
18.08.20
✎
10:04
(1) Нет. Озвученный вопрос не решился.
Нашелся общий ресурс на диске. Передаю через запись на диск.
Эксперименты буду продолжать.
3
craxx
18.08.20
✎
10:31
(0) через строку Base64
AdBlock убивает бесплатный контент. 1Сергей