Хэш функции возможно использовать для ускорения, например, загрузки или выгрузки файлов из произвольной конфигурации 1С, для обмена данными между сервером и клиентом.
Вы хотите примеры?

Итак, на примере расширения работы со звуком, продемонстрирую немного кода. Но, сначала суть оптимизации в общем.
Хэш функции доступны только на сервере. Это означает, что минимум один раз данные с клиента на сервер придется передать через временное хранилище, например.
Для работы достаточно добавить файл в созданный объект (в моем случае имя Хеш), хотя возможно получить любые бинарные данные, например base64 картинку из json сообщения и сравнить с сохраненным/сохраненными файлами, подлежащими контролю. Для этого я бы добавил хранение Хэш суммы файла в регистр или справочник для поиска по сумме полученных бинарных данных и ссылкой на файл, существующий как ссылка в базе данных 1С. Структура:
| Ссылка (индекс) | Хэш сумма (индекс) | Тип хэш (строка с именем для ХешФункция.) |
Предположим, что у нас есть mp3 файлы, сохраненные в справочнике <имяСправочника>ПрисоединенныеФайлы. И задача стоит проиграть на клиенте файл, то есть выполнить взаимодействие между клиентом и сервером,
- если ссылки нет в нашей таблице, заносим данные;
- Если ссылка существует в таблице, получаем тип хэш и хэш сумму и идем на клиента;
- На клиенте в каталоге с временными файлами получаем файл и создаем описание файла, например КаталогВременныхФайлов()/playFiles.json
- Набиваем массив сохраненных файлов, с которым будем сверяться.
Проверка на клиенте следующая:
- Прочитать КаталогВременныхФайлов()/playFiles.json;
- Если сумма не найдена — загружаем файл (двоичные данные) с клиента и размещаем ДД в КаталогВременныхФайлов();
- Дополняем файл КаталогВременныхФайлов()/playFiles.json;
- Если сумма найдена, то проверяем наличие так:
Файл = Новый Файл(ИмяИзФайла "playFiles.json" полученные по хэш);
ФайлЗагружен = Файл.Существует();
5. И, только если файл не существует, то заливаем его с сервера на клиент.
Спасибо за внимание!
