Создадим основную схему компоновки данных. Отладим наш отчет [1]. Создадим основную форму отчета.
Принцип шифрования:
Выгрузим схему компоновки данных в файл, заархивируем в zip-архив с паролем. Добавим запароленный zip-архив как макет двоичных данных. Удалим основную схему данных. В модуле отчета программно установим схему компоновки данных отчета и защитим модуль отчета паролем.
Процедура ПриОткрытии() ИнициализироватьСхемуКомпоновкиДанных(); КонецПроцедуры
Процедура ИнициализироватьСхемуКомпоновкиДанных() Экспорт ИмяфайлаСКД = "Основная СКД.xml"; ИмяВременногоФайлаZIP = ПолучитьИмяВременногоФайла("zip"); ДвоичныеДанные = ПолучитьМакет("МакетДанных"); ДвоичныеДанные.Записать(ИмяВременногоФайлаZIP); // Извлекаем из ZIP-архива XML-файл нашей схемы компоновки данных и сохраняем его во временный файл ЧтениеZIP = Новый ЧтениеZipФайла(ИмяВременногоФайлаZIP, "мойпароль"); ЭлементZIPАрхива = ЧтениеZIP.Элементы.Найти(ИмяфайлаСКД); ЧтениеZIP.Извлечь(ЭлементZIPАрхива, КаталогВременныхФайлов(), РежимВосстановленияПутейФайловZIP.НеВосстанавливать); ЧтениеZIP.Закрыть(); //Читаем Схему компоновки данных Чтение = Новый ЧтениеXML; НовыйСXDTO = Новый СериализаторXDTO(ФабрикаXDTO); Чтение.ОткрытьФайл(КаталогВременныхФайлов() + ИмяфайлаСКД); ПервоначальныеДанныеСхемаКомпоновкиДанных = НовыйСXDTO.ПрочитатьXML(Чтение); //Устанавливаем основную схему компоновки данных - без этого будут недоступны кнопки "Сформировать", "Конструктор настроек", "Настройки" //т.к. мы же удалили основную схему компоновки данных ЭтотОбъект.СхемаКомпоновкиДанных = ПервоначальныеДанныеСхемаКомпоновкиДанных; КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(ПервоначальныеДанныеСхемаКомпоновкиДанных)); КонецПроцедуры
Ссылки
[1] https://www.mykib.org/article/den-devyatyy-integriroval-samyy-bolshoy-katalog-razrabotok-dlya-platformy-1s
[2] https://www.mykib.org/tags/1s-8
[3] https://www.mykib.org/sites/default/files/downloads/shifrovanie_otcheta_0001_1.rar
[4] https://www.mykib.org/users/mykiborg
[5] https://www.mykib.org/comment/4#comment-4
Комментарии
Программист «1С» [5]