|   |   | 
| 
 | v7: Хранение картинок, непосредственно в БД 1с 77 | ☑ | ||
|---|---|---|---|---|
| 0
    
        CepeLLlka 25.12.17✎ 13:58 | 
        Добрый день. Необходимо реализовать хранение изображений в БД на платформе 1С 77.
 Погуглив понял что вариантов решения много, решил спросить старожилов и гуру, совета, каким инструментом лучше воспользоваться, чтобы более быстро и корректно это всё работало? | |||
| 1
    
        Злопчинский 25.12.17✎ 13:59 | 
        Вотипрям стопудово именно в базе? Снаружи не устроит?     | |||
| 2
    
        vde69 25.12.17✎ 14:10 | 
        binfile.dll
 и учти, что в 7.7 ограничение на размер строк, более 4 метров не влезет | |||
| 3
    
        CepeLLlka 25.12.17✎ 14:12 | 
        (1)Не-а, надо именно в базе. Снаружи механизм есть, отработан, всё ок. Надо именно в базе, штатными средствами я так понял никак, поэтому вот и спрашиваю :)     | |||
| 4
    
        CepeLLlka 25.12.17✎ 14:14 | 
        (2)Спасибо, сейчас погуглим     | |||
| 5
    
        Базис naïve 25.12.17✎ 14:47 | 
        Умные люди и в восьмёрке серверной часто снаружи держат, а ты семёрку хочешь ненужным нагрузить. На 90% задача неправильная.     | |||
| 6
    
        Aleksey 25.12.17✎ 14:52 | 
        (5) ну может они проблему синхронизации картинок при использовании урбд хотят решить     | |||
| 7
    
        ADirks 25.12.17✎ 14:56 | 
        Если нештатными, то можно использовать объект BinaryData (1С++). Например, как тут: http://www.1cpp.ru/forum/YaBB.pl?num=1280497111/5#5     | |||
| 8
    
        Базис naïve 25.12.17✎ 14:56 | 
        Даже если и РИБ - он не один в распределёнке работает. В новом тыщелетии пора уже синхронизацию каталогов освоить.     | |||
| 9
    
        CepeLLlka 25.12.17✎ 14:59 | 
        (5)Большое спасибо, приму ваш комментарий во внимание. Очень рад, что вы проявили интерес к моей теме.
 А вообще вот вам вопрос: В 1С БП 3.0, к документам в базе можно прикреплять различные файлы и хранятся они в БД, а не в каталоге БД. Решение хранить файлы в базе принимали разработчики конфигурации. Верно ли было их решение, и как вы считаете, почему они решили эту задачу хранения документов в базе именно таким способом? | |||
| 10
    
        D3O 25.12.17✎ 15:03 | 
        (9) во всех типовых, а не только в БП, есть возможность прикрепления файлов. а вот варианты размещения - в базе или... в томах на диске ))
 так что, кто ССЗБ тот так и будет делать. | |||
| 11
    
        CepeLLlka 25.12.17✎ 15:11 | 
        (10)Да, нашёл такую настройку :) Виноват, принимаю :)
 Постараюсь донести до заказчиков, что лучше бы таки хранить не в базе, спасибо :) | |||
| 12
    
        Базис naïve 25.12.17✎ 15:22 | 
        (9) Тут совершенно верно ответили в (10), кроме того - было немало случаев, когда разработчики типовых принимали (или получали) решение, забивающее на надёжность и удобство поддержки и эксплуатации. Так что воспринимать их поступки как подходящие для фикси-админов БД - необоснованный оптимизм.     | |||
| 13
    
        Aleksey 25.12.17✎ 15:29 | 
        (11) Даже более не только на внешних томах но даже можно хранить прикрепленные файлы на яндекс диске     | |||
| 14
    
        vde69 25.12.17✎ 15:50 | 
        мое ЛИЧНОЕ мнение по поводу хранения картинок в базе
 если рост базы из-за картинок прогнозируем и устраивает на 5 лет вперед - то предпочтительно хранить в базе (например стоит ограничение 300кб на 1 файл, и файлов в день добавляется около сотни) а вот если рост базы НЕ ПРОГНОЗИРУЕТСЯ - тогда только во внешнем хранилище | |||
| 15
    
        Сияющий в темноте 25.12.17✎ 16:54 | 
        семерошная база-это каталог,создайте в нем подкаталог images,а в нем пишите файлы картинок,вместо имени указывая код справочника,в котоом уже в базе будут жить все данные о картинке(наименование и разрешение)     | |||
| 16
    
        CepeLLlka 25.12.17✎ 17:12 | 
        (15)А при выгрузке/загрузке всё сохранится? :)     | |||
| 17
    
        vde69 25.12.17✎ 17:12 | 
        (16) нет     | |||
| 18
    
        vde69 25.12.17✎ 17:13 | 
        (15) и оставить их доступными для шифровальщиков :)     | |||
| 19
    
        CepeLLlka 25.12.17✎ 17:14 | 
        (18)Так файлы БД тоже никак не защищены от этого :)     | |||
| 20
    
        Вафель 25.12.17✎ 17:16 | 
        (18) Архивы картинок однако тоже нужно делать     | |||
| 21
    
        vde69 25.12.17✎ 17:18 | 
        (20) я буду шифровать по 10 файлов в день, через сколько времени ты поймешь, что в твоем бекапе больше половины картинок восстановить нельзя?     | |||
| 22
    
        vde69 25.12.17✎ 17:18 | 
        (19) для SQL варианта - защищены     | |||
| 23
    
        Вафель 25.12.17✎ 17:19 | 
        (21) Ты только 1 бэкап делаешь?     | |||
| 24
    
        CepeLLlka 25.12.17✎ 17:21 | 
        В плане SQL, да, норм тема ваще. Работа через посредника с базой считай, ты его только спрашиваешь, а он уже сам читает базу и отвечает тебе.     | |||
| 25
    
        vde69 25.12.17✎ 17:22 | 
        (23) я про то и говорю, если портить по чуть чуть - ты заметишь только через несколько месяцев...
 по этому хранение всего вместе в едином виде куда более безопасно чем кусками | |||
| 26
    
        vcv 25.12.17✎ 19:41 | 
        Смотря, что за файлы, смотря какое количество...
 Чем больше файлов и чем они меньше, тем выгоднее их хранить в базе. Я перевёл внешние файлы в базу, когда количество файлов размером порядка 5-10 килобайт стало измеряться сотнями тысяч. Сканы размером сотни килобайт остались внешними. | |||
| 27
    
        Сияющий в темноте 25.12.17✎ 21:08 | 
        Файлы картинок обычно не маленькие,так что в базе им будет тесно.
 опять же,бекап можно делать только измененных и добавленных | |||
