stepbystep:protect1c
no way to compare when less than two revisions
Различия
Показаны различия между двумя версиями страницы.
Следующая версия | |||
— | stepbystep:protect1c [2016/11/18 14:05] – создано mcvet | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Шаг за шагом: защита конфигурации 1С ====== | ||
+ | В общем случае для защиты своей конфигурации 1С понадобится: | ||
+ | * создать продукт в своем личном кабинете; | ||
+ | * определить способ лицензирования продукта - по количеству пользователей или хостов; | ||
+ | * установить на свой компьютер инструмент для выполнения процедуры защиты продукта; | ||
+ | * добавить в продукт интерактивную форму активации продукта и вспомогательные модули системы лицензирования. | ||
+ | |||
+ | Далее рассмотрим всю процедуру по шагам. Создадим простую конфигурацию 1С, а для выдачи лицензий на работу с ней | ||
+ | |||
+ | ===== Обзор демонстрационной базы ===== | ||
+ | |||
+ | Для примера будем использовать конфигурацию для учета домашних животных. | ||
+ | - Скачайте файл демонстрационной базы " | ||
+ | - Создайте информационную базу из загрузите в нее копию из скаченнего файла.\\ Структура конфигурации имеет следующий вид. {{ : | ||
+ | - Откройте модуль формы элемента справочника " | ||
+ | Функция ПолучитьСписокКличек(Пол) | ||
+ | |||
+ | Возврат КотыСервер.ПолучитьКличкиКотов(Пол); | ||
+ | |||
+ | КонецФункции | ||
+ | |||
+ | & | ||
+ | Процедура ПолПриИзменении(Элемент) | ||
+ | |||
+ | КличкиКотов = ПолучитьСписокКличек(Объект.Пол); | ||
+ | |||
+ | Элементы.Кличка.СписокВыбора.ЗагрузитьЗначения(КличкиКотов); | ||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | & | ||
+ | Процедура ПриСозданииНаСервере(Отказ, | ||
+ | |||
+ | КличкиКотов = ПолучитьСписокКличек(Объект.Пол); | ||
+ | |||
+ | Элементы.Кличка.СписокВыбора.ЗагрузитьЗначения(КличкиКотов); | ||
+ | |||
+ | КонецПроцедуры</ | ||
+ | - Перейдите к модулю " | ||
+ | |||
+ | Запрос = Новый Запрос; | ||
+ | Запрос.Текст = | ||
+ | " | ||
+ | | КличкиКотов.Кличка | ||
+ | |ИЗ | ||
+ | | РегистрСведений.КличкиКотов КАК КличкиКотов | ||
+ | |ГДЕ | ||
+ | | КличкиКотов.Пол = & | ||
+ | Запрос.УстановитьПараметр(" | ||
+ | |||
+ | Результат = Запрос.Выполнить(); | ||
+ | |||
+ | МассивКличек = Результат.Выгрузить().ВыгрузитьКолонку(" | ||
+ | |||
+ | Возврат МассивКличек; | ||
+ | |||
+ | КонецФункции</ | ||
+ | |||
+ | ===== Регистрация продукта в личном кабинете ===== | ||
+ | |||
+ | <note tip> | ||
+ | **Продукт** - это минимально допустимый набор функциональных опций, который мы предлагаем клиенту как готовое решение. Продукт может состоять как из одной так и из нескольких фич, в зависимости от сложности лицензируемого решения.</ | ||
+ | В данном примере не будем выделять отдельные функции конфигурации, | ||
+ | Перейдем к настройке продукта в личном кабинете разработчика. | ||
+ | - Откройте личный кабинет и перейдите на страницу фич. | ||
+ | - Добавьте новую фичу. В качестве названия укажите " | ||
+ | - Далее перейдите к странице продуктов. | ||
+ | - Добавьте новый продукт. Укажите в нем созданную ранее фичу и ограничение лицензии по количеству пользователей. Для наглядности в названии продукта отразим функционал и способ лицензирования: | ||
+ | {{ : | ||
+ | |||
+ | ===== Встраивание подсистемы лицензирования ===== | ||
+ | |||
+ | Настроим инструмент защиты конфигураций (ссылка в электронном письме). | ||
+ | - Укажите в настройках код поставщика (vendor code). Персональный код указан в настройках личного кабинета. Идентификатор разработчика генерируется автоматически и понадобится позже.{{ : | ||
+ | - Откройте список фич и добавьте новую, с тем же кодом и наименованием, | ||
+ | - Создайте новую конфигурацию. Укажите имя конфигурации 1С и каталог файлов поставки (например, | ||
+ | - Сохраните изменения. Идентификатор продукта будет сформирован автоматически и понадобится позже. | ||
+ | Перейдем к защищаемой конфигурации 1С. Сперва нужно перенести в конфигурацию объекты системы лицензирования. | ||
+ | - В конфигураторе защищаемой конфигурации откройте файл МИКО_ЗащитаКонфигураций.cf в режиме сравнения и объединения. | ||
+ | - Перенесите объекты (общие модули, | ||
+ | - Откройте общий модуль " | ||
+ | - Заполнение тело процедуры " | ||
+ | |||
+ | ОписаниеПродукта = Новый Структура; | ||
+ | ОписаниеПродукта.Вставить(" | ||
+ | ОписаниеПродукта.Вставить(" | ||
+ | ОписаниеПродукта.Вставить(" | ||
+ | ОписаниеПродукта.Вставить(" | ||
+ | ОписаниеПродукта.Вставить(" | ||
+ | |||
+ | Продукты.Добавить(ОписаниеПродукта); | ||
+ | |||
+ | КонецПроцедуры</ | ||
+ | - В этом же модуле нужно указать местоположение макетов внешних компонент. В данном примере компоненты подключаются к демо-серверу лицензирования. Для подключения к собственным серверам требуются персонализированные под разработчика компоненты, | ||
+ | Процедура ПриИнициализацииЗакрытогоМодуля(ПрефиксКлюч, | ||
+ | |||
+ | Если ПрефиксКлюч = " | ||
+ | МестоположениеКомпонента = " | ||
+ | КонецЕсли; | ||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | Процедура ПриИнициализацииФормыРегистрации(ПрефиксКлюч, | ||
+ | |||
+ | Если ПрефиксКлюч = " | ||
+ | МестоположениеКомпонента = " | ||
+ | КонецЕсли; | ||
+ | |||
+ | КонецПроцедуры</ | ||
+ | - Для работы закрытого модуля потребуется лицензионный ключ. Система будет периодически запрашивать ключ, а также может выдать новый при регистрации продукта.< | ||
+ | |||
+ | Если ИдентификаторКонфигурации= " | ||
+ | ЛицензионныйКлюч = Константы.КошкинДомЛицензионныйКлюч.Получить(); | ||
+ | КонецЕсли; | ||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | Процедура ПриЗаписиЛицензионногоКлюча(ИдентификаторКонфигурации, | ||
+ | |||
+ | Если ИдентификаторКонфигурации= " | ||
+ | Константы.КошкинДомЛицензионныйКлюч.Установить(ЛицензионныйКлюч); | ||
+ | КонецЕсли; | ||
+ | |||
+ | КонецПроцедуры</ | ||
+ | - Обновите конфигурацию базы данных. | ||
+ | - Настройте поставку конфигурации так, чтобы исходный текст модуля " | ||
+ | - Сформируйте файл поставки, | ||
+ | |||
+ | Вернемся к инструменту защиты конфигураций. | ||
+ | - Создайте новый образ конфигурации. Укажите путь к файлу конфигурации " | ||
+ | - Откройте образ конфигурации. В нем будет указан один программный модуль - КотыСервер.{{ : | ||
+ | - Откройте модуль " | ||
+ | - Сохраните изменения и вернитесь на начальную страницу. | ||
+ | - В журнале поставок напротив образа конфигурации нажмите на гиперссылку " | ||
+ | |||
+ | ===== Проверка результатов ===== | ||
+ | |||
+ | После выполнения всех этапов осталось проверить полученные результаты. | ||
+ | - Создайте новую информационную базу и загрузите в нее копию базы " | ||
+ | - Обновите конфигурацию информационной базы, загрузив ее из файла " | ||
+ | - Убедитесь, | ||
+ | - Запустите информационную базу в режиме предприятия и попробуйте открыть один из элементов справочника " | ||
+ | |||
+ | Чтобы пользователь мог получить лицензионный ключ потребуется добавить форму регистрации. | ||
+ | - Откройте модуль управляемого приложения и добавьте в него код следующего содержания: | ||
+ | Процедура ПриНачалеРаботыСистемы() | ||
+ | |||
+ | ИнициализироватьСистемуЛицензирования(" | ||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | Процедура ПриЗавершенииРаботыСистемы(Отказ, | ||
+ | |||
+ | ЗавершитьРаботуСистемыЛицензирования(" | ||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | |||
+ | //////////////////////////////////////////////////////////////////////////////// | ||
+ | |||
+ | Процедура ИнициализироватьСистемуЛицензирования(НаименованиеКонфигурации) | ||
+ | |||
+ | Попытка | ||
+ | |||
+ | МИКО_Лицензирование.НачатьРаботу(НаименованиеКонфигурации); | ||
+ | |||
+ | Исключение | ||
+ | |||
+ | ПараметрыФормы = Новый Структура; | ||
+ | ПараметрыФормы.Вставить(" | ||
+ | ПараметрыФормы.Вставить(" | ||
+ | |||
+ | ОткрытьФорму(" | ||
+ | |||
+ | КонецПопытки; | ||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | Процедура ЗавершитьРаботуСистемыЛицензирования(НаименованиеКонфигурации) | ||
+ | |||
+ | МИКО_Лицензирование.ЗавершитьРаботу(НаименованиеКонфигурации); | ||
+ | |||
+ | КонецПроцедуры</ | ||
+ | - Обновите и запустите информационную базу. При первом запуске появится окно регистрации продукта. {{ : | ||
+ | - Нажмите кнопку " | ||
+ | - Нажмите кнопку " | ||
+ | - Убедитесь, | ||
+ | - Завершите работу с программой 1С. Фича будет освобождена, |
stepbystep/protect1c.txt · Последнее изменение: 2024/01/23 15:06 — 127.0.0.1