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

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


stepbystep:protectext1c

Шаг за шагом: защита расширения конфигурации 1С

В общем случае для защиты своей конфигурации 1С понадобится:

  • создать продукт в своем личном кабинете;
  • определить способ лицензирования продукта - по количеству пользователей или хостов;
  • установить на свой компьютер инструмент для выполнения процедуры защиты продукта;
  • добавить в продукт интерактивную форму активации продукта и вспомогательные модули системы лицензирования.

В данной инструкции рассмотрим всю процедуру по шагам на примере простого расширения конфигурации 1С. . Для выдачи лицензий на работу с ней будем использовать демо-доступ к личному кабинету (адрес, логин и пароль высылаются на электронную почту после регистрации).

Для удобства также существует видеоинструкция на YouTube

Обзор демонстрационной базы

Для примера будем использовать конфигурацию для учета домашних животных.

  1. Скачайте файл демонстрационной базы «КошкинДом.dt» (ссылка в электронном письме).
  2. Создайте новую информационную базу из загрузите в нее информационную базу из файла «КошкинДом.dt».
    Структура конфигурации имеет следующий вид. Центральным объектом конфигурации является справочник «Котики», в котором содержится вся информация о животных. В примере мы будем выгружать данные этого справочника в XML-файл при помощи расширения.
  3. Перейдите к расширению «Экспорт котов». Для этого выполните: «Конфигурация» → «Расширения конфигурации». В появившемся окне расширений конфигурации будет расширение «ЭкспортКотов». Нажмите «Открыть конфигурацию». Откроется окно конфигурации расширения. Единственный объект, который добавляет расширение - это форма списка «Экспорт_ФормаСписка».
  4. Откройте форму списка справочника. На форме расположена кнопка экспорта, которая вызывает диалоговое окно сохранения файла и формирует его содержимое. Код формирования файла расположен в модуле менеджера справочника:
    Процедура ЭкспортКотов(ПолноеИмяФайла) Экспорт
    	
    	Запрос = Новый Запрос;
    	Запрос.Текст = 
    		"ВЫБРАТЬ
    		|	Котики.Код КАК Код,
    		|	Котики.Кличка КАК Кличка,
    		|	Котики.Порода КАК Порода,
    		|	Котики.Окрас КАК Окрас
    		|ИЗ
    		|	Справочник.Котики КАК Котики";
    	
    	РезультатЗапроса = Запрос.Выполнить();
    	ТаблицаКотов = РезультатЗапроса.Выгрузить();
    	
    	ФайлXML = Новый ЗаписьXML;
    	ФайлXML.ОткрытьФайл(ПолноеИмяФайла);
    	ФайлXML.ЗаписатьОбъявлениеXML();
    	
    	ФайлXML.ЗаписатьНачалоЭлемента("Коты");
    	
    	Для Каждого СтрокаТаблицы Из ТаблицаКотов Цикл
    	
    		ФайлXML.ЗаписатьНачалоЭлемента("Кот");
    		
    		ФайлXML.ЗаписатьАтрибут("Код",    СтрокаТаблицы.Код);
    		ФайлXML.ЗаписатьАтрибут("Порода", Строка(СтрокаТаблицы.Порода));
    		ФайлXML.ЗаписатьАтрибут("Окрас",  СтрокаТаблицы.Окрас);
    		
    		ФайлXML.ЗаписатьТекст(СтрокаТаблицы.Кличка);
    		
    		ФайлXML.ЗаписатьКонецЭлемента();
    		
    	КонецЦикла;
    	
    	ФайлXML.ЗаписатьКонецЭлемента();
    	ФайлXML.Закрыть();
    	
    КонецПроцедуры
  5. Код этого модуля мы будем защищать. Установите на него произвольный пароль командой главного меню «Текст» → «Установить пароль» (например, 123).
  6. Сохраните изменения и обновите конфигурацию базы данных.
  7. Выгрузите расширение в файл с именем «ЭкспортКотов.cfe».

Регистрация продукта в личном кабинете

Фича - это та функциональная опция программы, которая подлежит лицензированию. Программный модуль, обработка, а также вся конфигурация 1С в целом могут является фичей.
Продукт - это минимально допустимый набор функциональных опций, который мы предлагаем клиенту как готовое решение. Продукт может состоять как из одной так и из нескольких фич, в зависимости от сложности лицензируемого решения.

