Это старая версия документа!
Содержание
Шаг за шагом: защита конфигурации 1С
В общем случае для защиты своей конфигурации 1С понадобится:
- создать продукт в своем личном кабинете;
- определить способ лицензирования продукта - по количеству пользователей или по количеству хостов.
- установить на свой компьютер инструмент для выполнения процедуры защиты продукта;
- добавить в продукт интерактивную форму активации продукта.
Далее рассмотрим всю процедуру по шагам. Создадим простую конфигурацию 1С, а для выдачи лицензий на работу с ней будем использовать демо-доступ к личному кабинету. Адрес, логин и пароль высылается на электронную почту после регистрации.
Обзор демонстрационной базы
Для примера будем использовать конфигурацию для учета домашних животных.
- Скачайте файл демонстрационной базы «МурМур.dt» (ссылка в электронном письме).
- Откройте скаченную базу в конфигураторе. Структура конфигурации имеет следующий вид. В справочнике «Котики» мы будем хранить информацию о наших животных. При добавлении нового животного в справочник в качестве имени можно выбрать одну из популярных кличек. Клички хранятся в регистре сведений, а код для выборки записей из этого регистра расположен в общем модуле «КотыСервер».
- Откройте модуль формы элемента справочника «Котики». Модуль содержит код для заполнения выпадающего списка «Кличка» известными именами котов. Выборка элементов для списка выполняется в общем модуле «КотыСервер».
&НаСервереБезКонтекста Функция ПолучитьСписокКличек(Пол) Возврат КотыСервер.ПолучитьКличкиКотов(Пол); КонецФункции &НаКлиенте Процедура ПолПриИзменении(Элемент) КличкиКотов = ПолучитьСписокКличек(Объект.Пол); Элементы.Кличка.СписокВыбора.ЗагрузитьЗначения(КличкиКотов); КонецПроцедуры &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) КличкиКотов = ПолучитьСписокКличек(Объект.Пол); Элементы.Кличка.СписокВыбора.ЗагрузитьЗначения(КличкиКотов); КонецПроцедуры
- Перейдите к модулю «КотыСервер». Выборка кличек выполняется простым запросом с одним параметром. Код этого модуля будет в дальнейшем скрыт, а функция «ПолучитьСписокКличек» будет требовать наличие лицензии на продукт.
Функция ПолучитьКличкиКотов(Пол) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КличкиКотов.Кличка |ИЗ | РегистрСведений.КличкиКотов КАК КличкиКотов |ГДЕ | КличкиКотов.Пол = &Пол"; Запрос.УстановитьПараметр("Пол", Пол); Результат = Запрос.Выполнить(); МассивКличек = Результат.Выгрузить().ВыгрузитьКолонку("Кличка"); Возврат МассивКличек; КонецФункции
Регистрация продукта в личном кабинете
Продукт - это то, что мы предлагаем клиентам. Продукт может состоять из одной или нескольких фич. Т.е. лицензируемый функционал (фичи) может быть предложен клиенту как по отдельности, так и в виде комплекта.
Перейдем к настройке продукта в личном кабинете.
- Откройте личный кабинет и перейдите на страницу фич.
- Добавьте новую фичу. В качестве названия укажите «Учет котов».
- Далее перейдите к странице продуктов.
- Добавьте новый продукт. В нашем примере будет продукт с одной фичей и с ограничением лицензии по количеству пользователей. Для наглядности в названии продукта отразим функционал и способ лицензирования: «Учет котов на 10 пользователей».
Встраивание подсистемы лицензирования
Настроим инструмент защиты конфигураций (ссылка в электронном письме).
- Укажите в настройках код поставщика (vendor code). Персональный код указан в личном кабинете. Идентификатор разработчика генерируется автоматически и понадобится позже.
- Откройте список фич и добавьте новую, с тем же кодом и наименованием, что и в личном кабинете.
- Создайте новую конфигурацию. Укажите имя конфигурации 1С и каталог файлов поставки (например, H:\tmp\ПоставкаМурМур).
- Сохраните изменения. Идентификатор продукта будет сформирован автоматически и понадобится позже.
Перейдем к защищаемой конфигурации 1С. Сперва нужно перенести в конфигурацию объекты системы лицензирования.
- В конфигураторе защищаемой конфигурации откройте файл МИКО_ЗащитаКонфигураций.cf в режиме сравнения и объединения.
- Перенесите объекты подсистемы «МИКО_СистемаЛицензирования» в защищаемую конфигурацию.
- Откройте общий модуль «МИКО_ЛицензированиеПереопределяемый».
- Заполнение тело процедуры «ЛицензируемыеПродукты», указав наименование продукта и идентификаторы, полученные на предыдущих шагах.
Процедура ЛицензируемыеПродукты(Продукты) Экспорт ОписаниеПродукта = Новый Структура; ОписаниеПродукта.Вставить("Наименование", "Учет котов"); ОписаниеПродукта.Вставить("ИдентификаторПродукта", "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"); ОписаниеПродукта.Вставить("ИдентификаторРазработчика", "XX-XX-XX"); Продукты.Добавить(ОписаниеПродукта); КонецПроцедуры
- В этом же модуле нужно указать местоположение макетов внешних компонент. Все компоненты персонализированы под разработчика и получить их можно по запросу. В данном примере компоненты подключаются к демо-серверу лицензирования.
Процедура ПриИнициализацииЗакрытогоМодуля(ИдентификаторРазработчика, МестоположениеКомпонента) Экспорт Если ИдентификаторРазработчика = "XX-XX-XX" Тогда МестоположениеКомпонента = "ОбщийМакет.МИКО_КомпонентЗакрытогоМодуля"; КонецЕсли; КонецПроцедуры Процедура ПриИнициализацииФормыРегистрации(ИдентификаторРазработчика, МестоположениеКомпонента) Экспорт Если ИдентификаторРазработчика = "XX-XX-XX" Тогда МестоположениеКомпонента = "ОбщийМакет.МИКО_КомпонентРегистрацииПродукта"; КонецЕсли; КонецПроцедуры
- Для работы закрытого модуля потребуется лицензионный ключ. Система будет периодически запрашивать ключ, а также может выдать новый при регистрации продукта.
Процедура ПриЧтенииЛицензионногоКлюча(ИдентификаторПродукта, ЛицензионныйКлюч) Экспорт Если ИдентификаторПродукта = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" Тогда ЛицензионныйКлюч = Константы.КотыЛицензионныйКлюч.Получить(); КонецЕсли; КонецПроцедуры Процедура ПриЗаписиЛицензионногоКлюча(ИдентификаторПродукта, ЛицензионныйКлюч) Экспорт Если ИдентификаторПродукта = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" Тогда Константы.КотыЛицензионныйКлюч.Установить(ЛицензионныйКлюч); КонецЕсли; КонецПроцедуры
- Обновите конфигурацию базы данных.
- Настройте поставку конфигурации так, чтобы и исходный текст модуля «КотыСервер» был исключен из поставки.
- Сформируйте файл поставки, указав папку «H:\tmp\ПоставкаМурМур».
Вернемся к инструменту защиты конфигураций.
- Создайте новый образ конфигурации. Укажите путь к файлу конфигурации «H:\tmp\ПоставкаМурМур\1.0\Коты.cf».
- Откройте образ конфигурации. В нем будет указан один программный модуль - КотыСервер.
- Откройте модуль «КотыСервер» и создайте новую защитную маску. Для функции «ПолучитьКличкиКотов» укажите фичу «Учет котов».
- Сохраните изменения, вернитесь на начальный экран.
- В журнале поставок напротив образа конфигурации нажмите на гиперссылку «Установить защиту». После завершения в каталоге поставки появится файл «1Cv8.protect.cf».
Проверка результатов
После выполнения всех этапов осталось проверить полученные результаты.
- Скопируйте информационную базу и загрузить в нее конфигурацию из полученного файла «Коты.protect.cf».