1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-02-13 19:42:02 +02:00

Исправлены замечания сонар

This commit is contained in:
alkoleft 2023-08-16 01:48:44 +03:00
parent e478728ae8
commit 71d0a2d5bd
9 changed files with 95 additions and 115 deletions

View File

@ -88,4 +88,12 @@
КонецФункции
Функция ЭтоПеречисление(Значение) Экспорт
Описание = ОписаниеОбъектаМетаданных(Значение);
Возврат Описание <> Неопределено И Описание.ОписаниеТипа.Имя = "Перечисление";
КонецФункции
#КонецОбласти

View File

@ -27,7 +27,7 @@
|</TypeDescription>");
Возврат СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
КонецФункции
Функция УстановленБезопасныйРежим() Экспорт
@ -54,7 +54,10 @@
ЧастиИмени = СтрРазделить(ИмяМакета, ".");
Если ЧастиИмени.Количество() < 2 Тогда
КоличествоБлоковДляОбщегоМакета = 2;
КоличествоБлоковМакетаМенеджера = 3;
Если ЧастиИмени.Количество() < КоличествоБлоковДляОбщегоМакета Тогда
ВызватьИсключение СтрШаблон("Некорректное имя макет, если вы хотите получить данные общего макета необходимо указать `ОбщийМакет.%1`",
ИмяМакета);
КонецЕсли;
@ -62,13 +65,13 @@
ИндексОбласти = 0;
Если СтрСравнить(ЧастиИмени[0], "ОбщийМакет") = 0 Тогда
Макет = ПолучитьОбщийМакет(ЧастиИмени[1]);
ИндексОбласти = 2;
ИначеЕсли ЧастиИмени.Количество() >= 3 Тогда
ИндексОбласти = КоличествоБлоковДляОбщегоМакета;
ИначеЕсли ЧастиИмени.Количество() >= КоличествоБлоковМакетаМенеджера Тогда
Менеджер = Менеджер(СтрШаблон("%1.%2", ЧастиИмени[0], ЧастиИмени[1]));
Макет = Менеджер.ПолучитьМакет(ЧастиИмени[2]);
ИндексОбласти = 3;
Макет = Менеджер.ПолучитьМакет(ЧастиИмени[КоличествоБлоковМакетаМенеджера - 1]);
ИндексОбласти = КоличествоБлоковМакетаМенеджера;
Иначе
ВызватьИсключение СтрШаблон("Некорреткное имя макета `%1`", ИмяМакета);
ВызватьИсключение СтрШаблон("Некорректное имя макета `%1`", ИмяМакета);
КонецЕсли;
Если ЧастиИмени.Количество() > ИндексОбласти Тогда

View File

@ -84,6 +84,10 @@
МассивРазделителей.Добавить("-");
СтрокаДаты = Неопределено;
КоличествоБлоковДаты = 3;
ДлинаГода = 4;
Для Каждого Разделитель Из МассивРазделителей Цикл
Если ЗначениеЗаполнено(СтрокаДаты) Тогда
@ -91,14 +95,17 @@
КонецЕсли;
МассивЧастейДат = СтрРазделить(Значение, Разделитель);
Если МассивЧастейДат.Количество() = 3 Тогда
Если СтрДлина(МассивЧастейДат[2]) = 4 Тогда
Если МассивЧастейДат.Количество() = КоличествоБлоковДаты Тогда
Если СтрДлина(МассивЧастейДат[2]) = ДлинаГода Тогда
СтрокаДаты = МассивЧастейДат[2] + МассивЧастейДат[1] + МассивЧастейДат[0];
ИначеЕсли СтрДлина(МассивЧастейДат[0]) = 4 Тогда
ИначеЕсли СтрДлина(МассивЧастейДат[0]) = ДлинаГода Тогда
СтрокаДаты = МассивЧастейДат[0] + МассивЧастейДат[1] + МассивЧастейДат[2];
Иначе
СтрокаДаты = "20" + МассивЧастейДат[2] + МассивЧастейДат[1] + МассивЧастейДат[0];
КонецЕсли;
КонецЕсли;
КонецЦикла;

