Инструменты пользователя

Инструменты сайта


common:stepbystep1cprotect

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

common:stepbystep1cprotect [2016/10/21 11:32] – создано mcvetcommon:stepbystep1cprotect [2016/10/21 11:39] (текущий) – удалено mcvet
Строка 1: Строка 1:
-====== Шаг за шагом: защита конфигурации 1С ====== 
  
-В общем случае для защиты своей конфигурации 1С понадобится: 
-  * создать продукт в своем личном кабинете; 
-  * определить способ лицензирования продукта - по количеству пользователей или по количеству хостов. 
-  * установить на свой компьютер инструмент для выполнения процедуры защиты продукта; 
-  * добавить в продукт интерактивную форму активации продукта. 
- 
-Далее рассмотрим всю процедуру по шагам. Создадим простую конфигурацию 1С, а для выдачи лицензий на работу с ней  будем использовать демо-доступ к личному кабинету. Адрес, логин и пароль высылается на электронную почту после регистрации. 
- 
-===== Обзор демонстрационной базы ===== 
- 
-Для примера будем использовать конфигурацию для учета домашних животных. 
-  - Скачайте файл демонстрационной базы "МурМур.dt" (ссылка в электронном письме). 
-  - Откройте скаченную базу в конфигураторе. Структура конфигурации имеет следующий вид. В справочнике "Котики" мы будем хранить информацию о наших животных. При добавлении нового животного в справочник в качестве имени можно выбрать одну из популярных кличек. Клички хранятся в регистре сведений, а код для выборки записей из этого регистра расположен в общем модуле "КотыСервер". 
- 
-  - Откройте модуль формы элемента справочника "Котики". Модуль содержит код для заполнения выпадающего списка "Кличка" известными именами котов. Выборка элементов для списка выполняется в общем модуле "КотыСервер".<code>&НаСервереБезКонтекста 
-Функция ПолучитьСписокКличек(Пол) 
-  
- Возврат КотыСервер.ПолучитьКличкиКотов(Пол); 
-  
-КонецФункции 
- 
-&НаКлиенте 
-Процедура ПолПриИзменении(Элемент) 
-  
- КличкиКотов = ПолучитьСписокКличек(Объект.Пол); 
-  
- Элементы.Кличка.СписокВыбора.ЗагрузитьЗначения(КличкиКотов); 
-  
-КонецПроцедуры 
- 
-&НаСервере 
-Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) 
-  
- КличкиКотов = ПолучитьСписокКличек(Объект.Пол); 
-  
- Элементы.Кличка.СписокВыбора.ЗагрузитьЗначения(КличкиКотов); 
-  
-КонецПроцедуры</code> 
-  - Перейдите к модулю "КотыСервер". Выборка кличек выполняется простым запросом с одним параметром. Код этого модуля будет в дальнейшем скрыт, а функция "ПолучитьСписокКличек" будет требовать наличие лицензии на продукт.<code>Функция ПолучитьКличкиКотов(Пол) Экспорт 
-  
- Запрос = Новый Запрос; 
- Запрос.Текст =  
- "ВЫБРАТЬ 
- | КличкиКотов.Кличка 
- |ИЗ 
- | РегистрСведений.КличкиКотов КАК КличкиКотов 
- |ГДЕ 
- | КличкиКотов.Пол = &Пол"; 
- Запрос.УстановитьПараметр("Пол", Пол); 
-  
- Результат = Запрос.Выполнить(); 
-  
- МассивКличек = Результат.Выгрузить().ВыгрузитьКолонку("Кличка"); 
-  
- Возврат МассивКличек; 
-   
-КонецФункции</code> 
- 
-===== Регистрация продукта в личном кабинете ===== 
- 
-<note tip>**Фича** - это тот функционал, который подлежит лицензированию. Это может быть отдельный модуль, обработка или целая конфигурация. Далее, для примера, будем лицензировать конфигурацию. \\ 
-**Продукт** - это то, что мы предлагаем клиентам. Продукт может состоять из одной или нескольких фич. Т.е. лицензируемый функционал (фичи) может быть предложен клиенту как по отдельности, так и в виде комплекта.</note> 
-Перейдем к настройке продукта в личном кабинете. 
-  - Откройте личный кабинет и перейдите на страницу фич. 
-  - Добавьте новую фичу. В качестве названия укажите "Учет котов". 
-  - Далее перейдите к странице продуктов. 
-  - Добавьте новый продукт. В нашем примере будет продукт с одной фичей и с ограничением лицензии по количеству пользователей. Для наглядности в названии продукта отразим функционал и способ лицензирования: "Учет котов на 10 пользователей". 
- 
-===== Встраивание подсистемы лицензирования ===== 
- 
-Настроим инструмент защиты конфигураций (ссылка в электронном письме). 
-  - Укажите в настройках код поставщика (vendor code). Персональный код указан в личном кабинете. Идентификатор разработчика генерируется автоматически и понадобится позже. 
-  - Откройте список фич и добавьте новую, с тем же кодом и наименованием, что и в личном кабинете. 
-  - Создайте новую конфигурацию. Укажите имя конфигурации 1С и каталог файлов поставки (например, H:\tmp\ПоставкаМурМур). 
-  - Сохраните изменения. Идентификатор продукта будет сформирован автоматически и понадобится позже. 
-Перейдем к защищаемой конфигурации 1С. Сперва нужно перенести в конфигурацию объекты системы лицензирования. 
-  - В конфигураторе защищаемой конфигурации откройте файл МИКО_ЗащитаКонфигураций.cf в режиме сравнения и объединения. 
-  - Перенесите объекты подсистемы "МИКО_СистемаЛицензирования" в защищаемую конфигурацию. 
-  - Откройте общий модуль "МИКО_ЛицензированиеПереопределяемый". 
-  - Заполнение тело процедуры "ЛицензируемыеПродукты", указав наименование продукта и идентификаторы, полученные на предыдущих шагах.<code>Процедура ЛицензируемыеПродукты(Продукты) Экспорт 
-  
- ОписаниеПродукта = Новый Структура; 
- ОписаниеПродукта.Вставить("Наименование",              "Учет котов"); 
- ОписаниеПродукта.Вставить("ИдентификаторПродукта",     "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"); 
- ОписаниеПродукта.Вставить("ИдентификаторРазработчика", "XX-XX-XX"); 
-  
- Продукты.Добавить(ОписаниеПродукта); 
-  
-КонецПроцедуры</code> 
-  - В этом же модуле нужно указать местоположение макетов внешних компонент. Все компоненты персонализированы под разработчика и получить их можно по запросу. В данном примере компоненты подключаются к демо-серверу лицензирования.<code> 
-Процедура ПриИнициализацииЗакрытогоМодуля(ИдентификаторРазработчика, МестоположениеКомпонента) Экспорт 
-  
- Если ИдентификаторРазработчика = "XX-XX-XX" Тогда 
- МестоположениеКомпонента = "ОбщийМакет.МИКО_КомпонентЗакрытогоМодуля"; 
- КонецЕсли; 
-  
-КонецПроцедуры 
- 
-Процедура ПриИнициализацииФормыРегистрации(ИдентификаторРазработчика, МестоположениеКомпонента) Экспорт 
-  
- Если ИдентификаторРазработчика = "XX-XX-XX" Тогда 
- МестоположениеКомпонента = "ОбщийМакет.МИКО_КомпонентРегистрацииПродукта"; 
- КонецЕсли; 
-  
-КонецПроцедуры</code> 
-  - Для работы закрытого модуля потребуется лицензионный ключ. Система будет периодически запрашивать ключ, а также может выдать новый при регистрации продукта.<code>Процедура ПриЧтенииЛицензионногоКлюча(ИдентификаторПродукта, ЛицензионныйКлюч) Экспорт 
-  
- Если ИдентификаторПродукта = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" Тогда 
- ЛицензионныйКлюч = Константы.КотыЛицензионныйКлюч.Получить(); 
- КонецЕсли; 
-  
-КонецПроцедуры 
- 
-Процедура ПриЗаписиЛицензионногоКлюча(ИдентификаторПродукта, ЛицензионныйКлюч) Экспорт 
-  
- Если ИдентификаторПродукта = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" Тогда 
- Константы.КотыЛицензионныйКлюч.Установить(ЛицензионныйКлюч); 
- КонецЕсли; 
-  
-КонецПроцедуры</code> 
-  - Обновите конфигурацию базы данных. 
-  - Настройте поставку конфигурации так, чтобы и исходный текст модуля "КотыСервер" был исключен из поставки. 
-  - Сформируйте файл поставки, указав папку "H:\tmp\ПоставкаМурМур". 
- 
-Вернемся к инструменту защиты конфигураций. 
-  - Создайте новый образ конфигурации. Укажите путь к файлу конфигурации "H:\tmp\ПоставкаМурМур\1.0\Коты.cf". 
-  - Откройте образ конфигурации. В нем будет указан один программный модуль - КотыСервер. 
-  - Откройте модуль "КотыСервер" и создайте новую защитную маску. Для функции "ПолучитьКличкиКотов" укажите фичу "Учет котов". 
-  - Сохраните изменения, вернитесь на начальный экран. 
-  - В журнале поставок напротив образа конфигурации нажмите на гиперссылку "Установить защиту". После завершения в каталоге поставки появится файл "1Cv8.protect.cf". 
- 
-===== Проверка результатов ===== 
- 
-После выполнения всех этапов осталось проверить полученные результаты. 
-  - Скопируйте информационную базу и загрузить в нее конфигурацию из полученного файла "Коты.protect.cf". 
-  -  
common/stepbystep1cprotect.1477038723.txt.gz · Последнее изменение: 2024/01/23 15:06 (внешнее изменение)