Была уже публикация с примером кода для 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Строка(ДвДанные);
УдалитьФайлы(ВременныйФайл);
КонецПроцедуры
Вступайте в нашу телеграмм-группу Инфостарт