View File

@ -1,57 +0,0 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//©///////////////////////////////////////////////////////////////////////////©//
#Область СлужебныйПрограммныйИнтерфейс
Функция ВыборкаИзТабличногоДокумента(ТабличныйДокумент) Экспорт
ВсегоСтрок = ТабличныйДокумент.ВысотаТаблицы;
ВсегоКолонок = ТабличныйДокумент.ШиринаТаблицы;
Область = ТабличныйДокумент.Область(1,1,ВсегоСтрок,ВсегоКолонок);
ИсточникДанных = Новый ОписаниеИсточникаДанных(Область);
ПостроительОтчета = Новый ПостроительОтчета;
ПостроительОтчета.ИсточникДанных = ИсточникДанных;
ПостроительОтчета.Выполнить();
Возврат ПостроительОтчета.Результат.Выбрать();
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ЕстьЗначенияВСтроке(ТабличныйДокумент, НомерСтроки, СведенияКолонок)
ЕстьЗаполненныеЗначения = Ложь;
Для Каждого Сведения Из СведенияКолонок Цикл
Если ЕстьЗаполненныеЗначения Тогда
Прервать;
КонецЕсли;
НомерКолонки = Сведения.НомерКолонки;
ЕстьЗаполненныеЗначения = ЗначениеЗаполнено(ТабличныйДокумент.Область(НомерСтроки, НомерКолонки).Текст);
КонецЦикла;
Возврат ЕстьЗаполненныеЗначения;
КонецФункции
#КонецОбласти

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="3c0bb52f-6f25-4bf8-b619-ae076be16a58">
<name>ЮТПреобразованияСервер</name>
<synonym>
<key>ru</key>
<value>Преобразования сервер</value>
</synonym>
<server>true</server>
</mdclass:CommonModule>

View File

