gifts2017

"Хранение файлов" - конфигурация (подсистема) для хранения и быстрого поиска файлов с собственной "поисковой машиной"

Опубликовал Сергей (TSSV) в раздел Отраслевые решения - Прочее

Конфигурация позволяет хранить файлы в базе данных, вне базы данных (в заданном в настройках каталоге) или просто сохранять путь к файлу, задавать описания файлов и быстро находить их с помощью двух механизмов - собственной "поисковой машины" или стандартного полнотекстового поиска - см. видео.

Специфика моей работы требует хранения и быстрого доступа к большому количеству различных файлов - это конфигурации 1С, обработки с примерами кода, электронные книги, технические задания и прочее. При этом, структура рабочего каталога, в основном организованная по проектам (моим заказчикам), не всегда позволяет быстро найти нужный файл. Для решения этой задачи я решил разработать решение, которое позволит сохранять файлы и быстро их находить, ориентируясь на имя файла и краткое описание, которое можно задать для каждого файла. Результат перед вами.
Для поиска файлов наряду с возможностью искать в списке и полнотекстовым поиском, была разработана собственная "поисковая машина", которая позволяет писать поисковые слова и фразы "примерно" - произвольно и даже с ошибками (аналогично поиску в интернете) - см. видео демонстрацию работы поиска:


Механизмы данного решения могут быть встроены в другие конфигурации, а так же использованы для решения других похожих задач.

03.03.2014
-Исправлены найденные ошибки
Отдельная благодарность Юрию Щербакову за поиск ошибок и предложения путей их исправления!

Скачать файлы

Наименование Файл Версия Размер
1Cv8_ХранениеФайлов_1.1.2.cf 120
.cf 43,62Kb
03.03.14
120
.cf 43,62Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Роман Булкин (windows98a) 27.02.13 16:03
2. Дмитрий Елисеев (w-divin) 26.03.13 20:19
странно, написано: "Подробнее здесь: www.1cprofy.ru" а там про публикацию ни слова (((
3. Tsaregorodtsev (TSSV) 27.03.13 11:21
(2) w-divin, Да, прошу прощения - исправился.
4. Игорь Steelvan (Steelvan) 27.03.13 11:22
Озвучка не бодрая.
Бодрее надо :)
5. Tsaregorodtsev (TSSV) 27.03.13 11:50
(4) Steelvan, Спасибо за совет, буду работать над этим ) Кстати попробуйте сами - поверьте, это не просто. Но думаю все таки лучше один раз увидеть! Кстати по поводу бодрости - Вам когда нибудь доводилось смотреть ролики Игоря Бурьяненко? Могу прислать пару роликов если нет - там про то, как нужно сдавать на спеца по УПП.
6. Игорь Steelvan (Steelvan) 28.03.13 11:41
Мне понравилась озвучка курсов Евгения Попова (он рассказывает про html, css и прочее).
7. Игорь Steelvan (Steelvan) 28.03.13 11:41
Думаю, если текст заранее написать, то должно быть бодрее.

Хотя согласен, это труднее.
8. Александр Сергеев (FCDM) 16.06.13 03:46
Автору на заметку: грамотный человек, который будет пользоваться Вашей конфигурацией при обычном поиске Ваш файл не найдет, потому что будет вбивать слово стохастический. А так, плюсую, статья интересная
9. Tsaregorodtsev (TSSV) 16.06.13 18:09
Да, Вы правы конечно же - все время это путаю. То есть в таком случае (когда грамотность страдает) только нечеткий поиск и может помочь :)
10. Tsaregorodtsev (TSSV) 16.06.13 18:18
(7) Steelvan,
Думаю, если текст заранее написать, то должно быть бодрее.
. Получится плохо. Думаю не нужно бояться пауз, будьте естественны и если тема кому то интересна и у Вас есть что сказать, Вас обязательно выслушают! Опыта в этом вопросе у меня конечно же мало, спасибо за критику и уделенное время.
11. Константин Марков (markovki) 23.09.13 13:22
Спасибо автору за материалы, как раз необходимо решить похожую задачу хранения файлов, может, что и пригодится!
12. Юрий Щербаков (ufo58) 22.02.14 13:29
хорошая "болванка" ... прошу простить за формулировку
но .... это действительно так
если позволите, немного поработаю с ней
1. определение расширения файла ...
не учитывает несколько "точек" в адресе файла
их просто "давит".
Вот так, например, будет лучше:

&НаКлиенте
Функция ВернутьРасширениеФайла(ПутьКФайлу)

ТекСимв = "";
СчетчикСимв = СтрДлина(ПутьКФайлу);
РасширениеФайла = "";
Пока 0=0 Цикл
Если СчетчикСимв = 0 Тогда
Прервать;
КонецЕсли;
ТекСимв = Сред(ПутьКФайлу,СчетчикСимв,1);
Если ТекСимв = "." Тогда
Прервать;
Иначе
РасширениеФайла = ТекСимв + РасширениеФайла;
КонецЕсли;
СчетчикСимв = СчетчикСимв - 1;
КонецЦикла;
Возврат РасширениеФайла;

//ЧислоВхождений = СтрЧислоВхождений(ПутьКФайлу,".");
//
//Для ш = 1 По ЧислоВхождений Цикл
// ПозицияТочки = Найти(ПутьКФайлу,".");
// //Если не последнее вхождение, вырежем точку
// Если ш < ЧислоВхождений Тогда
// ПутьКФайлу = Лев(ПутьКФайлу,ПозицияТочки - 1) + Сред(ПутьКФайлу, ПозицияТочки + 1);
// Иначе
// //Получим расширение
// Возврат Сред(ПутьКФайлу,ПозицияТочки + 1);
// КонецЕсли;
//КонецЦикла;


КонецФункции // ВернутьРасширениеФайла()
13. Tsaregorodtsev (TSSV) 23.02.14 11:37
(12) ufo58, спасибо! Недавно сам использовал эту подсистему в качестве именно "болванки" - быстро реализовал с ее помощью возможность добавления файлов к некому справочнику. В процессе эксплуатации тоже столкнулся с проблемой двух точек в имени файла и планирую это исправить в следующем релизе, который планирую в ближайшее время.
Готов включить Вашу функцию - спасибо, идея движения "с конца" понравилась.
Вместо Пока 0=0 Цикл правда в 8-ке лучше использовать Пока Истина Цикл, но это мелочи ;)
Так же планирую исправить передачу файла на сервер для клиент -серверного варианта (тоже столкнулся с этим сам). При разработке все тестировалось только для файловой версии...