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

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


stepbystep:protect1c

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
stepbystep:protect1c [2020/04/07 12:11] – внешнее изменение 127.0.0.1stepbystep:protect1c [2024/01/23 15:06] (текущий) – внешнее изменение 127.0.0.1
Строка 8: Строка 8:
  
 Далее рассмотрим всю процедуру по шагам. Создадим простую конфигурацию 1С, а для выдачи лицензий на работу с ней  будем использовать демо-доступ к личному кабинету. Адрес, логин и пароль высылаются на электронную почту после регистрации. Далее рассмотрим всю процедуру по шагам. Создадим простую конфигурацию 1С, а для выдачи лицензий на работу с ней  будем использовать демо-доступ к личному кабинету. Адрес, логин и пароль высылаются на электронную почту после регистрации.
 +<note>Для удобства также существует [[https://www.youtube.com/watch?v=lVnr4Y0RjmE|видеоинструкция на Youtube]]</note>
  
 ===== Обзор демонстрационной базы ===== ===== Обзор демонстрационной базы =====
Строка 13: Строка 14:
 Для примера будем использовать конфигурацию для учета домашних животных. Для примера будем использовать конфигурацию для учета домашних животных.
   - Скачайте файл демонстрационной базы "КошкинДом.dt" (ссылка в электронном письме).   - Скачайте файл демонстрационной базы "КошкинДом.dt" (ссылка в электронном письме).
-  - Создайте информационную базу из загрузите в нее копию из скаченнего файла.\\ Структура конфигурации имеет следующий вид. {{ :stepbystep:21-10-2016_11-23-09.png?nolink |}} В справочнике "Котики" содержится информацию о животных. При добавлении нового животного в справочник в качестве имени можно выбрать одну из популярных кличек. Клички хранятся в регистре сведений, а код для выборки записей из этого регистра расположен в общем модуле "КотыСервер"+  - Создайте информационную базу из загрузите в нее копию из скачанного файла.\\ Структура конфигурации имеет следующий вид. {{ :stepbystep:21-10-2016_11-23-09.png?nolink |}} В справочнике "Котики" содержится информацию о животных. При добавлении нового животного в справочник в качестве имени можно выбрать одну из популярных кличек. Клички хранятся в регистре сведений, а код для выборки записей из этого регистра расположен в общем модуле "КотыСервер"
-  - Откройте модуль формы элемента справочника "Котики". Модуль содержит код для заполнения выпадающего списка "Кличка" известными именами котов. Выборка элементов для списка выполняется в общем модуле "КотыСервер".<code>&НаСервереБезКонтекста+  - Откройте модуль формы элемента справочника "Котики". Модуль содержит код для заполнения выпадающего списка "Кличка" известными именами котов. Выборка элементов для списка выполняется в общем модуле "КотыСервер".<sxh>&НаСервереБезКонтекста
 Функция ПолучитьСписокКличек(Пол) Функция ПолучитьСписокКличек(Пол)
   
Строка 37: Строка 38:
  Элементы.Кличка.СписокВыбора.ЗагрузитьЗначения(КличкиКотов);  Элементы.Кличка.СписокВыбора.ЗагрузитьЗначения(КличкиКотов);
   
-КонецПроцедуры</code+КонецПроцедуры</sxh
-  - Перейдите к модулю "КотыСервер". Выборка кличек выполняется простым запросом с одним параметром. Код этого модуля будет в дальнейшем скрыт, а функция "ПолучитьСписокКличек" будет требовать наличие лицензии на продукт.<code>Функция ПолучитьКличкиКотов(Пол) Экспорт+  - Перейдите к модулю "КотыСервер". Выборка кличек выполняется простым запросом с одним параметром. Код этого модуля будет в дальнейшем скрыт, а функция "ПолучитьСписокКличек" будет требовать наличие лицензии на продукт.<sxh>Функция ПолучитьКличкиКотов(Пол) Экспорт
   
  Запрос = Новый Запрос;  Запрос = Новый Запрос;
Строка 56: Строка 57:
  Возврат МассивКличек;  Возврат МассивКличек;
      
-КонецФункции</code>+КонецФункции</sxh>
  
 ===== Регистрация продукта в личном кабинете ===== ===== Регистрация продукта в личном кабинете =====
  
-<note tip>**Фича** - это та функциональная опция программы, которая подлежит лицензированию. Программный модуль, обработка, а также вся конфигурация 1С в целом могут являтся фичей. \\+<note tip>**Фича** - это та функциональная опция программы, которая подлежит лицензированию. Программный модуль, обработка, а также вся конфигурация 1С в целом могут являться фичей. \\
 **Продукт** - это минимально допустимый набор функциональных опций, который мы предлагаем клиенту как готовое решение. Продукт может состоять как из одной так и из нескольких фич, в зависимости от сложности лицензируемого решения.</note> **Продукт** - это минимально допустимый набор функциональных опций, который мы предлагаем клиенту как готовое решение. Продукт может состоять как из одной так и из нескольких фич, в зависимости от сложности лицензируемого решения.</note>
 В данном примере не будем выделять отдельные функции конфигурации, поэтому в продукте будет одна фича и лицензирование по количеству пользователей работающих с конфигурацией. В данном примере не будем выделять отдельные функции конфигурации, поэтому в продукте будет одна фича и лицензирование по количеству пользователей работающих с конфигурацией.
Строка 72: Строка 73:
 ===== Встраивание подсистемы лицензирования ===== ===== Встраивание подсистемы лицензирования =====
  
-Настроим инструмент защиты конфигураций (ссылка в электронном письме). +Настроим **инструмент защиты** конфигураций **МИКО_ЗащитаКонфигураций** (ссылка в электронном письме). 
-  - Укажите в настройках код поставщика (vendor code). Персональный код указан в настройках личного кабинета. Идентификатор разработчика генерируется автоматически и понадобится позже.{{ :stepbystep:21-10-2016_11-53-26.png?nolink |}}{{ :stepbystep:dn_arrow.png?nolink&48 |}}{{ :stepbystep:21-10-2016_11-56-52.png?nolink |}}+  - Создайте новую информационную базу, откройте ее в конфигураторе, загрузите конфигурацию из файла "**МИКО_ЗащитаКонфигураций.cf**", запустите в режиме 1С:Предпритие. 
 +  - В разделе "**Настройки**" вставьте ваши "**Код поставщика (vendor code)**" и "**Префикс-ключ**" из личного кабинета. {{ :stepbystep:21-10-2016_11-53-26.png?nolink |}}{{ :stepbystep:dn_arrow.png?nolink&48 |}}{{ :stepbystep:21-10-2016_11-56-52.png?nolink |}}
   - Откройте список фич и добавьте новую, с тем же кодом и наименованием, что и в личном кабинете.{{ :stepbystep:21-10-2016_12-03-34.png?nolink |}}   - Откройте список фич и добавьте новую, с тем же кодом и наименованием, что и в личном кабинете.{{ :stepbystep:21-10-2016_12-03-34.png?nolink |}}
-  - Создайте новую конфигурацию. Укажите имя конфигурации 1С и каталог файлов поставки (например, H:\tmp\КошкинДом\Поставка).{{ :stepbystep:21-10-2016_12-07-08.png?nolink |}} +  - Перейдите в раздел "**Конфигурации**"Создайте новую конфигурацию. Укажите имя конфигурации 1С и каталог файлов поставки. Сохраните изменения. Идентификатор продукта будет сформирован автоматически и понадобится позже. 
-  - Сохраните изменения. Идентификатор продукта будет сформирован автоматически и понадобится позже.+{{ :stepbystep:soadanie_konfiguracii.png?nolink |}} \\ 
 Перейдем к защищаемой конфигурации 1С. Сперва нужно перенести в конфигурацию объекты системы лицензирования. Перейдем к защищаемой конфигурации 1С. Сперва нужно перенести в конфигурацию объекты системы лицензирования.
-  В конфигураторе защищаемой конфигурации откройте файл МИКО_ЗащитаКонфигураций.cf в режиме сравнения и объединения+ 
-  - Перенесите объекты (общие модули, макеты, формы) подсистемы "МИКО_СистемаЛицензирования" в защищаемую конфигурацию.+  Откройте в конфигураторе защищаемую конфигурацию, которую вы создали на этапе "Обзор демонстрационной базы". Выполните "**Конфигурация**" -> "**Сравнить и объединить с конфигурацией из файла**", выберите файл "МИКО_ЗащитаКонфигураций.cf"
 +  - Перенесите объекты (общие модули, макеты, формы) подсистемы "МИКО_СистемаЛицензирования" в защищаемую конфигурацию. Для этого в окне основной конфигурации снимите флажок с корневого элемента, затем выполните "**Действия**" -> "**Отметить по подсистемам файла**". Установите флажок только у подсистемы "МИКО_СистемаЛицензирования". Выполните "**Установить**" -> "**Выполнить**". От сохранения настроек объединения конфигураций в xml-файл откажитесь.  
 +{{ :stepbystep:obedinenie_konfigaraciy.png?nolink |}} 
   - Откройте общий модуль "МИКО_ЛицензированиеПереопределяемый".   - Откройте общий модуль "МИКО_ЛицензированиеПереопределяемый".
-  - Заполнение тело процедуры "ЛицензируемыеПродукты", указав наименование продукта и идентификаторы, полученные на предыдущих шагах (обведены синим цветом)<code>Процедура ЛицензируемыеПродукты(Продукты) Экспорт+  - Заполнение тело процедуры "ЛицензируемыеПродукты", указав наименование продукта и идентификаторы, полученные на предыдущих шагах (обведены синим цветом)<sxh>Процедура ЛицензируемыеПродукты(Продукты) Экспорт
   
  ОписаниеПродукта = Новый Структура;  ОписаниеПродукта = Новый Структура;
  ОписаниеПродукта.Вставить("Наименование",                    "Кошкин дом");  ОписаниеПродукта.Вставить("Наименование",                    "Кошкин дом");
- ОписаниеПродукта.Вставить("ИдентификаторКонфигурации",       "9cf50201-976d-11e6-810f-0050568123f9");+ ОписаниеПродукта.Вставить("ИдентификаторКонфигурации",       "b7ce16d5-e39f-11eb-bb18-005056882bf6");
  ОписаниеПродукта.Вставить("ПрефиксКлюч",                     "DEMO");  ОписаниеПродукта.Вставить("ПрефиксКлюч",                     "DEMO");
- ОписаниеПродукта.Вставить("ИдентификаторФичи",               "1"); + ОписаниеПродукта.Вставить("ИдентификаторФичи",               "13"); 
- ОписаниеПродукта.Вставить("ИдентификаторТриальногоПродукта", "25");+ ОписаниеПродукта.Вставить("ИдентификаторТриальногоПродукта", "74");
   
  Продукты.Добавить(ОписаниеПродукта);  Продукты.Добавить(ОписаниеПродукта);
   
-КонецПроцедуры</code+КонецПроцедуры</sxh
-  - В этом же модуле нужно указать местоположение макетов внешних компонент. В данном примере компоненты подключаются к демо-серверу лицензирования. Для подключения к собственным серверам требуются персонализированные под разработчика компоненты, получить их можно по запросу. <code> +  - В этом же модуле нужно указать местоположение макетов внешних компонент. В данном примере компоненты подключаются к демо-серверу лицензирования. Для подключения к собственным серверам требуются персонализированные под разработчика компоненты, получить их можно по запросу у фирмы [[http://protect.miko.ru|"МИКО"]]. В данном демонстрационном примере выполните следующее: в дереве объектов конфигурации в группе "**Общие макеты**" загрузите в макет "**МИКО_КомпонентЗакрытогоМодуля_DEMO**" компонент "**МИКО_КомпонентЗакрытогоМодуля_DEMO.zip**", который выслан вам в письме. Архив не распаковывайте. <sxh>Процедура ПриИнициализацииЗакрытогоМодуля(ПрефиксКлюч, МестоположениеКомпонента) Экспорт
-Процедура ПриИнициализацииЗакрытогоМодуля(ПрефиксКлюч, МестоположениеКомпонента) Экспорт+
   
  Если ПрефиксКлюч = "DEMO" Тогда  Если ПрефиксКлюч = "DEMO" Тогда
Строка 105: Строка 109:
   
  Если ПрефиксКлюч = "DEMO" Тогда  Если ПрефиксКлюч = "DEMO" Тогда
- МестоположениеКомпонента = "ОбщийМакет.МИКО_КомпонентРегистрацииПродукта_DEMO";+ МестоположениеКомпонента = "ОбщийМакет.МИКО_КомпонентЗакрытогоМодуля_DEMO";
  КонецЕсли;  КонецЕсли;
   
-КонецПроцедуры</code+КонецПроцедуры 
-  - Для работы закрытого модуля потребуется лицензионный ключ. Система будет периодически запрашивать ключ, а также может выдать новый при регистрации продукта.<code>Процедура ПриЧтенииЛицензионногоКлюча(ИдентификаторКонфигурации, ЛицензионныйКлюч) Экспорт+</sxh
 +  - Для работы закрытого модуля потребуется лицензионный ключ. Система будет периодически запрашивать ключ, а также может выдать новый при регистрации продукта. В процедурах "ПриЧтенииЛицензионногоКлюча", "ПриЗаписиЛицензионногоКлюча" переменную "ИдентификаторКонфигурации" также поменяйте на ваш идентификатор конфигурации. <sxh>Процедура ПриЧтенииЛицензионногоКлюча(ИдентификаторКонфигурации, ЛицензионныйКлюч) Экспорт
   
- Если ИдентификаторКонфигурации= "9cf50201-976d-11e6-810f-0050568123f9" Тогда + Если ИдентификаторКонфигурации= "b7ce16d5-e39f-11eb-bb18-005056882bf6" Тогда 
- ЛицензионныйКлюч = Константы.КошкинДомЛицензионныйКлюч.Получить();+ ЛицензионныйКлюч = Константы.КотыЛицензионныйКлюч.Получить();
  КонецЕсли;  КонецЕсли;
   
Строка 119: Строка 124:
 Процедура ПриЗаписиЛицензионногоКлюча(ИдентификаторКонфигурации, ЛицензионныйКлюч) Экспорт Процедура ПриЗаписиЛицензионногоКлюча(ИдентификаторКонфигурации, ЛицензионныйКлюч) Экспорт
   
- Если ИдентификаторКонфигурации= "9cf50201-976d-11e6-810f-0050568123f9" Тогда + Если ИдентификаторКонфигурации= "b7ce16d5-e39f-11eb-bb18-005056882bf6" Тогда 
- Константы.КошкинДомЛицензионныйКлюч.Установить(ЛицензионныйКлюч);+ Константы.КотыЛицензионныйКлюч.Установить(ЛицензионныйКлюч);
  КонецЕсли;  КонецЕсли;
   
-КонецПроцедуры</code>+КонецПроцедуры</sxh> 
 +  - Установите пароль на текст общего модуля "КотыСервер" (например: 123) командой главного меню "**Текст**" -> "**Установить пароль**". Вместо установки пароля вы можете использовать [[protect1c:postavka|механизм создания файла поставки]], при помощи которого вы исключите из поставки текст защищаемого модуля. Но это более долгий и трудоемкий процесс. 
   - Обновите конфигурацию базы данных.   - Обновите конфигурацию базы данных.
-  - Настройте поставку конфигурации так, чтобы исходный текст модуля "КотыСервер" был исключен из конфигурации+  - Сохраните конфигурацию в файл "**КошкинДом.cf**"
-  - Сформируйте файл поставкиразместив его по пути "H:\tmp\КошкинДом\Поставка\1.0\КошкинДом.cf".+   
 +===== Дальнейшая настройка в инструменте защиты =====
  
 Вернемся к инструменту защиты конфигураций. Вернемся к инструменту защиты конфигураций.
-  - Создайте новый образ конфигурации. Укажите путь к файлу конфигурации "H:\tmp\КошкинДом\Поставка\1.0\КошкинДом.cf"+  - Создайте новый образ конфигурации. Укажите путь к файлу сохраненной конфигурации "**КошкинДом.cf**{{ :stepbystep:soadanie_obraza.png?nolink |}} 
-  - Откройте образ конфигурации. В нем будет указан один программный модуль - КотыСервер.{{ :stepbystep:26-10-2016_22-36-35.png?nolink |}} +  - Откройте образ конфигурации. В нем будет указан один программный модуль - КотыСервер. {{ :stepbystep:soadanie_obraza_nezashishenniy_modul.png?nolink |}} 
-  - Откройте модуль "КотыСервер" и создайте новую защитную маску. Для функции "ПолучитьКличкиКотов" укажите фичу "Учет котов".{{ :stepbystep:26-10-2016_22-47-43.png?nolink |}}+  - Откройте модуль "КотыСервер" и создайте новую защитную маску. Для функции "ПолучитьКличкиКотов" укажите фичу "Учет котов". {{ :stepbystep:soadanie_zashitnoy_maskil.png?nolink |}}
   - Сохраните изменения и вернитесь на начальную страницу.   - Сохраните изменения и вернитесь на начальную страницу.
-  - В журнале поставок напротив образа конфигурации нажмите на гиперссылку "Установить защиту". После завершения работы системы установки защиты в каталоге поставки появится файл "КошкинДом.protect.cf".+  - В журнале поставок напротив образа конфигурации нажмите на гиперссылку "Установить защиту". После завершения работы системы установки защиты в каталоге поставки появится файл "**КошкинДом.protect.cf**".
  
 ===== Проверка результатов ===== ===== Проверка результатов =====
  
 После выполнения всех этапов осталось проверить полученные результаты. После выполнения всех этапов осталось проверить полученные результаты.
-  - Создайте новую информационную базу и загрузите в нее копию базы "Кошкин Дом" из файла ошкинДом.dt"+  - Создайте новую информационную базу и загрузите в нее базу из файла "**КошкинДом.dt**(изначальная информационная база, поставляемая вам в дистрибутиве)
-  - Обновите конфигурацию информационной базы, загрузив ее из файла "КошкинДом.protect.cf".+  - Выполните "**Конфигурация**" -> "**Сравнить и объединить с конфигурацией из файла**". Выберите файл конфигурации "**КошкинДом.protect.cf**". Нажмите "Выполнить".
   - Убедитесь, что текст модуля "КотыСервер" стал недоступен.   - Убедитесь, что текст модуля "КотыСервер" стал недоступен.
   - Запустите информационную базу в режиме предприятия и попробуйте открыть один из элементов справочника "Котики". На экране будет сообщение об ошибке: "Для выполнения операции требуется лицензионный ключ". {{ :stepbystep:18-11-2016_10-36-47.png?nolink |}}   - Запустите информационную базу в режиме предприятия и попробуйте открыть один из элементов справочника "Котики". На экране будет сообщение об ошибке: "Для выполнения операции требуется лицензионный ключ". {{ :stepbystep:18-11-2016_10-36-47.png?nolink |}}
  
 Чтобы пользователь мог получить лицензионный ключ потребуется добавить форму регистрации. Чтобы пользователь мог получить лицензионный ключ потребуется добавить форму регистрации.
-  - Откройте модуль управляемого приложения и добавьте в него код следующего содержания: <code>+  - Откройте модуль управляемого приложения и добавьте в него код следующего содержания: <sxh>
 Процедура ПриНачалеРаботыСистемы() Процедура ПриНачалеРаботыСистемы()
   
Строка 182: Строка 189:
  МИКО_Лицензирование.ЗавершитьРаботу(НаименованиеКонфигурации);  МИКО_Лицензирование.ЗавершитьРаботу(НаименованиеКонфигурации);
   
-КонецПроцедуры</code>+КонецПроцедуры</sxh>
   - Обновите и запустите информационную базу. При первом запуске появится окно регистрации продукта. {{ :stepbystep:18-11-2016_11-33-48.png?nolink |}}   - Обновите и запустите информационную базу. При первом запуске появится окно регистрации продукта. {{ :stepbystep:18-11-2016_11-33-48.png?nolink |}}
   - Нажмите кнопку "Перейти к регистрации клиента..." и заполните анкету нового клиента. {{ :stepbystep:18-11-2016_11-34-07.png?nolink |}}   - Нажмите кнопку "Перейти к регистрации клиента..." и заполните анкету нового клиента. {{ :stepbystep:18-11-2016_11-34-07.png?nolink |}}
Строка 188: Строка 195:
   - Убедитесь, что элементы справочника "Котики" теперь открываются. При этом будет создана сессия с сервером лицензирования и произведен захват фичи, что можно проверить в разделе "Монитор сессий" личного кабинета разработчика (фильтр должен быть заполнен). {{ :stepbystep:18-11-2016_13-53-45.png?nolink |}}   - Убедитесь, что элементы справочника "Котики" теперь открываются. При этом будет создана сессия с сервером лицензирования и произведен захват фичи, что можно проверить в разделе "Монитор сессий" личного кабинета разработчика (фильтр должен быть заполнен). {{ :stepbystep:18-11-2016_13-53-45.png?nolink |}}
   - Завершите работу с программой 1С. Фича будет освобождена, а сессия завершена.   - Завершите работу с программой 1С. Фича будет освобождена, а сессия завершена.
 +
 +===== Примечание =====
 +В ваших конфигурациях модули, которые вы будете защищать должны иметь флажки "**Сервер**", "**Вызов сервера**". Флажок "**Клиент**" должен быть снят.
 +{{ :stepbystep:flajok_server.png?nolink |}}
 +
 +В защищаемых вами модулях должны быть какие-либо строковые литералы. Например
 +
 +{{ :stepbystep:strokovie_literali.png?nolink |}}
stepbystep/protect1c.1586250710.txt.gz · Последнее изменение: 2024/01/23 15:06 (внешнее изменение)