====== Инструкция по защите конфигурации ====== ===== Общее описание ===== В инструменте "МИКО: Защита конфигураций" используются следующие понятия и обозначения: * Образ конфигурации - набор описаний метаданных конфигурации 1С (не всех, только подлежащих защите), структура программных модулей. * Защитная маска - набор инструкций для алгоритма защиты, включающий названия защищаемых подпрограмм и соответствующих им фич. * Фича (функциональная возможность) - числовой идентификатор отдельной выполняемой функции или задачи решаемой программой. * Подпрограмма - процедура или функция в терминологии кода 1С. Работа с инструментом выполняется по следующей схеме: {{ :protect1c:30-06-2016_15-10-05.png?nolink|}} * Подготавливается исходная конфигурация к защите. Определяются программные модули, которые должны быть защищены. * Извлекается образ конфигурации - описание программных модулей и их содержимое. * Для каждого модуля определяется защитная маска - отмечаются процедуры и функции требующие в момент выполнения проверки лицензионного ключа. Защитные маски применяются к программным модулям, собирается итоговая конфигурация. ===== Подготовка конфигурации к защите ===== Первое, что необходимо сделать - выбрать модули конфигурации, которые должны быть закрыты от модификации. Для этого в платформе 1С предусмотрены два варианта: * установка пароля на редактирование текста модуля; * удаление текста модуля, через механизм поставок конфигураций. Использовать можно любой из перечисленных вариантов, это заставит платформу сохранить байт-код при компиляции. Пароли можно использовать произвольные, для установки защиты исходные тексты модулей не потребуются. ==== Добавление объектов системы лицензирования ==== Для работы системы лицензирования, в конфигурацию требуется добавить некоторые дополнительные объекты. - Выполните в конфигураторе операцию "Сравнить, объединить с конфигурацией из файла". - В открывшемся окне выберите файл конфигурации "МИКО: Защита конфигураций". - Снимите отметку с корневого объекта конфигуарции. {{ :protect1c:30-06-2016_23-10-08.png?nolink |}} - Установите отметки по подсистемам файла и выполните перенос объектов. {{ :protect1c:30-06-2016_23-27-43.png?nolink |}} В защищаемую конфигурацию будут перенесены компонент для работы с защищенными модулями и форма регистрации продукта. Форма регистрации предназначена для: * регистрации нового пользователя; * получения триального ключа с ограничением по сроку действия. * активации купонов на продление срока действия ключа или расширения доступных функций. Дальнейшая работа производится с файлом конфигурации (файл с расширением .cf). ---- ===== Настройка инструмента ===== При первом запуске инструмента выполните его настройку. ==== Ввод кода поставщика ==== В меню навигации выберите пункт "Настройка программы". В появившемся окне заполните поле "Код поставщика (vendor code)". {{ :protect1c:20-06-2016_15-38-36.png?nolink |}} ==== Настройка функциональных возможностей ==== Заполните список функциональных возможностей (фич) в соответствии с тем как они заполнены в личном кабинете системы лицензирования. {{ :protect1c:20-06-2016_15-51-27.png?nolink |}} Откройте справочник "Функции" в меню навигации и нажмите кнопку "Создать". {{ :protect1c:20-06-2016_15-43-35.png?nolink |}} - Введите числовое значение Feature ID. - Укажите текстовое наименование фичи (наименование является исключительно информационным). ===== Работа с образами конфигурации ===== Для каждой конфигурации создается как минимум один образ. Рекомендуется создавать образ для каждой новой версии конфигурации. ==== Создание нового образа ==== Перейдите в справочник "Конфигурации" в меню навигации и создайте новую конфигурацию. {{ :protect1c:20-06-2016_17-14-49.png?nolink |}} - Укажите произвольное наименование конфигурации. - Выберите каталог содержащий поставки конфигурации (файлы с расширением .cf). - Нажмите кнопку "Создать" для формирования нового образа конфигурации. {{ :protect1c:20-06-2016_22-14-22.png?nolink |}} - В появившемся окне укажите путь к файлу защищаемой конфигурации. По умолчанию подставляется путь к самому новому файлу (определяется по дате изменения). - Нажмите кнопку "Создать образ" и дождитесь завершения операции. - Созданный образ будет отображен в списке образов конфигурации. ==== Просмотр информации об образе конфигурации ==== {{ :protect1c:21-06-2016_9-44-47.png?nolink |}} Справочник образов конфигурации содержит общую информацию о файле конфигурации, с которого снят образ, а также список программных модулей подлежащих защите. **Важно:** В списке модулей отображаются только те, у которых присутствует сгенерированный байт-код, т.е. это модули закрытые паролем или поставляемые без исходных текстов. ==== Создание защитных масок ==== Откройте программный модуль из образа конфигурации. Модуль содержит список подпрограмм (процедур и функций). Каждой процедуре можно установить в соответствие свою фичу. {{ :protect1c:21-06-2016_10-18-59.png?nolink |}} - Нажмите кнопку "Создать защитную маску". В интерфейсе таблицы подпрограмм появится колонка "Функция". - Выберите подпрограмму, для которой необходимо определить фичу. Укажите фичу в колонке "Функция". - Нажмите кнопку "Записать". Для текущего модуля будет создана новая защитная маска. - Созданная маска будет сразу выбрана как основная для текущего модуля. ==== Установка защиты на конфигурацию ==== Перейдите к журналу поставок (домашняя страница). В журнале отображены конфигурации и их образы. {{ :protect1c:30-06-2016_16-30-54.png?nolink |}} - Найдите в списке образ конфигурации, который необходимо защитить. Нажмите кнопку "Обновить", если образ не виден в списке. - Нажмите на гиперссылку "Установить защиту" напротив образа конфигурации. {{ :protect1c:30-06-2016_16-28-20.png?nolink |}} Дождитесь завершения работы, это может занять продолжительное время в зависимости от размера конфигурации. - Защищенные образы отмечаются специальным значком. ---- ===== Рекомендации по работе с инструментом ===== - Не пытайтесь защитить все модули конфигурации. Это может привести к существенному снижению производительности работы конфигурации, связанной с инициализацией внешней компоненты и установки соединения с сервером лицензирования. - Не выбирайте подпрограммы, которые используются в циклической обработке данных. В качестве примера, рассмотрим алгоритм приведенный на рисунке ниже. {{ :protect1c:30-06-2016_17-30-23.png?nolink |}} Предположим, что в подпрограмме (1) выполняется загрузка некоторого набора записей из внешнего источника, а в подпрограмме (2) выполняется обработка отдельной записи из этого набора. В этом случае не рекомендуется назначать подпрограмме (2) функциональную опцию, т.к. накладные расходы на проверку лицензионного ключа в этом месте будут напрямую связаны с объемом обрабатываемых данных. - Выбирайте подпрограммы, содержащие тексты запросов к базе данных. Чем больше текстовых констант в подпрограмме, тем надежнее защита. - По возможности ведите разработку защищаемых модулей в отдельных, простых конфигурациях. Работа инструмента связана с загрузкой/выгрузкой метаданных конфигурации. Регулярная установка защиты на конфигурацию уровня ERP может отнять много времени.