@ -32,7 +32,7 @@
ПодготовитьПараметрыЗаполненияТаблицы(КэшЗначений, ЗаменяемыеЗначения, ПараметрыЗаполнения, Колонки);
ПараметрыСоздания = ПараметрыЗаполнения.СозданиеОбъектовМетаданных;
Выборка = ЮТПреобразованияСервер.ВыборкаИзТабличногоДокумента(ТабличныйДокумент);
Выборка = ВыборкаИзТабличногоДокумента(ТабличныйДокумент);
Пока Выборка.Следующий() Цикл
@ -46,7 +46,7 @@
Продолжить;
КонецЕсли;
Значение = ЗачениеЯчейки(Выборка, ЗначениеПредставления, ОписаниеКолонки, ЗаменяемыеЗначения, КэшЗначений, ПараметрыСоздания);
Значение = ЗначениеЯчейки(Выборка, ЗначениеПредставления, ОписаниеКолонки, ЗаменяемыеЗначения, КэшЗначений, ПараметрыСоздания);
Строка[ОписаниеКолонки.Имя] = Значение;
КонецЦикла;
@ -61,6 +61,22 @@
#Область СлужебныеПроцедурыИФункции
Функция ВыборкаИзТабличногоДокумента(ТабличныйДокумент)
ВсегоСтрок = ТабличныйДокумент.ВысотаТаблицы;
ВсегоКолонок = ТабличныйДокумент.ШиринаТаблицы;
Область = ТабличныйДокумент.Область(1, 1, ВсегоСтрок, ВсегоКолонок);
ИсточникДанных = Новый ОписаниеИсточникаДанных(Область);
ПостроительОтчета = Новый ПостроительОтчета;
ПостроительОтчета.ИсточникДанных = ИсточникДанных;
ПостроительОтчета.Выполнить();
Возврат ПостроительОтчета.Результат.Выбрать();
КонецФункции
Функция ТабличныйДокумент(Знач ТабличныйДокумент)
ТипПараметра = ТипЗнч(ТабличныйДокумент);
@ -85,30 +101,24 @@
Для Инд = 1 По ТабличныйДокумент.ШиринаТаблицы Цикл
ИмяКолонки = ТабличныйДокумент.Область(1, Инд).Текст;
Если ПустаяСтрока(ИмяКолонки) Тогда
Прервать;
КонецЕсли;
ЧастиИмени = СтрРазделить(ИмяКолонки, ".");
Если ОписанияТипов[ЧастиИмени[0]] = Неопределено Тогда
Если ПустаяСтрока(ИмяКолонки) ИЛИ ОписанияТипов[ЧастиИмени[0]] = Неопределено Тогда
Продолжить;
КонецЕсли;
ЭтоВложенныйРеквизит = ЧастиИмени.Количество() = 2;
ЭтоОсновнойРеквизит = ЧастиИмени.Количество() = 1;
ОписаниеКолонки = Новый Структура;
ОписаниеКолонки.Вставить("Индекс", Инд - 1);
ОписаниеКолонки = ОписаниеКолонки(Инд - 1);
Если ЭтоОсновнойРеквизит Тогда
ОписаниеКолонки.Вставить("Имя", ИмяКолонки);
ОписаниеКолонки.Имя = ИмяКолонки;
Иначе
ОписаниеКолонки.Вставить("Имя", ЧастиИмени[1]);
ОписаниеКолонки.Имя = ЧастиИмени[1];
КонецЕсли;
ОписаниеКолонки.Вставить("ОписаниеТипа", ОписанияТипов[ИмяКолонки]);
ОписаниеКолонки.ОписаниеТипа = ОписанияТипов[ИмяКолонки];
Если ОписаниеКолонки.ОписаниеТипа = Неопределено И ЭтоВложенныйРеквизит Тогда
@ -123,25 +133,11 @@
КонецЕсли;
ОписаниеКолонки.Вставить("ТипЗначения", ОписаниеКолонки.ОписаниеТипа.Типы()[0]);
ОписаниеКолонки.Вставить("Ссылочный", ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ОписаниеКолонки.ТипЗначения));
ОписаниеКолонки.Вставить("ДополнительныеРеквизиты", Новый Массив());
ОписаниеКолонки.Вставить("Составное", Ложь);
ОписаниеКолонки.Вставить("Менеджер", Неопределено);
ОписаниеКолонки.Вставить("ОписаниеОбъектаМетаданных", Неопределено);
ОписаниеКолонки.Вставить("ЭтоПеречисление", Ложь);
ОписаниеКолонки.Вставить("ЭтоЧисло", ОписаниеКолонки.ТипЗначения = Тип("Число"));
ОписаниеКолонки.Вставить("ЭтоДата", ОписаниеКолонки.ТипЗначения = Тип("Дата"));
Если ОписаниеКолонки.Ссылочный Тогда
ОписаниеКолонки.ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(ОписаниеКолонки.ТипЗначения);
ОписаниеКолонки.ЭтоПеречисление = СтрСравнить(ОписаниеКолонки.ОписаниеОбъектаМетаданных.ОписаниеТипа.Имя, "Перечисление") = 0; // TODO
ОписаниеКолонки.Менеджер = ЮТОбщий.Менеджер(ОписаниеКолонки.ТипЗначения);
КонецЕсли;
ДозаполнитьОписаниеКолонки(ОписаниеКолонки);
ВсеКолонки.Добавить(ОписаниеКолонки);
Если ЧастиИмени.Количество() = 1 Тогда
Если ЭтоОсновнойРеквизит Тогда
Колонки.Добавить(ОписаниеКолонки);
ОсновныеКолонки.Вставить(ИмяКолонки, ОписаниеКолонки);
@ -167,7 +163,45 @@
КонецФункции
Функция ЗачениеЯчейки(СтрокаДанных, ЗначениеПредставления, ОписаниеКолонки, ЗаменяемыеЗначения, КэшЗначений, ПараметрыСоздания)
Функция ОписаниеКолонки(Индекс)
ОписаниеКолонки = Новый Структура;
ОписаниеКолонки.Вставить("Индекс", Индекс);
ОписаниеКолонки.Вставить("Имя", "");
ОписаниеКолонки.Вставить("ОписаниеТипа", Неопределено);
ОписаниеКолонки.Вставить("ТипЗначения", Неопределено);
ОписаниеКолонки.Вставить("Ссылочный", Ложь);
ОписаниеКолонки.Вставить("ДополнительныеРеквизиты", Новый Массив());
ОписаниеКолонки.Вставить("Составное", Ложь);
ОписаниеКолонки.Вставить("Менеджер", Неопределено);
ОписаниеКолонки.Вставить("ОписаниеОбъектаМетаданных", Неопределено);
ОписаниеКолонки.Вставить("ЭтоПеречисление", Ложь);
ОписаниеКолонки.Вставить("ЭтоЧисло", Ложь);
ОписаниеКолонки.Вставить("ЭтоДата", Ложь);
Возврат ОписаниеКолонки;
КонецФункции
Процедура ДозаполнитьОписаниеКолонки(ОписаниеКолонки)
ТипЗначения = ОписаниеКолонки.ОписаниеТипа.Типы()[0];
ОписаниеКолонки.ТипЗначения = ТипЗначения;
ОписаниеКолонки.Ссылочный = ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения);
ОписаниеКолонки.ЭтоЧисло = ТипЗначения = Тип("Число");
ОписаниеКолонки.ЭтоДата = ТипЗначения = Тип("Дата");
Если ОписаниеКолонки.Ссылочный Тогда
ОписаниеКолонки.ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(ТипЗначения);
ОписаниеКолонки.ЭтоПеречисление = ЮТМетаданные.ЭтоПеречисление(ОписаниеКолонки.ОписаниеОбъектаМетаданных);
ОписаниеКолонки.Менеджер = ЮТОбщий.Менеджер(ОписаниеКолонки.ОписаниеОбъектаМетаданных);
КонецЕсли;
КонецПроцедуры
Функция ЗначениеЯчейки(СтрокаДанных, ЗначениеПредставления, ОписаниеКолонки, ЗаменяемыеЗначения, КэшЗначений, ПараметрыСоздания)
Значение = ЗаменяемыеЗначения[ЗначениеПредставления];
@ -235,12 +269,7 @@
Продолжить;
КонецЕсли;
Значение = ЗачениеЯчейки(СтрокаТаблицы,
ПредставлениеЗначения,
ОписаниеВложеннойКолонки,
ЗаменяемыеЗначения,
КэшЗначений,
Параметры);
Значение = ЗначениеЯчейки(СтрокаТаблицы, ПредставлениеЗначения, ОписаниеВложеннойКолонки, ЗаменяемыеЗначения, КэшЗначений, Параметры);
ЗначенияРеквизитов.Вставить(ОписаниеВложеннойКолонки.Имя, Значение);
КонецЦикла;

