параметры для активации пинкода через соответствие
This commit is contained in:
parent
f85ff1df02
commit
7dd339b37c
@ -6,7 +6,7 @@
|
||||
Попытка
|
||||
СтрокаДата = Прав(СтрокаДата, 10);
|
||||
МассивДата = Новый Массив;
|
||||
МассивДата = СтрРазделить(СтрокаДата, ".");
|
||||
МассивДата = СтрРазделить(СтрокаДата, ".", Ложь);
|
||||
Возврат Дата(Строка(МассивДата[2]) + Строка(МассивДата[1]) + Строка(МассивДата[0]));
|
||||
Исключение
|
||||
Возврат Дата(1899, 12, 30);
|
||||
@ -47,7 +47,7 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
мПинЛицензия = СтрРазделить(ПинЛицензия, "-");
|
||||
мПинЛицензия = СтрРазделить(ПинЛицензия, "-", Ложь);
|
||||
Если мПинЛицензия.Количество() < 2 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
@ -108,11 +108,36 @@
|
||||
// общ
|
||||
Р.Вставить("License generation date:", "ДатаАктивации");
|
||||
Р.Вставить("Distribution kit registration number:", "РегистрационныйНомер");
|
||||
Р.Вставить("DistributionKitRegistrationNumber:", "РегистрационныйНомер");
|
||||
Р.Вставить("Product code:", "КодПродукта");
|
||||
Р.Вставить("ProductCode:", "КодПродукта");
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(Р);
|
||||
КонецФункции
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция Соответсвие_АктивацияПинКода()
|
||||
Р = Новый Соответствие;
|
||||
Р.Вставить("Имя", "--first-name");
|
||||
Р.Вставить("Отчество", "--middle-name");
|
||||
Р.Вставить("Фамилия", "--last-name");
|
||||
Р.Вставить("EMail", "--email");
|
||||
Р.Вставить("Компания", "--company");
|
||||
Р.Вставить("Страна", "--country");
|
||||
Р.Вставить("Индекс", "--zip-code");
|
||||
Р.Вставить("Город", "--town");
|
||||
Р.Вставить("Регион", "--region");
|
||||
Р.Вставить("Район", "--district");
|
||||
Р.Вставить("Улица", "--street");
|
||||
Р.Вставить("Дом", "--house");
|
||||
Р.Вставить("Строение", "--building");
|
||||
Р.Вставить("Квартира", "--apartment");
|
||||
Р.Вставить("НомерЛицензии", "--serial");
|
||||
Р.Вставить("НовыйПинКод", "--pin");
|
||||
Р.Вставить("ПинКод", "--previous-pin");
|
||||
Возврат Новый ФиксированноеСоответствие(Р);
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция ЗапросИнформацииОЛицезнии(ИмяЛицензии)
|
||||
СтруктураОтвета = Новый Структура("Описание, Фамилия, Имя, Отчество, EMail, Компания, Страна, Индекс, Город, Регион, Район, Улица, Дом, Строение, Квартира, ДатаАктивации, РегистрационныйНомер, КодПродукта, ТекстоваяИнформация, КоличествоЛицензий");
|
||||
@ -160,8 +185,8 @@
|
||||
Позиция_РабМест = СтрНайти(СтруктураОтвета.Описание, " рабочих мест");
|
||||
Если Позиция_РабМест > 0 Тогда
|
||||
тСтр = Лев(СтруктураОтвета.Описание, Позиция_РабМест);
|
||||
мСтр = СтрРазделить(тСтр, " ");
|
||||
СтруктураОтвета.КоличествоЛицензий = Число(мСтр[мСтр.Количество() - 1]);
|
||||
мСтр = СтрРазделить(СокрЛП(тСтр), " ", Ложь);
|
||||
СтруктураОтвета.КоличествоЛицензий = Число(СокрЛП(мСтр[мСтр.Количество() - 1]));
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураОтвета.ДатаАктивации = СтрокуВДату(СтруктураОтвета.ДатаАктивации);
|
||||
@ -240,31 +265,36 @@
|
||||
|
||||
&НаСервере
|
||||
Процедура ПовторнаяАктивацияЛицензииНаСервере(ПереданныеПараметры)
|
||||
СтруктураПараметров = Новый Структура(" НовыйПинКод,ПинКод, Описание, Фамилия, Имя, Отчество, EMail, Компания, Страна, Индекс, Город, Улица, Дом, ДатаАктивации, РегистрационныйНомер, КодПродукта, ТекстоваяИнформация, КоличествоЛицензий");
|
||||
СтруктураПараметров = Новый Структура("НовыйПинКод, ПинКод, Описание, Фамилия, Имя, Отчество, EMail, Компания, Страна, Индекс, Город, Улица, Дом, ДатаАктивации, РегистрационныйНомер, КодПродукта, ТекстоваяИнформация, КоличествоЛицензий");
|
||||
|
||||
Кавычка = Символ(34);
|
||||
|
||||
Реквизиты = Соответсвие_АктивацияПинКода();
|
||||
ОбязательныеРеквизиты = СтрРазделить("НомерЛицензии,ПинКод,НовыйПинКод", ",");
|
||||
|
||||
СтрокаПараметров = "";
|
||||
Для Каждого ТекРеквизит Из Реквизиты Цикл
|
||||
ЭтоОбязательный = Не Неопределено = ОбязательныеРеквизиты.Найти(ТекРеквизит.Ключ);
|
||||
|
||||
ЗначениеРеквизита = ПереданныеПараметры[ТекРеквизит.Ключ];
|
||||
|
||||
РеквизитЗаполнен = ЗначениеЗаполнено(ЗначениеРеквизита);
|
||||
ВыводитьРеквизит = ЭтоОбязательный ИЛИ РеквизитЗаполнен;
|
||||
|
||||
Если НЕ ВыводитьРеквизит Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ ЭтоОбязательный Тогда
|
||||
ЗначениеРеквизита = СтрШаблон("%1%2%1", Кавычка, ЗначениеРеквизита);
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаПараметров = СтрокаПараметров + СтрШаблон(" %1 %2", ТекРеквизит.Значение, ЗначениеРеквизита);
|
||||
КонецЦикла;
|
||||
|
||||
ФайлОтвет = "";
|
||||
ФайлОшибок = "";
|
||||
ИмяВременногоФайлаCMD = SPS_СоздатьСистемныйСкрипт(
|
||||
"call ring license activate" + ?(ЗначениеЗаполнено(
|
||||
ПереданныеПараметры.Имя), " --first-name " + ПереданныеПараметры.Имя, "") + ?(ЗначениеЗаполнено(
|
||||
ПереданныеПараметры.Отчество), " --middle-name " + ПереданныеПараметры.Отчество, "") + ?(ЗначениеЗаполнено(
|
||||
ПереданныеПараметры.Фамилия), " --last-name " + ПереданныеПараметры.Фамилия, "") + ?(ЗначениеЗаполнено(
|
||||
ПереданныеПараметры.EMail), " --email " + ПереданныеПараметры.EMail, "") + ?(ЗначениеЗаполнено(
|
||||
ПереданныеПараметры.Компания), " --company " + Символ(34) + СтрЗаменить(ПереданныеПараметры.Компания, Символ(
|
||||
34), "") + Символ(34), "") + ?(ЗначениеЗаполнено(ПереданныеПараметры.Страна), " --country " + Символ(34)
|
||||
+ ПереданныеПараметры.Страна + Символ(34), "") + ?(ЗначениеЗаполнено(ПереданныеПараметры.Индекс),
|
||||
" --zip-code " + ПереданныеПараметры.Индекс, "") + ?(ЗначениеЗаполнено(ПереданныеПараметры.Город), " --town "
|
||||
+ Символ(34) + ПереданныеПараметры.Город + Символ(34), "") + ?(ЗначениеЗаполнено(ПереданныеПараметры.Регион),
|
||||
" --region " + Символ(34) + ПереданныеПараметры.Регион + Символ(34), "") + ?(ЗначениеЗаполнено(
|
||||
ПереданныеПараметры.Район), " --district " + Символ(34) + ПереданныеПараметры.Район + Символ(34), "") + ?(
|
||||
ЗначениеЗаполнено(ПереданныеПараметры.Улица), " --street " + Символ(34) + ПереданныеПараметры.Улица + Символ(
|
||||
34), "") + ?(ЗначениеЗаполнено(ПереданныеПараметры.Дом), " --house " + Символ(34) + ПереданныеПараметры.Дом
|
||||
+ Символ(34), "") + ?(ЗначениеЗаполнено(ПереданныеПараметры.Строение), " --building " + Символ(34)
|
||||
+ ПереданныеПараметры.Строение + Символ(34), "") + ?(ЗначениеЗаполнено(ПереданныеПараметры.Квартира),
|
||||
" --apartment " + Символ(34) + ПереданныеПараметры.Квартира + Символ(34), "") + " --serial "
|
||||
+ ПереданныеПараметры.НомерЛицензии + " --pin " + ПереданныеПараметры.НовыйПинКод + " --previous-pin "
|
||||
+ ПереданныеПараметры.ПинКод + " --validate", ФайлОтвет, ФайлОшибок
|
||||
);
|
||||
ИмяВременногоФайлаCMD = SPS_СоздатьСистемныйСкрипт(СтрШаблон("call ring license activate %1 --validate", СтрокаПараметров), ФайлОтвет, ФайлОшибок);
|
||||
SPS_ЗапуститьСистемныйСкрипт(ИмяВременногоФайлаCMD);
|
||||
|
||||
SPS_ВыводФайлаОшибок(ФайлОшибок);
|
||||
|
@ -1,22 +1,56 @@
|
||||
&НаСервере
|
||||
&НаСервереБезКонтекста
|
||||
Функция Соответсвие_АктивацияПинКода()
|
||||
Р = Новый Соответствие;
|
||||
Р.Вставить("Имя", "--first-name");
|
||||
Р.Вставить("Отчество", "--middle-name");
|
||||
Р.Вставить("Фамилия", "--last-name");
|
||||
Р.Вставить("EMail", "--email");
|
||||
Р.Вставить("Компания", "--company");
|
||||
Р.Вставить("Страна", "--country");
|
||||
Р.Вставить("Индекс", "--zip-code");
|
||||
Р.Вставить("Город", "--town");
|
||||
Р.Вставить("Регион", "--region");
|
||||
Р.Вставить("Район", "--district");
|
||||
Р.Вставить("Улица", "--street");
|
||||
Р.Вставить("Дом", "--house");
|
||||
Р.Вставить("Строение", "--building");
|
||||
Р.Вставить("Квартира", "--apartment");
|
||||
Р.Вставить("НомерЛицензии", "--serial");
|
||||
Р.Вставить("НовыйПинКод", "--pin");
|
||||
Р.Вставить("ПинКод", "--previous-pin");
|
||||
Возврат Новый ФиксированноеСоответствие(Р);
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция АктивироватьНаСервере()
|
||||
Кавычка = Символ(34);
|
||||
|
||||
Реквизиты = Соответсвие_АктивацияПинКода();
|
||||
ОбязательныеРеквизиты = СтрРазделить("НомерЛицензии,ПинКод,НовыйПинКод", ",");
|
||||
|
||||
СтрокаПараметров = "";
|
||||
Для Каждого ТекРеквизит Из Реквизиты Цикл
|
||||
ЭтоОбязательный = Не Неопределено = ОбязательныеРеквизиты.Найти(ТекРеквизит.Ключ);
|
||||
|
||||
ЗначениеРеквизита = ЭтаФорма[ТекРеквизит.Ключ];
|
||||
|
||||
РеквизитЗаполнен = ЗначениеЗаполнено(ЗначениеРеквизита);
|
||||
ВыводитьРеквизит = ЭтоОбязательный ИЛИ РеквизитЗаполнен;
|
||||
|
||||
Если НЕ ВыводитьРеквизит Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ ЭтоОбязательный Тогда
|
||||
ЗначениеРеквизита = СтрШаблон("%1%2%1", Кавычка, ЗначениеРеквизита);
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаПараметров = СтрокаПараметров + СтрШаблон(" %1 %2", ТекРеквизит.Значение, ЗначениеРеквизита);
|
||||
КонецЦикла;
|
||||
|
||||
ФайлОтвет = "";
|
||||
ФайлОшибок = "";
|
||||
ИмяВременногоФайлаCMD = SPS_СоздатьСистемныйСкрипт(
|
||||
"call ring license activate" + ?(ЗначениеЗаполнено(Имя),
|
||||
" --first-name " + Имя, "") + ?(ЗначениеЗаполнено(Отчество), " --middle-name " + Отчество, "") + ?(
|
||||
ЗначениеЗаполнено(Фамилия), " --last-name " + Фамилия, "") + " --email " + EMail + ?(ЗначениеЗаполнено(
|
||||
Компания), " --company " + Символ(34) + СтрЗаменить(Компания, Символ(34), "") + Символ(34), "") + " --country "
|
||||
+ Символ(34) + Страна + Символ(34) + " --zip-code " + Индекс + " --town " + Символ(34) + Город + Символ(34) + ?(
|
||||
ЗначениеЗаполнено(Регион), " --region " + Символ(34) + Регион + Символ(34), "") + ?(ЗначениеЗаполнено(Район),
|
||||
" --district " + Символ(34) + Район + Символ(34), "") + ?(ЗначениеЗаполнено(Улица), " --street " + Символ(34)
|
||||
+ Улица + Символ(34), "") + ?(ЗначениеЗаполнено(Дом), " --house " + Символ(34) + Дом + Символ(34), "") + ?(
|
||||
ЗначениеЗаполнено(Строение), " --building " + Символ(34) + Строение + Символ(34), "") + ?(ЗначениеЗаполнено(
|
||||
Квартира), " --apartment " + Символ(34) + Квартира + Символ(34), "") + " --serial " + НомерЛицензии + " --pin "
|
||||
+ ПинКод + ?(ЗначениеЗаполнено(ПредыдущийПинКод), " --previous-pin " + ПредыдущийПинКод, "") + " --validate", ФайлОтвет, ФайлОшибок
|
||||
);
|
||||
SPS_ЗапуститьСистемныйСкрипт(ИмяВременногоФайлаCMD);
|
||||
ИмяВременногоФайлаCMD = SPS_СоздатьСистемныйСкрипт(СтрШаблон("call ring license activate %1 --validate", СтрокаПараметров), ФайлОтвет, ФайлОшибок);
|
||||
|
||||
SPS_ВыводФайлаОшибок(ФайлОшибок);
|
||||
фФайлОтвет = Новый Файл(ФайлОтвет);
|
||||
@ -86,10 +120,10 @@
|
||||
|
||||
Если НЕ Это_Windows Тогда
|
||||
// добавление Шебанг
|
||||
ТекстСкрипта.ЗаписатьСтроку("#!/bin/sh");
|
||||
ТекстСкрипта.ЗаписатьСтроку("");
|
||||
//ТекстСкрипта.ЗаписатьСтроку("#!/bin/sh");
|
||||
//ТекстСкрипта.ЗаписатьСтроку("");
|
||||
|
||||
// исправление кодировки вывода (для парсинга)
|
||||
// выбор языка вывода (для парсинга)
|
||||
ТекстСкрипта.ЗаписатьСтроку("export LC_ALL=en_US.UTF8");
|
||||
|
||||
// избавляемся от call
|
||||
@ -110,9 +144,7 @@
|
||||
Это_Windows = SPS_ЭтоWindows();
|
||||
|
||||
// добавляем интерпретатор чтобы запускать скрипт без "chmod +x"
|
||||
Если НЕ Это_Windows Тогда
|
||||
ИмяФайлаСкрипта = СтрШаблон("/bin/sh %1", ИмяФайлаСкрипта);
|
||||
КонецЕсли;
|
||||
ИмяФайлаСкрипта = СтрШаблон(?(Это_Windows, "cmd.exe /c %1", "/bin/sh %1"), ИмяФайлаСкрипта);
|
||||
|
||||
ЗапуститьПриложение(ИмяФайлаСкрипта, КаталогВременныхФайлов(), Истина);
|
||||
КонецПроцедуры
|
||||
|
Loading…
Reference in New Issue
Block a user