Защита внешней обработки или внешнего отчета 1С 8 – прячем и шифруем систему компоновки данных (СКД)

Аватар пользователя mykib.org
Файлы для скачивания: 

Создадим основную схему компоновки данных. Отладим наш отчет. Создадим основную форму отчета.

Принцип шифрования: 

Выгрузим схему компоновки данных в файл,  заархивируем в zip-архив с паролем. Добавим запароленный zip-архив как макет двоичных данных. Удалим основную схему данных. В модуле отчета программно установим схему компоновки данных отчета и защитим модуль отчета паролем. 

    • Выгрузка схемы компоновки в файл. По кнопке «Сохранить схему в файл» (выделил маркером) сохраним, например, в файл «Основная СКД.xml»:

Выгрузка схемы компоновки в файл

    • Добавим в архив, например, «Основная СКД.zip» (пусть, пароль архива «мойпароль»):

Добавление файла в архив

Установка пароля zip архива

    • Добавим в отчет новый макет «Двоичные данные». Данные загрузим из файла «Основная СКД.zip»:

Добавление двоичных данных в макет

    • Теперь можно удалить основную схему компоновки данных:

Удаление основной схемы компоновки данных

    • В модуле основной формы в процедуре «ПриОткрытии»:
Процедура ПриОткрытии()
	ИнициализироватьСхемуКомпоновкиДанных();
КонецПроцедуры

    • В модуле объекта:
Процедура ИнициализироватьСхемуКомпоновкиДанных() Экспорт
	
	ИмяфайлаСКД = "Основная СКД.xml";
	ИмяВременногоФайлаZIP = ПолучитьИмяВременногоФайла("zip");
	ДвоичныеДанные = ПолучитьМакет("МакетДанных");
	ДвоичныеДанные.Записать(ИмяВременногоФайлаZIP);
	
	// Извлекаем из ZIP-архива XML-файл нашей схемы компоновки данных и сохраняем его во временный файл
	ЧтениеZIP = Новый ЧтениеZipФайла(ИмяВременногоФайлаZIP, "мойпароль");
	ЭлементZIPАрхива = ЧтениеZIP.Элементы.Найти(ИмяфайлаСКД);
	ЧтениеZIP.Извлечь(ЭлементZIPАрхива, КаталогВременныхФайлов(), 
	РежимВосстановленияПутейФайловZIP.НеВосстанавливать);
	ЧтениеZIP.Закрыть();
	
	//Читаем Схему компоновки данных
	Чтение = Новый ЧтениеXML;
	НовыйСXDTO = Новый СериализаторXDTO(ФабрикаXDTO);
	Чтение.ОткрытьФайл(КаталогВременныхФайлов() + ИмяфайлаСКД);
	ПервоначальныеДанныеСхемаКомпоновкиДанных = НовыйСXDTO.ПрочитатьXML(Чтение);
	
	//Устанавливаем основную схему компоновки данных - без этого будут недоступны кнопки "Сформировать", "Конструктор настроек", "Настройки"
	//т.к. мы же удалили основную схему компоновки данных
	ЭтотОбъект.СхемаКомпоновкиДанных = ПервоначальныеДанныеСхемаКомпоновкиДанных;
	КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(ПервоначальныеДанныеСхемаКомпоновкиДанных));
	
КонецПроцедуры

    • Теперь установим пароль на модуль отчета - откроем модуль и выберем пункт меню «Текст -> Установить пароль». Внимание! Если не выполнить этот пункт, то все наши старания напрасны!!!

Установка пароля на модуль объекта

 

 

 

Ключевые фразы:

Комментарии

Аватар пользователя mykib.org

<p>Исследовательский центр рекрутингового портала <a target=_blank href="http://www.superjob.ru">Superjob</a> в декабре 2014 года изучил предложения работодателей и ожидания претендентов на позицию «Программист «1С» в 15 городах России.&nbsp;<a href="http://www.superjob.ru/research/articles/111686/programmist-1s/" target="_blank">Подробнее...</a></p><p>Источник: <a href=http://www.superjob.ru target="_blank">Superjob.ru — Работа, вакансии, резюме.</a></p>