В данном примере не будем выделять отдельные функции конфигурации, поэтому в продукте будет одна фича и лицензирование по количеству пользователей работающих с конфигурацией. Перейдем к настройке продукта в личном кабинете разработчика.

  1. Откройте личный кабинет и перейдите на страницу фич.
  2. Добавьте новую фичу. В качестве названия укажите «Экспорт котов». Идентификатор фичи можно указать произвольный. Некоторые данные (они будут выделены синим цветом) необходимо будет повторить в инструменте защиты конфигураций.
  3. Далее перейдите к странице продуктов. Добавьте новый продукт «Экспорт котов на 1 хост». В продукт добавьте созданную ранее фичу. Способ лицензирования - на хост.
  4. Сохраните продукт, идентификатор будет сгенерирован автоматически.

Настройка инструмента защиты

Настроим инструмент защиты конфигураций (содержится электронном письме).

  1. Создайте новую информационную базу, загрузите в нее конфигурацию из файла «МИКО_ЗащитаРасширений.cf». Запустите ее в режиме «1С:Предпритие».
  2. Заполните в настройках префикс ключ и код поставщика (vendor code). Персональные ключи разработчика указаны в настройках личного кабинета.
  3. В списке фич добавьте новую, с тем же кодом и наименованием, что и в личном кабинете.
  4. В пункте «Компоненты» подключите компонент закрытого модуля «МИКО_КомпонентЗакрытогоМодуля_DEMO.zip» (содержится в электронном письме).
  5. Перейдите к списку расширений и добавьте новое. В качестве файла расширения укажите «ЭкспортКотов.cfe», созданный ранее. Дождитесь завершения анализа конфигурации расширения, по окончанию будет сформирован образ конфигурации.
  6. Откройте созданный образ конфигурации. В дереве метаданных будут отображены те программные модули, содержание которых было скрыто, в нашем случае это модуль менеджера справочника «Котики».
  7. Выберите модуль менеджера справочника «Котики». Рядом отобразятся процедуры и функции этого модуля.
  8. Установите в соответствие процедуре «ЭкспортКотов» фичу «Экспорт котов».
  9. Сохраните изменения.

Чтобы пользователи могли активировать ключи или использовать триальный период, заполним данные о продукте.

  1. Откройте конфигурацию расширения «Экспорт котов».
  2. Заполните поле «Основная функция (фича)», указав ту фичу, доступность которой будет проверятся системой при запуске расширения. В этом примере у нас одна фича, ее и укажем.
  3. Заполните поле «Идентификатор триального продукта», указав идентификатор ранее созданного в личном кабинете продукта.
  4. Сохраните изменения.

Защита и проверка результатов

После выполнения настройки, можно установить защиту на расширение.

  1. Перейдите в раздел «Установка защиты».
  2. Выберите конфигурацию и ее образ в соответствующих полях.
  3. Укажите путь к защищаемому файлу расширения (выберем тот же файл «ЭкспортКотов.cfe»).
  4. Нажмите кнопку «Установить защиту» и дождитесь окончанию процедуры. В результате будет сформирован новый файл «ЭкспортКотов.protect.cfe».

Осталось проверить полученные результаты.

  1. Откройте в конфигураторе информационную базу, из которой вы выгружали расширение «ЭкспортКотов» на этапе «Обзор демонстрационной базы». Откройте «Расширения конфигурации».
  2. Загрузите конфигурацию расширения из файла «ЭкспортКотов.protect.cfe» заменив оригинал.
  3. Отключите безопасный режим работы расширения, если он был у вас был включен
  4. Убедитесь, что в конфигурации расширения появились новые объекты системы лицензирования, а текст защищаемого модуля стал недоступен.

  5. Следующий раздел выполняете в этой же конфигурации.

Настройка захвата основной фичи

Захват основной фичи добавлен в функционал и будет доступен при работе инструментом защиты 1.2.2

Теперь нужно внести изменения в получившуюся конфигурацию, для того чтобы при ее запуске захватывалась основная фича создавалась пользовательская сессия.

1. Элемент нумерованного списка Элемент ненумерованного спискаВ основной конфигурации (а не в расширении) добавьте общий модуль с названием «Переопределяемый» (обращаю внимание, что название модуля должно быть именно таким). В настройках модуля должен быть флажок только «Сервер».
2. Внесите в модуль следующий код

Процедура ЛицензируемыеПродукты(Продукты) Экспорт
	
	СтруктураДляЗапуска = Новый Структура;
	
	СтруктураДляЗапуска.Вставить("Наименование",                    "Экспорт котов");
	
	СтруктураДляЗапуска.Вставить("ПрефиксРасширения",	  	 "Экспорт_");
	
	СтруктураДляЗапуска.Вставить("ПрефиксКлюч",                     "DEMO");
	
	СтруктураДляЗапуска.Вставить("ИдентификаторФичи",               "102");
	
	СтруктураДляЗапуска.Вставить("ИдентификаторТриальногоПродукта", "96");
	
	Продукты.Добавить(СтруктураДляЗапуска);
	
КонецПроцедуры

где значения структуры, соответствующие ключам «Наименование», «ПрефиксРасширения», «ПрефиксКлюч», «ИдентификаторФичи», «ИдентификаторТриальногоПродукта» возьмите из: Расширение «ЭкспортКотов» → Общие формы → «Экспорт_РегистрацияПродукта» → модуль формы → Функция «ОписаниеПродукта()»

3. В основной конфигурации откройте модуль управляемого приложения и добавьте в него следующий код.

Процедура ПриНачалеРаботыСистемы()
     
    ИнициализироватьСистемуЛицензирования("Экспорт котов");
     
КонецПроцедуры
 
Процедура ПриЗавершенииРаботыСистемы(Отказ, ТекстПредупреждения)
     
    ЗавершитьРаботуСистемыЛицензирования("Экспорт котов");
     
КонецПроцедуры
 
 
////////////////////////////////////////////////////////////////////////////////
 
Процедура ИнициализироватьСистемуЛицензирования(НаименованиеКонфигурации)
     
	Попытка
         
		Экспорт_Лицензирование.НачатьРаботу(НаименованиеКонфигурации);
	
    Исключение
         
        ПараметрыФормы = Новый Структура;
        ПараметрыФормы.Вставить("НаименованиеПродукта", НаименованиеКонфигурации);
        ПараметрыФормы.Вставить("ОписаниеОшибки",       ИнформацияОбОшибке().Описание);
         
        ОткрытьФорму("ОбщаяФорма.Экспорт_РегистрацияПродукта", ПараметрыФормы);
         
    КонецПопытки;
                                                  
КонецПроцедуры
 
Процедура ЗавершитьРаботуСистемыЛицензирования(НаименованиеКонфигурации)
     
    Экспорт_Лицензирование.ЗавершитьРаботу(НаименованиеКонфигурации);
     
КонецПроцедуры

где параметр передающийся в процедуры «ИнициализироватьСистемуЛицензирования» «ЗавершитьРаботуСистемыЛицензирования» должен соответствовать значению ключа «Наименование» структуры «СтруктураДляЗапуска» в процедуре модуля «Переопределяемый».
4. Запустите конфигурацию 1С в пользовательском режиме. При первом запуске появится предупреждение безопасности. Утвердительно ответьте на него, и запустите конфигурацию заново.
5. Нажмите «Регистрация продукта». При первом запуске появится окно регистрации продукта.
6. Нажмите кнопку «Перейти к регистрации клиента…» и заполните анкету нового клиента. 7. Нажмите кнопку «Зарегистрировать». Если данные введены корректно, то система выдаст новый лицензионный ключ. Все выданные ключи можно увидеть в соответствующем разделе личного кабинета разработчика (фильтр должен быть заполнен). 8. Проверим, что расширение работает. Откройте справочник «Котики» и нажмите кнопку «Экспорт…». Убедитесь, что файл сформировался. При этом будет выполнена привязка лицензионного ключа к текущему хосту, что можно проверить в разделе «Монитор сессий» личного кабинета разработчика (фильтр должен быть заполнен).

stepbystep/protectext1c.txt · Последнее изменение: 2024/01/23 15:06 — 127.0.0.1