Была уже публикация с примером кода для 1С //infostart.ru/public/252365/
Но, по-моему, это велосипед. Моя обработка в 10 строк кода выглядит элегантнее))
Вот пример кода:
&НаКлиенте Процедура Decode(Команда) ДвДанные = Base64Значение(Encoded); Если ДвДанные = Неопределено Тогда Предупреждение("Ошибка формата Base64"); Возврат; КонецЕсли; ВременныйФайл = ПолучитьИмяВременногоФайла(); ДвДанные.Записать(ВременныйФайл); КодировкаФайла = Кодировка; Если Кодировка = "ANSI" Тогда КодировкаФайла = КодировкаТекста.ANSI; ИначеЕсли Кодировка = "OEM" Тогда КодировкаФайла = КодировкаТекста.OEM; ИначеЕсли Кодировка = "UTF8" Тогда КодировкаФайла = КодировкаТекста.UTF8; ИначеЕсли Кодировка = "UTF16" Тогда КодировкаФайла = КодировкаТекста.UTF16; ИначеЕсли Кодировка = "Системная" Тогда КодировкаФайла = КодировкаТекста.Системная; КонецЕсли; Чтение = Новый ЧтениеТекста(ВременныйФайл, КодировкаФайла); Decoded = Чтение.Прочитать(); Чтение.Закрыть(); УдалитьФайлы(ВременныйФайл); КонецПроцедуры &НаКлиенте Процедура Encode(Команда) КодировкаФайла = Кодировка; Если Кодировка = "ANSI" Тогда КодировкаФайла = КодировкаТекста.ANSI; ИначеЕсли Кодировка = "OEM" Тогда КодировкаФайла = КодировкаТекста.OEM; ИначеЕсли Кодировка = "UTF8" Тогда КодировкаФайла = КодировкаТекста.UTF8; ИначеЕсли Кодировка = "UTF16" Тогда КодировкаФайла = КодировкаТекста.UTF16; ИначеЕсли Кодировка = "Системная" Тогда КодировкаФайла = КодировкаТекста.Системная; КонецЕсли; ВременныйФайл = ПолучитьИмяВременногоФайла(); Запись = Новый ЗаписьТекста(ВременныйФайл, КодировкаФайла); Запись.Записать(Decoded); Запись.Закрыть(); ДвДанные = Новый ДвоичныеДанные(ВременныйФайл); Encoded = Base64Строка(ДвДанные); УдалитьФайлы(ВременныйФайл); КонецПроцедуры