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