разбор информации о лицензии с помощью соответствия
This commit is contained in:
parent
ba1d8d6ab2
commit
b849ece67d
@ -142,6 +142,51 @@
|
||||
ПолучитьСписокЛицензийНаСервере();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция Соответствие_РазборИнформацииОЛицензии()
|
||||
Р = Новый Соответствие;
|
||||
|
||||
// англ
|
||||
Р.Вставить("First name:", "Имя");
|
||||
Р.Вставить("Middle name:", "Отчество");
|
||||
Р.Вставить("Last name:", "Фамилия");
|
||||
Р.Вставить("Email:", "Email");
|
||||
Р.Вставить("Company:", "Компания");
|
||||
Р.Вставить("Country:", "Страна");
|
||||
Р.Вставить("ZIP code:", "Индекс");
|
||||
Р.Вставить("Region:", "Регион");
|
||||
Р.Вставить("Town:", "Город");
|
||||
Р.Вставить("District:", "Район");
|
||||
Р.Вставить("Building:", "Строение");
|
||||
Р.Вставить("Apartment:", "Квартира");
|
||||
Р.Вставить("Street:", "Улица");
|
||||
Р.Вставить("House:", "Дом");
|
||||
Р.Вставить("Description:", "Описание");
|
||||
|
||||
// рус
|
||||
Р.Вставить("Имя:", "Имя");
|
||||
Р.Вставить("Отчество:", "Отчество");
|
||||
Р.Вставить("Фамилия:", "Фамилия");
|
||||
Р.Вставить("e-mail:", "Email");
|
||||
Р.Вставить("Компания:", "Компания");
|
||||
Р.Вставить("Страна:", "Страна");
|
||||
Р.Вставить("Индекс:", "Индекс");
|
||||
Р.Вставить("Регион/область:", "Регион");
|
||||
Р.Вставить("Район:", "Район");
|
||||
Р.Вставить("Город:", "Город");
|
||||
Р.Вставить("Улица:", "Улица");
|
||||
Р.Вставить("Дом:", "Дом");
|
||||
Р.Вставить("Описание:", "Описание");
|
||||
|
||||
// общ
|
||||
Р.Вставить("License generation date:", "ДатаАктивации");
|
||||
Р.Вставить("Distribution kit registration number:", "РегистрационныйНомер");
|
||||
Р.Вставить("Product code:", "КодПродукта");
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(Р);
|
||||
КонецФункции
|
||||
|
||||
|
||||
&НаСервере
|
||||
Функция ЗапросИнформацииОЛицезнии(ИмяЛицензии)
|
||||
СтруктураОтвета = Новый Структура("Описание, Фамилия, Имя, Отчество, EMail, Компания, Страна, Индекс, Город, Регион, Район, Улица, Дом, Строение, Квартира, ДатаАктивации, РегистрационныйНомер, КодПродукта, ТекстоваяИнформация, КоличествоЛицензий");
|
||||
@ -156,64 +201,49 @@
|
||||
ВызватьИсключение "Ошибка чтения результата";
|
||||
КонецЕсли;
|
||||
|
||||
Реквизиты = Соответствие_РазборИнформацииОЛицензии();
|
||||
|
||||
РазобранныеРеквизиты = Новый Соответствие;
|
||||
|
||||
Текст = Новый ЧтениеТекста;
|
||||
Текст.Открыть(ФайлОтвет, SPS_КодировкаФайлаОтвета());
|
||||
стр = "";
|
||||
Пока стр <> Неопределено Цикл
|
||||
стр = Текст.ПрочитатьСтроку();
|
||||
Если СтрНайти(стр, "First name:") > 0 Тогда
|
||||
СтруктураОтвета.Имя = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "First name:") - СтрДлина("First name:"));
|
||||
ИначеЕсли СтрНайти(стр, "Middle name:") > 0 Тогда
|
||||
СтруктураОтвета.Отчество = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "Middle name:") - СтрДлина(
|
||||
"Middle name:"));
|
||||
ИначеЕсли СтрНайти(стр, "Last name:") > 0 Тогда
|
||||
СтруктураОтвета.Фамилия = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "Last name:") - СтрДлина("Last name:"));
|
||||
ИначеЕсли СтрНайти(стр, "Email:") > 0 Тогда
|
||||
СтруктураОтвета.Email = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "Email:") - СтрДлина("Email:"));
|
||||
ИначеЕсли СтрНайти(стр, "Company:") > 0 Тогда
|
||||
СтруктураОтвета.Компания = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "Company:") - СтрДлина("Company:"));
|
||||
ИначеЕсли СтрНайти(стр, "Country:") > 0 Тогда
|
||||
СтруктураОтвета.Страна = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "Country:") - СтрДлина("Country:"));
|
||||
ИначеЕсли СтрНайти(стр, "ZIP code:") > 0 Тогда
|
||||
СтруктураОтвета.Индекс = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "ZIP code:") - СтрДлина("ZIP code:"));
|
||||
ИначеЕсли СтрНайти(стр, "Town:") > 0 Тогда
|
||||
СтруктураОтвета.Город = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "Town:") - СтрДлина("Town:"));
|
||||
ИначеЕсли СтрНайти(стр, "Region:") > 0 Тогда
|
||||
СтруктураОтвета.Регион = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "Region:") - СтрДлина("Region:"));
|
||||
ИначеЕсли СтрНайти(стр, "District:") > 0 Тогда
|
||||
СтруктураОтвета.Район = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "District:") - СтрДлина("District:"));
|
||||
ИначеЕсли СтрНайти(стр, "Building:") > 0 Тогда
|
||||
СтруктураОтвета.Строение = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "Building:") - СтрДлина("Building:"));
|
||||
ИначеЕсли СтрНайти(стр, "Apartment:") > 0 Тогда
|
||||
СтруктураОтвета.Квартира = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "Apartment:") - СтрДлина("Apartment:"));
|
||||
ИначеЕсли СтрНайти(стр, "Street:") > 0 Тогда
|
||||
СтруктураОтвета.Улица = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "Street:") - СтрДлина("Street:"));
|
||||
ИначеЕсли СтрНайти(стр, "House:") > 0 Тогда
|
||||
СтруктураОтвета.Дом = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "House:") - СтрДлина("House:"));
|
||||
ИначеЕсли СтрНайти(стр, "Description:") > 0 Тогда
|
||||
СтруктураОтвета.Описание = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "Description:") - СтрДлина(
|
||||
"Description:"));
|
||||
Если СтрНайти(стр, " рабочих мест") Тогда
|
||||
тСтр = Лев(стр, СтрНайти(стр, " рабочих мест"));
|
||||
мСтр = РазложитьСтрокуВМассивПодстрок(тСтр, " ");
|
||||
СтруктураОтвета.КоличествоЛицензий = Число(мСтр[мСтр.Количество() - 1]);
|
||||
КонецЕсли;
|
||||
ИначеЕсли СтрНайти(стр, "License generation date:") > 0 Тогда
|
||||
СтруктураОтвета.ДатаАктивации = СтрокуВДату(Прав(стр, СтрДлина(стр) - СтрНайти(стр,
|
||||
"License generation date:") - СтрДлина("License generation date:")));
|
||||
ИначеЕсли СтрНайти(стр, "Distribution kit registration number:") > 0 Тогда
|
||||
СтруктураОтвета.РегистрационныйНомер = Прав(стр, СтрДлина(стр) - СтрНайти(стр,
|
||||
"Distribution kit registration number:") - СтрДлина("Distribution kit registration number:"));
|
||||
ИначеЕсли СтрНайти(стр, "Product code:") > 0 Тогда
|
||||
СтруктураОтвета.КодПродукта = Прав(стр, СтрДлина(стр) - СтрНайти(стр, "Product code:") - СтрДлина(
|
||||
"Product code:"));
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
ДлинаСтроки = СтрДлина(стр);
|
||||
|
||||
Для Каждого ТекРеквизит Из Реквизиты Цикл
|
||||
Если Не Неопределено = РазобранныеРеквизиты.Получить(ТекРеквизит.Ключ) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Позиция_ТекРеквизит = СтрНайти(стр, ТекРеквизит.Ключ);
|
||||
Если 0 = Позиция_ТекРеквизит Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураОтвета[ТекРеквизит.Значение] = Прав(стр, ДлинаСтроки - Позиция_ТекРеквизит - СтрДлина(ТекРеквизит.Ключ));
|
||||
СтруктураОтвета[ТекРеквизит.Значение] = СокрЛП(СтруктураОтвета[ТекРеквизит.Значение]);
|
||||
РазобранныеРеквизиты.Вставить(ТекРеквизит.Ключ, Истина);
|
||||
|
||||
Прервать;
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
Позиция_РабМест = СтрНайти(СтруктураОтвета.Описание, " рабочих мест");
|
||||
Если Позиция_РабМест > 0 Тогда
|
||||
тСтр = Лев(СтруктураОтвета.Описание, Позиция_РабМест);
|
||||
мСтр = РазложитьСтрокуВМассивПодстрок(тСтр, " ");
|
||||
СтруктураОтвета.КоличествоЛицензий = Число(мСтр[мСтр.Количество() - 1]);
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураОтвета.ДатаАктивации = СтрокуВДату(СтруктураОтвета.ДатаАктивации);
|
||||
|
||||
Текст.Закрыть();
|
||||
УдалитьФайлы(ФайлОтвет);
|
||||
УдалитьФайлы(ИмяВременногоФайлаCMD);
|
||||
Возврат СтруктураОтвета;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
|
Loading…
Reference in New Issue
Block a user