View File

@ -193,7 +193,7 @@
Для Инд = 0 По Таблица.Количество() - 1 Цикл
Запись = Новый Структура(Реквизиты);
ЗаполнитьЗначенияСвойств(Запись, Таблица[Инд]);
Результат[Инд] = Запись
Результат[Инд] = Запись;
КонецЦикла;
Возврат Результат;

View File

@ -88,7 +88,6 @@
<commonModules>CommonModule.ЮТПредикаты</commonModules>
<commonModules>CommonModule.ЮТПредикатыКлиентСервер</commonModules>
<commonModules>CommonModule.ЮТПреобразования</commonModules>
<commonModules>CommonModule.ЮТПреобразованияСервер</commonModules>
<commonModules>CommonModule.ЮТРасширения</commonModules>
<commonModules>CommonModule.ЮТРегистрацияОшибок</commonModules>
<commonModules>CommonModule.ЮТСобытия</commonModules>

View File

@ -89,7 +89,7 @@
Данные.Добавить(Новый(СтрШаблон("%1Объект.%2", Вид, Справочник.Имя)));
Данные.Добавить(Тип(СтрШаблон("%1Объект.%2", Вид, Справочник.Имя)));
Данные.Добавить(Тип(СтрШаблон("%1Менеджер.%2", Вид, Справочник.Имя)));
КонецЕсли
КонецЕсли;
КонецЦикла;