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

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

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


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

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

13 Comments

  1. windows98a
  2. w-divin

    странно, написано: «Подробнее здесь: http://www.1cprofy.ru» а там про публикацию ни слова (((

    Reply
  3. TSSV

    (2) w-divin, Да, прошу прощения — исправился.

    Reply
  4. Steelvan

    Озвучка не бодрая.

    Бодрее надо 🙂

    Reply
  5. TSSV

    (4) Steelvan, Спасибо за совет, буду работать над этим ) Кстати попробуйте сами — поверьте, это не просто. Но думаю все таки лучше один раз увидеть! Кстати по поводу бодрости — Вам когда нибудь доводилось смотреть ролики Игоря Бурьяненко? Могу прислать пару роликов если нет — там про то, как нужно сдавать на спеца по УПП.

    Reply
  6. Steelvan

    Мне понравилась озвучка курсов Евгения Попова (он рассказывает про html, css и прочее).

    Reply
  7. Steelvan

    Думаю, если текст заранее написать, то должно быть бодрее.

    Хотя согласен, это труднее.

    Reply
  8. FCDM

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

    Reply
  9. TSSV

    Да, Вы правы конечно же — все время это путаю. То есть в таком случае (когда грамотность страдает) только нечеткий поиск и может помочь 🙂

    Reply
  10. TSSV

    (7) Steelvan,

    Думаю, если текст заранее написать, то должно быть бодрее.

    . Получится плохо. Думаю не нужно бояться пауз, будьте естественны и если тема кому то интересна и у Вас есть что сказать, Вас обязательно выслушают! Опыта в этом вопросе у меня конечно же мало, спасибо за критику и уделенное время.

    Reply
  11. markovki

    Спасибо автору за материалы, как раз необходимо решить похожую задачу хранения файлов, может, что и пригодится!

    Reply
  12. ufo58

    хорошая «болванка» … прошу простить за формулировку

    но …. это действительно так

    если позволите, немного поработаю с ней

    1. определение расширения файла …

    не учитывает несколько «точек» в адресе файла

    их просто «давит».

    Вот так, например, будет лучше:

    &НаКлиенте

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

    ТекСимв = «»;

    СчетчикСимв = СтрДлина(ПутьКФайлу);

    РасширениеФайла = «»;

    Пока 0=0 Цикл

    Если СчетчикСимв = 0 Тогда

    Прервать;

    КонецЕсли;

    ТекСимв = Сред(ПутьКФайлу,СчетчикСимв,1);

    Если ТекСимв = «.» Тогда

    Прервать;

    Иначе

    РасширениеФайла = ТекСимв + РасширениеФайла;

    КонецЕсли;

    СчетчикСимв = СчетчикСимв — 1;

    КонецЦикла;

    Возврат РасширениеФайла;

    //ЧислоВхождений = СтрЧислоВхождений(ПутьКФайлу,».»);

    //

    //Для ш = 1 По ЧислоВхождений Цикл

    // ПозицияТочки = Найти(ПутьКФайлу,».»);

    // //Если не последнее вхождение, вырежем точку

    // Если ш < ЧислоВхождений Тогда

    // ПутьКФайлу = Лев(ПутьКФайлу,ПозицияТочки — 1) + Сред(ПутьКФайлу, ПозицияТочки + 1);

    // Иначе

    // //Получим расширение

    // Возврат Сред(ПутьКФайлу,ПозицияТочки + 1);

    // КонецЕсли;

    //КонецЦикла;

    КонецФункции // ВернутьРасширениеФайла()

    Reply
  13. TSSV

    (12) ufo58, спасибо! Недавно сам использовал эту подсистему в качестве именно «болванки» — быстро реализовал с ее помощью возможность добавления файлов к некому справочнику. В процессе эксплуатации тоже столкнулся с проблемой двух точек в имени файла и планирую это исправить в следующем релизе, который планирую в ближайшее время.

    Готов включить Вашу функцию — спасибо, идея движения «с конца» понравилась.

    Вместо Пока 0=0 Цикл правда в 8-ке лучше использовать Пока Истина Цикл, но это мелочи 😉

    Так же планирую исправить передачу файла на сервер для клиент -серверного варианта (тоже столкнулся с этим сам). При разработке все тестировалось только для файловой версии…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *