|
Загрузка файлов из одной ИБ в другую | ☑ | ||
---|---|---|---|---|
0
raytan
04.05.15
✎
14:18
|
Задача загрузить фаил в ИБ из другой.
Есть такой код: ПараметрыСтрока = "Srvr=""bdjt:1641"";Ref=""docs"";Usr=""" + Справочники.СлужебныеДанные.ПользовательDocs.Данные + """;Pwd=""" + Справочники.СлужебныеДанные.ПарольDocs.Данные + """;"; V82COMConnector= Новый COMОбъект("V82.COMConnector"); Попытка БазаДокументы = V82COMConnector.Connect(ПараметрыСтрока); Исключение Сообщить("Ошибка подключения!"); Возврат; КонецПопытки; Сжатие = Новый СжатиеДанных(6); ДвоичныеДанные = Новый ДвоичныеДанные(ЦКРазрешенияПуть); ХранилищеФайла = Новый ХранилищеЗначения(ДвоичныеДанные, Сжатие); БазаДокументыФайлыДоговорыКонтрагентов = БазаДокументы.Справочники.ФайлыДоговорыКонтрагентов.СоздатьЭлемент(); БазаДокументыФайлыДоговорыКонтрагентов.ДокументСсылка = ЗначениеВСтрокуВнутр(Объект.Ссылка); БазаДокументыФайлыДоговорыКонтрагентов.ЦифроваяКопияДокумента = ХранилищеФайла; // ?!?!?!?! БазаДокументыФайлыДоговорыКонтрагентов.НаименованиеЦифроваяКопияДокумента = НазваниеДокумента; БазаДокументыФайлыДоговорыКонтрагентов.Записать(); Есть ощущение, что такой код не работает. Когда пробую, что то типо этого: БазаДокументыФайлыДоговорыКонтрагентов.ЦифроваяКопияДокумента = БазаДокументы.NewObject("ХранилищеЗначения",БазаДокументы.NewObject("ДвоичныеДанные",ДвоичныеДанные),БазаДокументы.NewObject("СжатиеДанных",6) ); То получаю ошибку, что метод NewObject не найден Может кто что подскажет ? |
|||
1
raytan
04.05.15
✎
14:19
|
БазаДокументыФайлыДоговорыКонтрагентов.ЦифроваяКопияДокумента = БазаДокументы.NewObject("ХранилищеЗначения",БазаДокументы.NewObject("ДвоичныеДанные",ДвоичныеДанные),БазаДокументы.NewObject("СжатиеДанных",6) );
Этот код работал для файловой версии, только вместо ДвоичныеДанные я писал путь к файлу... |
|||
2
raytan
04.05.15
✎
14:22
|
Основной вопрос с ХранилищемЗначений. Как туда передать данные.
БазаДокументыФайлыДоговорыКонтрагентов.ЦифроваяКопияДокумента = ?!?! |
|||
3
Сергиус
04.05.15
✎
15:40
|
(0)БазаДокументы.NewObject("ДвоичныеДанные",ДвоичныеДанные) - тут скорее всего надо задавать путь к файлу, а не объект ДвоичныеДанные, который ты получаешь на стороне базы-инициатора соединения.
|
|||
4
Сергиус
04.05.15
✎
16:05
|
+(3)Не совсем понятно, ты пробовал такой вариант или тоже ошибку получал?
|
|||
5
Рэйв
04.05.15
✎
16:27
|
(0)Открой для себя тип Неопредеоено и проверку на это. Ижизть пойдет веселее, я думаю
|
|||
6
Рэйв
04.05.15
✎
16:27
|
*Неопределено
:-).. |
|||
7
Torquader
04.05.15
✎
21:13
|
Для передачи между базами объекта ХранилищеЗначения можно использовать метод XMLСтрока, который преобразует хранилище в BASE64 строку, которую спокойно можно передавать или сохранять в XML-файле.
|
|||
8
raytan
05.05.15
✎
09:01
|
(4) Пробовал. Выдало ошибку, что метод NewObject не найден.. Насчет пути -- это понятно, что туда надо передовать путь, но я работаю в клиент-серверном режиме, так что попробовал такое извращение :)
(7) Решил проблему с помощью ЗначениеВСтрокуВнутр, ХМЛстрока тоже сработала наверное. БазаДокументыФайлыДоговорыКонтрагентов.ЦифроваяКопияДокумента = БазаДокументы.ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(ХранилищеФайла)); Основная сложность для меня было сообразить использовать такую конструкцию БазаДокументы.ЗначениеИзСтрокиВнутр() Всем спамибо за внимание :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |