Имя: Пароль:
1C
 
Передача файлов через 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Сергей