| 28
    
        Z1 25.12.17✎ 21:35 | 
        (0) Делал и как 2 и как 7
 2 это скорее всего мой объект ну или у меня такой же. Преимущество 2 храниться в документе или в справочнике и передается по УРБД Преимущество 7 более грамотное решение. Если картинок много и большой размер то делай как 7 и заведи отдельную sql бд и храни все там ( со ссылкой на iddoc ( это индекс ) вроде все | |||
| 29
    
        Z1 25.12.17✎ 21:39 | 
        (15) Когда будет картинок более 50 000 тормозить будет по черному. Минус этого решения что  на хвосты файлов
 много места теряется и нет никакой логической целостности такого подхода. но если файлов будет до 50 000 и надо очень быстро развернуть то только в этом случае так надо делать | |||
| 30
    
        VladZ 26.12.17✎ 04:17 | 
        Мое мнение: задача изначально неправильная. Ибо нефиг хранить в базе всякий лишний хлам. 
 (9) Это всего лишь пример того, как можно сделать. "Можно делать" и "нужно делать" - это разные вещи. Простой пример: можно ковыряться в ухе отверткой, но лучше так не делать. | |||
| 31
    
        Aleksey 26.12.17✎ 04:43 | 
        (16) сохраниться     | |||
| 32
    
        VladZ 26.12.17✎ 05:20 | 
        (15) Я бы не стал привязываться к коду. Код может измениться. Есть внутренний идентификатор объекта. Он неизменен. Вот к нему можно привязаться. Т.е. полный путь для файла будет: Константа.КаталогХраненияФайлов \ ИдентификаторОбъектаВБазе \ имяФайла.     | |||
| 33
    
        Aleksey 26.12.17✎ 05:27 | 
        (32) если базы "разные" например обмен по modу, то и id разные. короче нет универсального совета, нужно по месту смотреть     | |||
| 34
    
        Z1 26.12.17✎ 08:21 | 
        (30) У нас сертификаты ( их изображения ) привызаны к прихбн.
 для этого и был сделан bfile где то в 2001-2002 году. И как ты будешь решать такую задачу при условии что база УРБД распределеная. | |||
| 35
    
        nicesc 26.12.17✎ 08:39 | 
        Картинки можно хранить на яндекс диске или т.п. сервисе. Бесплатные объемы около 30Гб (более чем достаточно). На точках так же ставится клиент, всё само синхронизируется. У меня так настроено у пары клиентов.     | |||
| 36
    
        Aleksey 26.12.17✎ 08:46 | 
        (35) не всякий окажется ставить сомнительный авнософт на сервере.
 Сами юзаем дроббокс. Для домашнего использования - классная вещь, но на сервере который работает 24/7 постоянные косяки с обновлением | |||
| 37
    
        Z1 26.12.17✎ 08:47 | 
        (35)в 20001 году этого не было.
 Что будешь делать если интернет в филиале пропадет дня на три-четыре ? | |||
| 38
    
        nicesc 26.12.17✎ 10:14 | 
        (36) Ставить или не ставить это конечно субъективно. У меня работает пару лет. Есть нюансы, но они решаемы. 
 (37) Если интернета нет, то и обмен не будет работать. Какие тут обходные пути? Отправлять курьера с флэшкой? | |||
| 39
    
        Сияющий в темноте 26.12.17✎ 10:36 | 
        Если кому-то мешает много файлов в директории,то можно или по папкам раскладывать или обьединять несколько файлов в один,но если у вас нтфс,то там каталог в виде индексированного дерева и на скорость работы количество файлов сильно влиять не должно     | |||
| 41
    
        aka AMIGO 26.12.17✎ 10:53 | 
        У нас инфа по номенклатуре, в т.ч. картинки, хранятся на одном из хардов серверной.
 Ёмкость 73Гб. Доступ к БД - Терминальный, 4 филиала в разных городах. Так что все видят одно и то-же. В Справочнике "Товары" показывается фото. Хранение (и показ) организованы через константу - "Постоянная часть пути к файлам", папка типа I:/RTFM В папке содержатся подпапки с именами = коду Товара (ну, Номенклатуры, если так понятнее ТиС-овцам). В подпапках с кодами товаров содержится любая инфа, в основном это файлы с сертификатами *.pdf и фото, если оно нужно. Т.о. в инете ничего не хранится, ибо что в инет попало - стало чужим.. Это на считая отрубов от инета. В Справочнике есть реквизит "НазваниеПапки", в нём - полный путь к картинке. Если реквизит не пустой - в карточке товара показывается картинка/фото. Заполнение реквизита - по нажатию кнопки "Выбрать". Ниже - кн удалить фото. https://i.paste.pics/97842675c0725d8192e08b2997f7e17f.png Это я к тому, что вариантов много, все индивидуальны, в функции предпочтений предприятия. Облако? - За ради Бога!.. | |||
| 42
    
        aka AMIGO 26.12.17✎ 10:56 | ||||
| 43
    
        Z1 26.12.17✎ 11:39 | 
        (38) В УРБД работает передали сертификат один раз и все работает.
 Т.е. клиент пришел и просит сертификат за 01.07.2017 нет интернета ничего дать не сможешь в моем случае для выдачи переданного в филиал сертификата интернет не нужен | |||
| 44
    
        Z1 26.12.17✎ 11:41 | 
        (39) Можешь поверить влияет и сильно. не зависит  фат или нтфс
 но хотите идти таким путем то идите. опять же при большом количестве файл сбой по диску и получишь непредсказуемое состояние в этих файлах. sql гарантирует целостность данных. насколько важна целостность зависит от задачи. | |||
| 45
    
        aka AMIGO 26.12.17✎ 12:15 | 
        (44) Количество папок у нас - огромно, и при непосредственном просмотре тормозиииит.. Это - да, не отнять. Но непосредственно  на этом диске делать нечего, всё организовано обработками.
 Но на работу БД не влияет, 9 лет с лишним менеджеров радуют фотки в карточках товара :) | |||
| 46
    
        Kigo_Kigo 26.12.17✎ 12:31 | 
        Если использовать УРБД, то есть такая программка УРБД мастер, у меня обменя через нее настроены, так вот там можно в выгрузки включить дополнительно файлы и каталоги, настрока -  что только новые или новые и измененые, при загрузке- указать куда его класть, швыряйте свои фотки из каталога сколько хотите     | |||
| 47
    
        Z1 26.12.17✎ 13:59 | 
        (46) Ну может такой вариант и имеет право на жизнь при небольшом количестве филиалов и документов.
 При больших объемах не уследишь за рассинхранизацией таких далнных.Здесь также разные механизмы разрешения колизий а значит данные могут разъехаться. У меня сертификаты хранятся в самом документе что гарантирует соответсвие документа и самого сертификата(картинки сертификата) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |