gifts2017

Кодирование строк в формат Base64 и обратно в 1С 8.Х

Опубликовал Имя Фамилия (4Dimensions) в раздел Программирование - Практика программирования

Обработка на управляемых формах для 1С для преобразования строковых данных в формат Base64 и обратно

Была уже публикация с примером кода для 1С http://infostart.ru/public/252365/

Но, по-моему, это велосипед. Моя обработка в 10 строк кода выглядит элегантнее)) Cool

 

Вот пример кода:

&НаКлиенте
Процедура 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Строка(ДвДанные);
	
	УдалитьФайлы(ВременныйФайл);
	
КонецПроцедуры

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Base64Decode.epf
.epf 6,71Kb
01.09.15
6
.epf 6,71Kb 6 Скачать

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа