СократитьСтрокуКонтрольнойСуммой (БСП)

Автор: 1С
ОбщийМодуль.ОбщегоНазначения
БСП

Сократить строку контрольной суммой. Сокращает строку до нужной длины, при этом обрезанная часть хешируется,

// Сокращает строку до нужной длины, при этом обрезанная часть хешируется,
// обеспечивая уникальность строки. Проверяет длину строки на входе и, в случае
// превышения максимальной длины, преобразует ее конец по алгоритму MD5 в
// уникальную строку из 32 символов.
//
// Параметры:
//  Строка            - Строка - исходная строка произвольной длины.
//  МаксимальнаяДлина - Число  - требуемое максимальное количество символов в строке,
//                               минимальное значение: 32.
// 
// Возвращаемое значение:
//   Строка - строка, не превышающая максимальную длину.
//
Функция СократитьСтрокуКонтрольнойСуммой(Строка, МаксимальнаяДлина) Экспорт
	ОбщегоНазначенияКлиентСервер.Проверить(МаксимальнаяДлина >= 32, НСтр("ru = 'Параметр МаксимальнаяДлина не может быть меньше 32'"),
		"ОбщегоНазначения.СократитьСтрокуКонтрольнойСуммой");
	
	Результат = Строка;
	Если СтрДлина(Строка) > МаксимальнаяДлина Тогда
		Результат = Лев(Строка, МаксимальнаяДлина - 32);
		ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.MD5);
		ХешированиеДанных.Добавить(Сред(Строка, МаксимальнаяДлина - 32 + 1));
		Результат = Результат + СтрЗаменить(ХешированиеДанных.ХешСумма, " ", "");
	КонецЕсли;
	Возврат Результат;
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

КонтрольнаяСуммаСтрокой (БСП)

КонтрольнаяСумма (БСП)

КонтрольнаяСуммаПроблемы (БСП)

КонтрольныеСуммыФайловКомплектаВнешнейКомпоненты (БСП)

КонтрольнаяСуммаФайла (БСП)

СократитьДвойныеКавычки (БСП)

Сократить лидирующие нули

Сформировать сумму строкой в договор

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз