![]() |
![]() |
|
Выгрузка файлов из хранилище базы источник в томе на диске базы приемника | ☑ | ||
---|---|---|---|---|
0
zippygrill
12.12.17
✎
23:59
|
Всем привет!
Нужен свежий взгляд по проблеме. В ИБ источник (УПП 1.3) есть некий на-сканированные и прикрепленные файлы к сериям. Обычно это 2-3 файлы с сертификатами соответствия или справки А,Б. Как сказал - все они хранятся в справочнике ХранилищеДопИнформации, т.е. в самом sql по большому счету. Конвертацией 2 эти файлы не смог загрузить в приемнике из за размера файла ..около 30 гигов. Пробовал сократить размер путем актуализации сертификатов. Пробовал выгружать порциями по 8 гигов. 1С даже на сервере приложения не может его грузить. Доходит до того что из адреса во временное хранилище при попытке сохранить двоичные данные - получает фигу. Подозреваю что адрес во вх имеет ограниченный срок жизни. В общем, хочу попробовать в обход конвертации< перетащить все файлы из хранилище из одной базы в другую базу в томе на диске. Придется мучится с сохранением в хранилище из источника самого файла и его чтение по COM из приемника. Есть кто имел опыт переноса файлов? Прокатит или нет такой вариант? И где выполнять лучше эту обработку (подключение по com) - в приемнике или в источнике |
|||
1
tesseract
13.12.17
✎
00:15
|
Com даже не вздумай использовать. Он и так формально похоронен. Можно попробовать выгрузить эти файлики через самописную обработку с именем {GUID}.{номер файла}. расширение. Обработку лучше писать самому - BLOB стандартная выгрузка ну очень не любит, возможны частые сбои по тайм-аутам записи.
|
|||
2
tesseract
13.12.17
✎
00:16
|
Если платформа 8.3 - можно через двоичные данные быстро написать.
|
|||
3
zippygrill
13.12.17
✎
00:29
|
Да платформа 83
Я так понимаю что полученное из хранилище значение надо сохранить в двоичные данные в темповский файл в каталоге временных файлов 1С. ДАлее этот темповский файл с двоичными данными можно обработать на стороне приемника? |
|||
4
tesseract
13.12.17
✎
00:32
|
(3) Да все верно понимаешь. Только хранилище может содержать все что угодно. Надо по типу разобрать.
|
|||
5
zippygrill
13.12.17
✎
00:35
|
(4) Есть такие дополнительные отборы в запросе
ГДЕ | ХранилищеДополнительнойИнформации.Объект <> НЕОПРЕДЕЛЕНО | И НЕ ВЫРАЗИТЬ(ХранилищеДополнительнойИнформации.Объект КАК Справочник.СерииНоменклатуры) ЕСТЬ NULL | И ВЫРАЗИТЬ(ХранилищеДополнительнойИнформации.Объект КАК Справочник.СерииНоменклатуры) В | (ВЫБРАТЬ | т.СерияНоменклатуры | ИЗ | втОстатки КАК т) | И НЕ ХранилищеДополнительнойИнформации.ПометкаУдаления | И ХранилищеДополнительнойИнформации.ВидДанных = Значение(Перечисление.ВидыДополнительнойИнформацииОбъектов.Файл) |
|||
6
tesseract
13.12.17
✎
00:41
|
BLOB через запрос получать точно не стоит. Или это самописка, либо 1С совсем шибанулась.
|
|||
7
zippygrill
13.12.17
✎
00:46
|
Ну вот такую строку имел в КД2
ДанныеХранилища = ВыборкаФайл.Ссылка.Хранилище.Получить(); Т.е. через ссылку из результата запроса идет обращение к реквизиту Хранилище и далее ПОлучить() Ее по сути надо на COM перевести |
|||
8
tesseract
13.12.17
✎
00:52
|
(7) лучше в папки по GUID, com на больших файлах может отваливаться, ведя за собой весь кластер.
|
|||
9
zippygrill
13.12.17
✎
00:57
|
(8) не понял
|
|||
10
zippygrill
13.12.17
✎
01:57
|
Вопрос: Поскольку объем данных большой..COM соединение не накроется по истечению там...30 минут?
|
|||
11
tesseract
13.12.17
✎
02:05
|
(10) Зависит от пары сотен мелочей. Например настроек сервера. Com/Dcom может накрыться.
|
|||
12
zippygrill
13.12.17
✎
22:03
|
(11) Вот блин
Для добавления файлов использую встроенную функцию в ЕРП СведенияОФайле = РаботаСФайламиСлужебный.ДобавитьФайлВТом(ПрисоединенныйФайл.ФайлХранилище.Получить(), ПрисоединенныйФайл.ДатаМодификацииУниверсальная, ПрисоединенныйФайл.Наименование, ПрисоединенныйФайл.Расширение, "", Ложь, // Чтобы все файлы не попали в одну папку за сегодняшний день - подставляем дату создания файла. НачалоГода(ПрисоединенныйФайл.ДатаМодификацииУниверсальная)); Как бы проверить существование такого файла дабы не создавать дубли.. |
|||
13
zippygrill
13.12.17
✎
22:04
|
Наверное создавать папку для каждого владельца файлов. Ведь например у серии могут быть несколько файлов.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |