|
Идеи по решению хранения файла в 1с | ☑ | ||
---|---|---|---|---|
0
NIGHTHUNTER
04.11.20
✎
10:56
|
Недавно заводил тему. Есть кое какие примеры в интернете.
Но запомнилось одно, что жаловались на то когда 70% базы увеличивается именно из за того что производится загрузка файлов в 1с. Наверное в хранилище. Как ещё там может это хранится. В двоичных данных. И я думал как сделать простое решение что бы оно было первым. И в дальнейшем подлежащем развитию. Решил сделать, самое простое. В нужный справочник, к которому нужно привязывать файл ворд: 1. Добавил поле ПутьКМакетуWord. 2. Кнопку ОткрытьМакетWord. 3. На форме справочника отдельная вкладке Макет Word. Там поле, выбирая значение в котором открывается диалог выбора файла. Выбранный файл копируется в указанный в константе каталог. И его путь прописывается в этот реквизит ПутьКМакетуWord. 4. По кнопке ОткрытьМакетWord срабатывает процедура ЗапуститьПриложение() открывая файл ворд. Как вам такое решение? Какие есть плюсы какие минусы??? Из доработок я как понимаю возможно следующее, - 1. Для загружаемых файлов сделать отдельный справочник. 2. Для загружаемых файлов сделать регистр сведений. 3. После выбора диалога, выбора файла, помещать его в 1с, а не копировать в указанный каталог. Что бы вы из всего этого, ещё сделали бы в своем решении, если бы была подобная задача? |
|||
1
NIGHTHUNTER
04.11.20
✎
10:57
|
Код, участвующий в доработке (0) .
// &НаКлиенте Процедура ПутьКМакетуWordНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) ПолноеИмяФайла = ""; ПутьФайла = ""; Если ПоместитьФайл(ПутьФайла, , ПолноеИмяФайла, Истина) = Истина Тогда МестоКудаКопируется = ПолучитьКаталогХраненияМакетов() + "\" + ПолучитьИмяФайла(ПолноеИмяФайла); МестоОтКудаКопируется = ПолноеИмяФайла; КопироватьФайл(МестоОтКудаКопируется, МестоКудаКопируется); Объект.ПутьКМакетуWord = МестоОтКудаКопируется; КонецЕсли; КонецПроцедуры // &НаСервере Функция ПолучитьКаталогХраненияМакетов() Возврат Константы.КаталогМакетов.Получить(); КонецФункции // Функция ПолучитьИмяФайла(ПолныйПуть) ИсхСтрока = ПолныйПуть; Позиция = Найти(ИсхСтрока, "\"); ПозицияКонечная = 0; Пока Позиция <> 0 Цикл ПозицияКонечная = ПозицияКонечная + Позиция; ИсхСтрока = Сред(ИсхСтрока, Позиция+1); Позиция = Найти(ИсхСтрока, "\"); КонецЦикла; ИмяФайла = Сред(ПолныйПуть, ПозицияКонечная + 1); Возврат ИмяФайла; КонецФункции // &НаКлиенте Процедура ОткрытьМакетWord(Команда) ЗапуститьПриложение(Объект.ПутьКМакетуWord); КонецПроцедуры // |
|||
2
ДенисЧ
04.11.20
✎
11:00
|
Если бы у меня была такая задача.... Я бы повесился...
https://www.youtube.com/watch?v=3V-6QNvolu4 |
|||
3
mistеr
04.11.20
✎
11:16
|
(0) Главный минус. Случился факап, восстановили базу из бэкапа, а фалов нет. Пользователи собрались, поймали разработчика и сделали ему фак ап.
|
|||
4
NIGHTHUNTER
04.11.20
✎
11:20
|
(3) Ну да. По новой пусть сидят перегружают.
Это же первое решение из возможных, самое простое. А если рассматривать добавление файлов загружаемых в 1с, там так же и загружать и открывать можно будет? А то я все как то мешкаюсь по этой доработке. Но думаю нужно ее будет сделать. То есть того что в (0) совсем не достаточно? А таких ситуаций как в (3) можно придумывать много. |
|||
5
NIGHTHUNTER
04.11.20
✎
11:22
|
Может ли кто привести пример, загрузки файлов в 1с?
Там в хранилище, двоичные данные. Или как там. В интернете есть ресурсы, но я их не опробовал. Может у кого есть готовое решение, которое сразу можно использовать в деле. Попробовать? Это всего лишь вопрос. А так сам буду заниматься . |
|||
6
hhhh
04.11.20
✎
11:25
|
(0) в чем революционность твоего решения? Ведь в типовых всё то же самое сделано. И присоединенные файлы и тома на диске. Вроде это таое решение не первое.
|
|||
7
novichok79
04.11.20
✎
11:25
|
если БСП, чем не устраивают тома хранения файлов?
если не БСП, варианты такие: 1) хранить в специализированных решениях для хранения больших файлов 2) хранить на диске в общей помойке на сервере дальше думай сам что лучше. |
|||
8
АгентБезопасной Нацио
04.11.20
✎
11:29
|
(7) чем не устраивают? да колеса у этого велосипеда недостаточно квадратные...
|
|||
9
NIGHTHUNTER
04.11.20
✎
11:38
|
(6)(7)
В том что я его сделал сам. Попробовал посмотреть БСП, ничего не понял и закрыл. Так же и в УТ. Там же не все просто. Там нужно разобраться что бы понимать. На это нужно время. Я хочу сделать сам простое понятное решение. Вот как. |
|||
10
novichok79
04.11.20
✎
11:40
|
(9) самое простое решение - хранение во внешних файлах.
я реализовал за пару дней что-то подобное на самописной базе. правда это были не картинки, а внутренние данные, в итоге пришлось переделывать под внутреннее хранение, для того чтобы воспользоваться плюшками от реляционности. |
|||
11
NIGHTHUNTER
04.11.20
✎
11:42
|
(10) тут речь о файлах word
|
|||
12
novichok79
04.11.20
✎
11:43
|
(11) решение приведено уже несколько раз выше.
|
|||
13
NIGHTHUNTER
04.11.20
✎
11:45
|
(12) примера кода что бы испробовать не было
пойду искать |
|||
14
novichok79
04.11.20
✎
11:46
|
(13) пример кода?????? вы издеваетесь?
первая ссылка в гугле... https://helpme1c.ru/rabota-s-fajlovoj-sistemoj-v-yazyke-1s-8-v-primerax |
|||
15
vde69
04.11.20
✎
11:52
|
(0) плохое решение...
минусы 1. проблемы с правами будут, учитывая клиент серверную архитектуру автору или придется эту папку полностью расшаривать для всех (что не безопасно, например шифровальщик с клиентской тачки возьмет и все зашифрует) 2. проблемы с совместным доступом (один открыл файл и сразу в режиме записи) 3. нет события которое фиксировало-бы изменение файла 4. нет истории изменения файлов 5. нужно делать бекапы этой папки вместе с базой, при совместном доступе это может стать проблемой 6. не предусмотрен максимальный размер - будут заливать туда файлы с максимальным разрешением и качеством, в результате места нужно будет как минимум в 10 раз больше... Например у меня за год файловое хранилище растет примерно на 80 гигов и это пери условии жестких ограничений на размеры вложений, без ограничений это будет под терабайт в год.... а ведь это еще и бекапить нужно... |
|||
16
mistеr
04.11.20
✎
11:56
|
(15) Все эти минусы блекнут перед железным аргументом:
"Попробовал посмотреть БСП, ничего не понял и закрыл" |
|||
17
rphosts
04.11.20
✎
12:00
|
(0) данные о файле хранить в РС. Каталогизировать хранение файла... в нетленке файло крепилось или к потребителю или к определенному виду документа (произвольное кол-во файлов), т.е. имя каталога и имя файла генерилось программно. Каталог доступен только серверу 1С, по итогам работы за около 4-5 лет создано почти 4Тб фоток и сканов.... ничё, шевелится как-то.
|
|||
18
vde69
04.11.20
✎
12:05
|
(16) БСП - реально монстроуголная хрень.
1с долго пытается реализовать в ней некую систему описания интерфейса, но пока выходит полная хрень... Пока 1с не введет понятие "программный интерфейс" (не в виде комментариев а в виде отдельного объекта метаданных) БСП останется практически неподъёмной для большинства 1с ников... И ведь именно из-за отсутствия удобного интерфейса сама 1с в типовых одну и ту-же функцию пишет в нескольких модулях сразу... То есть даже сами разработчики типовых (и самого БСП) нифига не владеют полной картиной процедур и функций своей системы... |
|||
19
Надо работать
04.11.20
✎
12:12
|
(18) и как "программный интерфейс" помог бы решить задачу топикстартеру, в твоем понимании?
|
|||
20
timurhv
04.11.20
✎
12:48
|
(9) Так не надо смотреть БСП и что-то там запоминать, разбираться. Открываете документацию на ИТС по подсистеме, там все описано и разжевано. Минут 10 читаете, потом минут 20 кодите. Для успокоения души можете запустить обработку проверки подключения БСП.
(18) Все программные интерфейсы экспортные в модуле, обрамлены соответствующей областью и описаны в документации БСП. Для меня этого достаточно. Ну а кто не умеет разбираться с документацией, либо ленится, нет времени (таких много), то им ничего не поможет. |
|||
21
Dmitry77
04.11.20
✎
13:08
|
Взять документооборот например и посмотреть как там все это реализовано.
|
|||
22
NIGHTHUNTER
04.11.20
✎
13:14
|
(21) Да все это тоже самое. Взять и утонуть там в сложности всего. Отпадает желание что то смотреть в таких случаях.
(20) Дадите ссылку? Ссылки? Что бы я что не то не нашел, да может не там. Хотел сесть, и почитать вашу ссылку на ИТС. Что бы понять, на сколько мдля меня это доступно. |
|||
23
NIGHTHUNTER
04.11.20
✎
13:15
|
(22) Сесть и начать читать, что бы понять. Что я успею усвоить за 10 минут.
|
|||
24
NIGHTHUNTER
04.11.20
✎
13:16
|
(15) Чистая, разрабатываемая конфигурация.
В процессе можно будет и развивать, уже имеющиеся наработки. Пока вот воплощаю первые решения, привязки хранения файлов. Имея чт ото, в последствии это все можно переделывать. |
|||
25
Надо работать
04.11.20
✎
13:24
|
(24) для это и нужна БСП
|
|||
26
fisher
04.11.20
✎
14:24
|
(0) Идея вполне законная. В БСП уже реализован вариант, при котором администратор базы может параметрически выбирать где хранить присоединяемые файлы - в указанных каталогах на диске или в самой базе.
Минус самоочевиден - усложнение политики бэкапов. Обратная сторона плюса - не бухнет основная база. В клиент сервере ессно нужно не с шарой работать, а отдавать на клиента файл сервера через временное хранилище. В БСП это уже все реализовано. С точки зрения саморазвития повелосипедить можно, но в продакшн лучше впендюрить готовую подсистему. |
|||
27
NIGHTHUNTER
05.11.20
✎
02:46
|
(26) И описание есть доступное как это сделать?
|
|||
28
fisher
05.11.20
✎
11:20
|
(27) Описание одно на всех - документация по БСП на ИТС. Про ее доступность тяжело сказать. Это не гайд с котиками, а именно документация. Если читать ее по диагонали, то на практике возникнут проблемы. На инфостарте можно поискать статьи с котиками. По-идее, должны такие быть.
|
|||
29
timurhv
05.11.20
✎
14:44
|
(22) https://its.1c.ru/db/bsp312doc#content:64:1
Глава 3 - инструкция по внедрению подсистемы. Глава 4 - готовые экспортные процедуры и функции, чтобы не пилить велосипеды. Документация написана для каждой версии БСП, выбираете свою и смотрите подсистему. |
|||
30
УдавВПопугаях
05.11.20
✎
15:19
|
(0) концепцию хранения обсуждали еще в вашей первой ветке на эту тему, было это недели две/три назад
я за файлы, в базе только пути и характеристики файлы в базе (справочник, регистр или бизнес процесс) - только если объем не будет увеличиваться в геометрической прогрессии, если за год, например, будет 100 Мб. и то, если говорить о вечном, то через 10 лет это будет уже много, но ведь ничего нет вечного. только для шаблонов Ворд этого будет достаточно, т к в файле только текст для договора например, если том романа Война и мир, то тоже не желательно(категорически) |
|||
31
УдавВПопугаях
05.11.20
✎
15:21
|
что еще нужно то? вперед реализовывать!
|
|||
32
УдавВПопугаях
05.11.20
✎
15:24
|
(15) кстати вот это пугает больше всего
4. нет истории изменения файлов если счет идет на Гб, то история файла это трындец, объем сразу * количество изменений |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |