Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Настройки отбора компоновки данных #50

Merged
merged 11 commits into from
Apr 23, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
462 changes: 462 additions & 0 deletions src/Catalogs/__НастройкиОтбораОбъектов.xml

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@

Процедура ИнициализироватьКомпоновщик(КомпоновщикНастроек, ОбъектМетаданных, ДополнительнаяСтрока = "") Экспорт

Check notice on line 2 in src/Catalogs/__НастройкиОтбораОбъектов/Ext/ManagerModule.bsl

View check run for this annotation

sonar.openbsl.ru qa-bot / 1C: Project SubSystems Library Sonarqube Results

src/Catalogs/__НастройкиОтбораОбъектов/Ext/ManagerModule.bsl#L2

Переместите код в область

ТекстЗапроса =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ " + ОбъектМетаданных + " " + ДополнительнаяСтрока;

Check warning on line 5 in src/Catalogs/__НастройкиОтбораОбъектов/Ext/ManagerModule.bsl

View check run for this annotation

sonar.openbsl.ru qa-bot / 1C: Project SubSystems Library Sonarqube Results

src/Catalogs/__НастройкиОтбораОбъектов/Ext/ManagerModule.bsl#L5

Текст запроса должен быть корректным и открываться конструктором запросов

СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных;
ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
ИсточникДанных.Имя = "ИсточникДанных1";
ИсточникДанных.ТипИсточникаДанных = "Local";

НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
НаборДанных.Имя = "НаборДанных1";
НаборДанных.ИсточникДанных = ИсточникДанных.Имя;
НаборДанных.Запрос = ТекстЗапроса;

АдресКомпоновки = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, Новый УникальныйИдентификатор);
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресКомпоновки));
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);

КонецПроцедуры

Процедура СкопироватьЭлементыОтбора(НовыйОтбор, СтарыйОтбор) Экспорт

Для Каждого Элемент Из СтарыйОтбор.Элементы Цикл
Если ТипЗнч(Элемент) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
НовыйЭлемент = НовыйОтбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ЗаполнитьЗначенияСвойств(НовыйЭлемент, Элемент);
СкопироватьЭлементыОтбора(НовыйЭлемент, Элемент);
Иначе
НовыйЭлемент = НовыйОтбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЗаполнитьЗначенияСвойств(НовыйЭлемент, Элемент);
КонецЕсли;
КонецЦикла;

КонецПроцедуры

Функция ПолучитьДанныеПоНастройкеОтбора(Настройка) Экспорт

МодульОбщегоНазначения = __ОбщегоНазначенияСервер.ОбщийМодуль("ОбщегоНазначения", "__ОбщегоНазначенияСервер");

ОбъектМетаданных = МодульОбщегоНазначения.ЗначениеРеквизитаОбъекта(Настройка, "ОбъектМетаданных");
Отбор = МодульОбщегоНазначения.ЗначениеРеквизитаОбъекта(Настройка, "Отбор");

КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
ТекстЗапроса = "ВЫБРАТЬ * ИЗ " + ОбъектМетаданных;

Check warning on line 46 in src/Catalogs/__НастройкиОтбораОбъектов/Ext/ManagerModule.bsl

View check run for this annotation

sonar.openbsl.ru qa-bot / 1C: Project SubSystems Library Sonarqube Results

src/Catalogs/__НастройкиОтбораОбъектов/Ext/ManagerModule.bsl#L46

Текст запроса должен быть корректным и открываться конструктором запросов

СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных;
ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных.Добавить();
ИсточникДанных.Имя = "ИсточникДанных1";
ИсточникДанных.ТипИсточникаДанных = "Local";

НаборДанных = СхемаКомпоновкиДанных.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
НаборДанных.Имя = "НаборДанных1";
НаборДанных.ИсточникДанных = ИсточникДанных.Имя;
НаборДанных.Запрос = ТекстЗапроса;

АдресКомпоновки = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, Новый УникальныйИдентификатор);
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресКомпоновки));
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);

ДетальныеЗаписи = КомпоновщикНастроек.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ДетальныеЗаписи.Имя = "Детальные";
ДетальныеЗаписи.Использование = Истина;
ВыбранноеПоле = ДетальныеЗаписи.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Ссылка");

Отбор = МодульОбщегоНазначения.ЗначениеИзСтрокиXML(Отбор);
Справочники.__НастройкиОтбораОбъектов.СкопироватьЭлементыОтбора(КомпоновщикНастроек.Настройки.Отбор, Отбор);

Check notice on line 69 in src/Catalogs/__НастройкиОтбораОбъектов/Ext/ManagerModule.bsl

View check run for this annotation

sonar.openbsl.ru qa-bot / 1C: Project SubSystems Library Sonarqube Results

src/Catalogs/__НастройкиОтбораОбъектов/Ext/ManagerModule.bsl#L69

Избавьтесь от избыточного обращения внутри модуля через его имя или псевдоним ЭтотОбъект

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Попытка
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

Check notice on line 73 in src/Catalogs/__НастройкиОтбораОбъектов/Ext/ManagerModule.bsl

View check run for this annotation

sonar.openbsl.ru qa-bot / 1C: Project SubSystems Library Sonarqube Results

src/Catalogs/__НастройкиОтбораОбъектов/Ext/ManagerModule.bsl#L73

Справа от ',' не хватает пробела

Check notice on line 73 in src/Catalogs/__НастройкиОтбораОбъектов/Ext/ManagerModule.bsl

View check run for this annotation

sonar.openbsl.ru qa-bot / 1C: Project SubSystems Library Sonarqube Results

src/Catalogs/__НастройкиОтбораОбъектов/Ext/ManagerModule.bsl#L73

Справа от ',' не хватает пробела

Check warning on line 73 in src/Catalogs/__НастройкиОтбораОбъектов/Ext/ManagerModule.bsl

View check run for this annotation

sonar.openbsl.ru qa-bot / 1C: Project SubSystems Library Sonarqube Results

src/Catalogs/__НастройкиОтбораОбъектов/Ext/ManagerModule.bsl#L73

Длина строки 164 превышает максимально допустимую 120
Исключение
СообщениеОбОшибке = ОписаниеОшибки();
__ОбщегоНазначенияСервер.СообщитьПользователю(СообщениеОбОшибке);
КонецПопытки;

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;

Результат = Новый ТаблицаЗначений;
Результат.Колонки.Добавить("Ссылка");

ПроцессорВывода.УстановитьОбъект(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

Возврат Результат;

КонецФункции
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
<Form uuid="1b463292-adbe-4510-8686-82c974fb20da">
<Properties>
<Name>ФормаВыбораОбъектаМетаданныхУправляемая</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма выбора объекта метаданных управляемая</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
</Properties>
</Form>
</MetaDataObject>
Loading
Loading