Иногда, например для получения контрольной суммы строки, необходимо получить код каждого символа. В 1С есть встроенная функция КодСимвола, но она возвращает код в кодировке UTF-8. Ниже приведен пример, как получить код в другой кодировке, в том числе CP-1251.
Функция ПолучитьКод(Символ) Код = HexToDec(ПолучитьДвоичныеДанныеИзСтроки(Символ, КодировкаТекста.ANSI, Ложь)); КонецФункции Функция HexToDec(Знач _Число) Экспорт СтрокаHEX = СокрЛП(_Число); ДлинаHEX = СтрДлина(СтрокаHEX); ДесятичноеЧисло = 0; Для Сч = 0 По ДлинаHEX - 1 Цикл Множитель = Pow(16, Сч); НехСимвол = Сред(СтрокаHEX, ДлинаHEX - Сч, ДлинаHEX - Сч); Если НехСимвол = "A" Тогда ДесятичноеЧисло = ДесятичноеЧисло + 10 * Множитель; ИначеЕсли НехСимвол = "B" Тогда ДесятичноеЧисло = ДесятичноеЧисло + 11 * Множитель; ИначеЕсли НехСимвол = "C" Тогда ДесятичноеЧисло = ДесятичноеЧисло + 12 * Множитель; ИначеЕсли НехСимвол = "D" Тогда ДесятичноеЧисло = ДесятичноеЧисло + 13 * Множитель; ИначеЕсли НехСимвол = "E" Тогда ДесятичноеЧисло = ДесятичноеЧисло + 14 * Множитель; ИначеЕсли НехСимвол = "F" Тогда ДесятичноеЧисло = ДесятичноеЧисло + 15 * Множитель; Иначе Попытка ДесятичноеЧисло = ДесятичноеЧисло + Число(НехСимвол) * Множитель; Исключение; ОбщегоНазначенияКлиентСервер.СообщитьОбОшибке(ОписаниеОшибки()); КонецПопытки КонецЕсли; КонецЦикла; Возврат ДесятичноеЧисло; КонецФункции