1
0
mirror of https://github.com/Polyplastic/1c-parsing-tech-log.git synced 2025-11-23 22:04:45 +02:00

исправление ошибки создания свойств

This commit is contained in:
Vladimir Kruchkov
2023-01-13 04:54:56 +03:00
parent 1c81608889
commit cd3c995a37
3 changed files with 68 additions and 12 deletions

View File

@@ -628,11 +628,16 @@
Колонки = новый массив;
// СоответсвиеИменКолонок
СоответсвиеИменКолонок = Новый Соответствие;
Для каждого элем из МассивСоответствиеДанных Цикл
ш=0;
Для каждого стр из элем Цикл
ИмяКолонки = "колонка_"+Формат(ш,"ЧГ=;");
СоответсвиеИменКолонок.Вставить(стр.Ключ,ИмяКолонки);
Заголовок = стр.Ключ;
Описание = СоответсвиеСинонимовСвойств.Получить(list+"/"+Заголовок);
Если НЕ Описание=Неопределено Тогда
@@ -672,7 +677,10 @@
ИмяКолонки_decision = Неопределено;
ш=0;
Для каждого стр из элем Цикл
ИмяКолонки = "колонка_"+Формат(ш,"ЧГ=;");
ИмяКолонки = СоответсвиеИменКолонок.Получить(стр.Ключ);
Если ИмяКолонки=Неопределено Тогда
Продолжить;
КонецЕсли;
стр_н[ИмяКолонки]=стр.Значение;
ш=ш+1;
источник.name = стр.Ключ;
@@ -692,6 +700,7 @@
КонецПроцедуры
&НаКлиенте
Функция СоставКолонокОдинаковый(Колонки1,Колонки2)
@@ -1218,7 +1227,7 @@
Пока Выборка.Следующий() Цикл
Ключ = ?(ЗначениеЗаполнено(Выборка.synonim),Выборка.synonim,Выборка.name);
Ключ = ?(ЗначениеЗаполнено(Выборка.name),Выборка.name,Выборка.synonim);
Если (Выборка.value="0" И Выборка.value_numeric=0) ИЛИ
Выборка.value_numeric<>0 Тогда

View File

@@ -8,7 +8,7 @@
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Монитор RAS 1C");
ПараметрыРегистрации.Вставить("Версия", "2021.12.28");
ПараметрыРегистрации.Вставить("Версия", "2023.02.08");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Информация", ИнформацияПоИсторииИзменений());
ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4");
@@ -377,9 +377,11 @@
|ИЗ
| Справочник.Свойства КАК Свойства
|ГДЕ
| НЕ Свойства.ПометкаУдаления
| (НЕ Свойства.ПометкаУдаления
| И (Свойства.Наименование = &Наименование
| ИЛИ Свойства.Синоним = &Синоним)";
| ИЛИ Свойства.Синоним = &Синоним)
| ИЛИ (Свойства.Синоним = &Наименование
| ИЛИ Свойства.Наименование = &Синоним))";
Запрос.УстановитьПараметр("Наименование","cpu-time-last-5min");
Запрос.УстановитьПараметр("Синоним","cpu-time-last-5min");
РезультатЗапроса = Запрос.Выполнить();
@@ -389,16 +391,26 @@
КонецЕсли;
ПолноеСоответствиеСвойств = ПолучитьПолноеСоответствиеСвойств();
КешСозданныхСвойств = Новый Соответствие;
ПапкаСвойстваRAS = НайтиСоздатьПапкуСвойства("Свойства RAS");
Для каждого стр из ПолноеСоответствиеСвойств Цикл
Если НЕ ЗначениеЗаполнено(стр.Ключ) Тогда
Продолжить;
КонецЕсли;
СвойствоизКеша = КешСозданныхСвойств.Получить(стр.Значение.Свойство);
Если НЕ СвойствоизКеша=Неопределено Тогда
Продолжить;
КонецЕсли;
СвойствоОбъект = Справочники.Свойства.СоздатьЭлемент();
СвойствоОбъект.Наименование = стр.Значение.Синоним; // в синониме русский, а мы хотим наоборот
СвойствоОбъект.Код = стр.Ключ;
СвойствоОбъект.Синоним = стр.Ключ;
СвойствоОбъект.Наименование = стр.Значение.Свойство; // в синониме русский, а мы хотим наоборот
СвойствоОбъект.Код = стр.Значение.Свойство;
СвойствоОбъект.Синоним = стр.Значение.Синоним;
СвойствоОбъект.Родитель = ПапкаСвойстваRAS;
Если стр.Значение.Тип = "Число" Тогда
СвойствоОбъект.ЧисловойРежим = Истина;
@@ -406,10 +418,41 @@
СвойствоОбъект.Записать();
КешСозданныхСвойств.Вставить(стр.Значение.Свойство,СвойствоОбъект.Ссылка)
КонецЦикла;
КонецПроцедуры
Функция НайтиСоздатьПапкуСвойства(Знач Имя)
Папка = Неопределено;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Свойства.Ссылка КАК Ссылка
|ИЗ
| Справочник.Свойства КАК Свойства
|ГДЕ
| НЕ Свойства.ПометкаУдаления
| И Свойства.ЭтоГруппа = ИСТИНА
| И Свойства.Наименование = &Имя";
Запрос.УстановитьПараметр("Имя",Имя);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Папка = Выборка.Ссылка;
Иначе
ПапкаОбъект = Справочники.Свойства.СоздатьГруппу();
ПапкаОбъект.Наименование = Имя;
ПапкаОбъект.Код = Имя;
ПапкаОбъект.Записать();
Папка = ПапкаОбъект.Ссылка;
КонецЕсли;
Возврат Папка;
КонецФункции
#КонецОбласти
@@ -1299,9 +1342,13 @@
Продолжить;
КонецЕсли;
value = ПолучитьЗначениеФункцииТаблицы(МассивСоответствиеДанных,стр.name,стр.func);
Если value=Неопределено Тогда
// по синониму
value = ПолучитьЗначениеФункцииТаблицы(МассивСоответствиеДанных,стр.synonim,стр.func);
Если value=Неопределено Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Если ТипЗнч(value)=Тип("Соответствие") Тогда
Для каждого эл_мас из value Цикл
стр_н = новый Структура("value,name,synonim,func,list,cluster",0,"","","","","");