Вход | Регистрация

1С:Предприятие ::

Метки: 

Выгрузка файлов из хранилище базы источник в томе на диске базы приемника

Я
   zippygrill
 
12.12.17 - 23:59
Всем привет!
Нужен свежий взгляд по проблеме.
В ИБ источник (УПП 1.3) есть некий на-сканированные и прикрепленные файлы к сериям. Обычно это 2-3 файлы с сертификатами соответствия или справки А,Б. Как сказал - все они хранятся в справочнике ХранилищеДопИнформации, т.е. в самом sql по большому счету.
Конвертацией 2 эти файлы не смог загрузить в приемнике из за размера файла ..около 30 гигов. Пробовал сократить размер путем актуализации сертификатов. Пробовал выгружать порциями по 8 гигов. 1С даже на сервере приложения не может его грузить. Доходит до того что из адреса во временное хранилище при попытке сохранить двоичные данные - получает фигу. Подозреваю что адрес во вх имеет ограниченный срок жизни.

В общем, хочу попробовать в обход конвертации< перетащить все файлы из хранилище из одной базы в другую базу в томе на диске.
Придется мучится с сохранением в хранилище из источника самого файла и его чтение по COM из приемника.
Есть кто имел опыт переноса файлов? Прокатит или нет такой вариант? И где выполнять лучше эту обработку (подключение по com) - в приемнике или в источнике
 
  Рекламное место пустует
   tesseract
 
1 - 13.12.17 - 00:15
Com даже не вздумай использовать. Он и так формально похоронен. Можно попробовать выгрузить эти файлики через самописную обработку с именем {GUID}.{номер файла}. расширение.   Обработку лучше писать самому - BLOB стандартная выгрузка ну очень не любит, возможны частые сбои по тайм-аутам записи.
   tesseract
 
2 - 13.12.17 - 00:16
Если платформа 8.3 - можно через двоичные данные быстро написать.
   zippygrill
 
3 - 13.12.17 - 00:29
Да платформа 83
Я так понимаю что полученное из хранилище значение надо сохранить в двоичные данные в темповский файл в каталоге временных файлов 1С. ДАлее этот темповский файл с двоичными данными можно обработать на стороне приемника?
   tesseract
 
4 - 13.12.17 - 00:32
(3) Да все верно понимаешь. Только хранилище может содержать все что угодно. Надо по типу разобрать.
   zippygrill
 
5 - 13.12.17 - 00:35
(4) Есть такие дополнительные отборы в запросе

ГДЕ
    |    ХранилищеДополнительнойИнформации.Объект <> НЕОПРЕДЕЛЕНО
    |    И НЕ ВЫРАЗИТЬ(ХранилищеДополнительнойИнформации.Объект КАК Справочник.СерииНоменклатуры) ЕСТЬ NULL
    |    И ВЫРАЗИТЬ(ХранилищеДополнительнойИнформации.Объект КАК Справочник.СерииНоменклатуры) В
    |            (ВЫБРАТЬ
    |                т.СерияНоменклатуры
    |            ИЗ
    |                втОстатки КАК т)
    |    И НЕ ХранилищеДополнительнойИнформации.ПометкаУдаления
    |    И ХранилищеДополнительнойИнформации.ВидДанных = Значение(Перечисление.ВидыДополнительнойИнформацииОбъектов.Файл)
   tesseract
 
6 - 13.12.17 - 00:41
BLOB через запрос получать точно не стоит. Или это самописка, либо 1С совсем шибанулась.
   zippygrill
 
7 - 13.12.17 - 00:46
Ну вот такую строку имел в КД2

      ДанныеХранилища = ВыборкаФайл.Ссылка.Хранилище.Получить();

Т.е. через ссылку из результата запроса идет обращение к реквизиту Хранилище и далее ПОлучить()

Ее по сути надо на COM перевести
   tesseract
 
8 - 13.12.17 - 00:52
(7) лучше в папки по GUID, com на больших файлах может отваливаться, ведя за собой весь кластер.
   zippygrill
 
9 - 13.12.17 - 00:57
(8) не понял
   zippygrill
 
10 - 13.12.17 - 01:57
Вопрос: Поскольку объем данных большой..COM соединение не накроется по истечению там...30 минут?
 
  Рекламное место пустует
   tesseract
 
11 - 13.12.17 - 02:05
(10) Зависит от пары сотен мелочей. Например настроек сервера. Com/Dcom может накрыться.
   zippygrill
 
12 - 13.12.17 - 22:03
(11) Вот блин
Для добавления файлов использую встроенную функцию в ЕРП 

    СведенияОФайле = РаботаСФайламиСлужебный.ДобавитьФайлВТом(ПрисоединенныйФайл.ФайлХранилище.Получить(), ПрисоединенныйФайл.ДатаМодификацииУниверсальная, 
    ПрисоединенныйФайл.Наименование, ПрисоединенныйФайл.Расширение, "",    Ложь, 
    // Чтобы все файлы не попали в одну папку за сегодняшний день - подставляем дату создания файла.

    НачалоГода(ПрисоединенныйФайл.ДатаМодификацииУниверсальная));

Как бы проверить существование такого файла дабы не создавать дубли..
   zippygrill
 
13 - 13.12.17 - 22:04
Наверное создавать папку для каждого владельца файлов. Ведь например у серии могут быть несколько файлов.


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует