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

added new collections to the parameters #56

Merged
merged 6 commits into from
Apr 27, 2024
Merged

Conversation

denisushakov
Copy link
Contributor

@denisushakov denisushakov commented Apr 26, 2024

valueTable, array, structure, valueList

Summary by CodeRabbit

  • New Features
    • Modified attribute names, types, synonyms, and tooltips within XML structure for better clarity and consistency.
    • Added two exported functions to manipulate lists of configuration types and perform type-related operations.
    • Enhanced form module with new parameter type and value reading functions, form data management procedures, and initialization events.
  • Enhancements
    • Introduced a new exported procedure to simplify common settings management across modules.
    • Added a new item within the content section of the XML file for improved data representation.

Copy link

coderabbitai bot commented Apr 26, 2024

Walkthrough

The recent updates bring a wave of changes to the 1C:Enterprise application, including attribute modifications, function additions, form enhancements, and the introduction of common modules for standard subsystem operations.

Changes

File Path Change Summary
src/Catalogs/__ПользовательскиеФункции.xml Attribute adjustments, type updates, and tooltip enhancements in the XML structure.
src/Catalogs/__ПользовательскиеФункции/Ext/ManagerModule.bsl Addition of functions for generating and filtering configuration types.
src/Catalogs/__ПользовательскиеФункции/Forms/ФормаЭлемента/Ext/Form.xml Enhanced form functionalities, updated parameter functions, and added data management procedures.
src/CommonModules/__ОбщегоНазначенияСлужебный/Ext/Module.bsl Introduction of a new exported procedure for managing common settings.
src/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl Addition of a procedure for deleting settings and a modification for user data saving rights check.
src/Configuration.xml Addition of declarations for two new <CommonModule> entities related to standard subsystems.
src/Subsystems/__ПользовательскиеФункции.xml Addition of a new item within the <Content> section and removal of another item.

Poem

🐰✨
In the realm of code, changes take flight,
A rabbit hops through the updates, light.
New functions and forms, a tech ballet,
Enhancing the system, day by day.
Let's cheer for progress, big and small,
In the world of tech, where rabbits call! 🎉
🐰✨


Recent Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 40bece2 and a403da2.
Files selected for processing (3)
  • src/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl (2 hunks)
  • src/Configuration.xml (1 hunks)
  • src/Subsystems/__ПользовательскиеФункции.xml (1 hunks)
Files skipped from review as they are similar to previous changes (2)
  • src/Configuration.xml
  • src/Subsystems/__ПользовательскиеФункции.xml
Additional Context Used
GitHub Check Runs (1)
1C: Project SubSystems Library Sonarqube Results success (30)

src/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl: [warning] 2239-2239: src/CommonModules/__ОбщегоНазначенияСервер/Ext/Module.bsl#L2239
Необходимо добавить описание всех параметров метода


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

This comment has been minimized.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 12

Out of diff range and nitpick comments (4)
src/Catalogs/__ПользовательскиеФункции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (4)

539-539: Possible typo in "Функ". Verify if it should be "Функция" or another term.


2043-2043: Add a description of the return value for the function ТипСтрока.


2043-2043: Add descriptions for all parameters of the method.


29-29: Check the correctness of the line break for operands, operators, and parameters.

@@ -2211,6 +2234,16 @@

КонецФункции

// Аналог метода БСП.
//
Процедура ХранилищеУдалить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ИмяПользователя)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add descriptions for all parameters in the method.

- Процедура ХранилищеУдалить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ИмяПользователя)
+ Процедура ХранилищеУдалить(
+   МенеджерХранилища,  // Менеджер хранилища
+   КлючОбъекта,        // Ключ объекта
+   КлючНастроек,       // Ключ настроек
+   ИмяПользователя     // Имя пользователя
+ )

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Процедура ХранилищеУдалить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ИмяПользователя)
Процедура ХранилищеУдалить(
МенеджерХранилища, // Менеджер хранилища
КлючОбъекта, // Ключ объекта
КлючНастроек, // Ключ настроек
ИмяПользователя // Имя пользователя
)


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

&НаСервере
Функция КлючОбъекта()
Возврат "Справочник.__ПользовательскиеФункции.Форма.ФормаЭлемента";
Функция КлючОбъекта(ИмяФормы = "ФормаЭлемента")
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add the "Value" modifier to the ИмяФормы parameter of the КлючОбъекта method to ensure it is passed by value, not by reference.

- Функция КлючОбъекта(ИмяФормы = "ФормаЭлемента")
+ Функция КлючОбъекта(Знач ИмяФормы = "ФормаЭлемента")

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Функция КлючОбъекта(ИмяФормы = "ФормаЭлемента")
Функция КлючОбъекта(Знач ИмяФормы = "ФормаЭлемента")

Comment on lines +11 to +20
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<ChildItems>
<Button name="ФормаСохранитьРезультат" id="37">
<Type>CommandBarButton</Type>
<DefaultButton>true</DefaultButton>
<CommandName>Form.Command.СохранитьРезультат</CommandName>
<ExtendedTooltip name="ФормаСохранитьРезультатРасширеннаяПодсказка" id="38"/>
</Button>
</ChildItems>
</AutoCommandBar>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The command bar setup is correctly defined. However, consider adding tooltips for better user guidance.

+ <ToolTip>Save the result</ToolTip>

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<ChildItems>
<Button name="ФормаСохранитьРезультат" id="37">
<Type>CommandBarButton</Type>
<DefaultButton>true</DefaultButton>
<CommandName>Form.Command.СохранитьРезультат</CommandName>
<ExtendedTooltip name="ФормаСохранитьРезультатРасширеннаяПодсказка" id="38"/>
</Button>
</ChildItems>
</AutoCommandBar>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<ChildItems>
<Button name="ФормаСохранитьРезультат" id="37">
<Type>CommandBarButton</Type>
<DefaultButton>true</DefaultButton>
<CommandName>Form.Command.СохранитьРезультат</CommandName>
<ExtendedTooltip name="ФормаСохранитьРезультатРасширеннаяПодсказка" id="38"/>
<ToolTip>Save the result</ToolTip>
</Button>
</ChildItems>
</AutoCommandBar>

//
Процедура ФильтрацияСпискаТипов(СписокТипов, Контекст) Экспорт

// Пример фильтрации, добавить при необходимости
Copy link

@coderabbitai coderabbitai bot Apr 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove commented code to maintain code cleanliness and readability.

- // Если НРег(Контекст) = "тип" Тогда
- // 	Элемент = СписокТипов.НайтиПоЗначению("Тип");
- // 	СписокТипов.Удалить(Элемент);
- // КонецЕсли;

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
// Пример фильтрации, добавить при необходимости
// Пример фильтрации, добавить при необходимости

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут кролик таки прав, комментарий пушить в релиз не хочется

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ivanmolodec, thank you for confirming! If there's anything else you need help with or any other code you'd like reviewed, feel free to let me know. Happy coding!

Comment on lines +321 to +324
Процедура УдалитьНедопустимыеСимволы(Строка) Экспорт
НедопустимыеСимволы = """'`/\[]{}:;|-=?*<>,.()+#№@!%^&~«»";
Строка = СтрСоединить(СтрРазделить(Строка, НедопустимыеСимволы, Истина));
КонецПроцедуры
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a method description for УдалитьНедопустимыеСимволы to improve code documentation and maintainability.

Would you like me to generate the method description for you or open a GitHub issue to track this task?

@@ -97,6 +97,14 @@

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

// См. __ОбщегоНазначенияСлужебныйКлиентСервер.ЭтоЧисло.
Функция ЭтоЧисло(Знач ПроверяемоеЗначение) Экспорт
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add documentation for the parameters and return value of the function ЭтоЧисло to improve code readability and maintainability.

Comment on lines 84 to 89
Процедура ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя = Неопределено) Экспорт

Модуль = ПолучитьМодуль();
Модуль.ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, ИмяПользователя);

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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The function ХранилищеОбщихНастроекУдалить should delete settings, not save them. Please review and correct the logic.

- Модуль.ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, ИмяПользователя);
+ Модуль.ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя);

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Процедура ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя = Неопределено) Экспорт
Модуль = ПолучитьМодуль();
Модуль.ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, ИмяПользователя);
КонецПроцедуры
Процедура ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя = Неопределено) Экспорт
Модуль = ПолучитьМодуль();
Модуль.ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя);
КонецПроцедуры

#Область ПереадресацияМетодов

// См. __СтандартныеПодсистемыПовтИсп.ОписаниеТипаВсеСсылки.
Функция ОписаниеТипаВсеСсылки() Экспорт
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a description of the return value for the function ОписаниеТипаВсеСсылки.

Comment on lines +25 to +36
Возврат Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(
Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(
Справочники.ТипВсеСсылки(),
Документы.ТипВсеСсылки().Типы()),
ПланыОбмена.ТипВсеСсылки().Типы()),
Перечисления.ТипВсеСсылки().Типы()),
ПланыВидовХарактеристик.ТипВсеСсылки().Типы()),
ПланыСчетов.ТипВсеСсылки().Типы()),
ПланыВидовРасчета.ТипВсеСсылки().Типы()),
БизнесПроцессы.ТипВсеСсылки().Типы()),
БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().Типы()),
Задачи.ТипВсеСсылки().Типы());
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Refactor the function ОписаниеТипаВсеСсылки to avoid nested constructor calls, which complicate the code's readability and maintainability.

- Возврат Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(
-		Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(
-			Справочники.ТипВсеСсылки(),
-			Документы.ТипВсеСсылки().Типы()),
-			ПланыОбмена.ТипВсеСсылки().Типы()),
-			Перечисления.ТипВсеСсылки().Типы()),
-			ПланыВидовХарактеристик.ТипВсеСсылки().Типы()),
-			ПланыСчетов.ТипВсеСсылки().Типы()),
-			ПланыВидовРасчета.ТипВсеСсылки().Типы()),
-			БизнесПроцессы.ТипВсеСсылки().Типы()),
-			БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().Типы()),
-			Задачи.ТипВсеСсылки().Типы());
+ ОписаниеТипов1 = Новый ОписаниеТипов(Справочники.ТипВсеСсылки());
+ ОписаниеТипов2 = Новый ОписаниеТипов(Документы.ТипВсеСсылки().Типы());
+ // Add similar lines for other types
+ Возврат Новый ОписаниеТипов(ОписаниеТипов1, ОписаниеТипов2, ...);

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Возврат Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(
Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(
Справочники.ТипВсеСсылки(),
Документы.ТипВсеСсылки().Типы()),
ПланыОбмена.ТипВсеСсылки().Типы()),
Перечисления.ТипВсеСсылки().Типы()),
ПланыВидовХарактеристик.ТипВсеСсылки().Типы()),
ПланыСчетов.ТипВсеСсылки().Типы()),
ПланыВидовРасчета.ТипВсеСсылки().Типы()),
БизнесПроцессы.ТипВсеСсылки().Типы()),
БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().Типы()),
Задачи.ТипВсеСсылки().Типы());
ОписаниеТипов1 = Новый ОписаниеТипов(Справочники.ТипВсеСсылки());
ОписаниеТипов2 = Новый ОписаниеТипов(Документы.ТипВсеСсылки().Типы());
// Add similar lines for other types
Возврат Новый ОписаниеТипов(ОписаниеТипов1, ОписаниеТипов2, ...);

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Если Параметры.Свойство("АдресЗначения", АдресЗначения) Тогда
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider replacing magic strings like "АдресЗначения" with constants for better maintainability and to avoid potential typos.

This comment has been minimized.

This comment has been minimized.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Comment on lines +226 to +253
Асинх Процедура ПараметрыФункцииТипВФормеНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

ЗаголовокЭлемента = НСтр("ru = 'Редактирование типа данных'");

ВыбранныйЭлемент = Ждать СписокТипов.ВыбратьЭлементАсинх(ЗаголовокЭлемента);
Если ВыбранныйЭлемент = Неопределено Тогда
Возврат;
КонецЕсли;

ТекДанные = Элементы.ПараметрыФункции.ТекущиеДанные;

Если ВыбранныйЭлемент.Значение = "ТаблицаЗначений"
Или ВыбранныйЭлемент.Значение = "Массив"
Или ВыбранныйЭлемент.Значение = "Структура" Тогда

ТекДанные.Тип = ВыбранныйЭлемент.Значение;
ТекДанные.ТипВФорме = ВыбранныйЭлемент.Представление;
// Доработать, отражение количество элементов в коллекции, условное оформление - цвет текста, запрет изменения
ТекДанные.ЗначениеВФорме = ВыбранныйЭлемент.Представление;
Иначе
ИнициализацияТипаИЗначенияПараметра(ТекДанные, ВыбранныйЭлемент);
КонецЕсли;

Модифицированность = Истина;

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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Optimize the type selection logic to ensure it handles all expected types correctly and integrates seamlessly with the UI.

Comment on lines 462 to 506
Процедура ПрочитатьТипыИЗначенияПараметров(СпрОбъект, ПрочитатьЗначения = Ложь)

Если ПрочитатьЗначения Тогда
НастройкиПараметров = ПолучитьПараметрыФункции();
КонецЕсли;

Для Каждого ТекущийПараметр Из СпрОбъект.ПараметрыФункции Цикл

ОписаниеТипаПараметра = ТекущийПараметр.ТипПараметра.Получить();
Если ОписаниеТипаПараметра = Неопределено Тогда
Продолжить;
КонецЕсли;

СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Наименование", ТекущийПараметр.Наименование);

ДанныеПоиска = Объект.ПараметрыФункции.НайтиСтроки(СтруктураОтбора);
Если Не ДанныеПоиска.Количество() = 0 Тогда
ДанныеПоиска.Получить(0).фТипПараметра = ОписаниеТипаПараметра;
СтруктураОтбора.Вставить("Идентификатор", ТекущийПараметр.Идентификатор);
АктивныеСтроки = Объект.ПараметрыФункции.НайтиСтроки(СтруктураОтбора);

Если ЗначениеЗаполнено(АктивныеСтроки) Тогда
Представление = Строка(Тип(ТекущийПараметр.Тип));
АктивныеСтроки[0].ТипВФорме = Представление;
// Доработать, отражение количество элементов в коллекции, условное оформление - цвет текста, запрет изменения
АктивныеСтроки[0].ЗначениеВФорме = Представление;
Если ПрочитатьЗначения Тогда
НастройкаПараметра = НастройкиПараметров.Получить(ТекущийПараметр.Идентификатор);
ЗначениеПараметраФункции(АктивныеСтроки[0], НастройкаПараметра);
КонецЕсли;
КонецЕсли;
КонецЦикла;

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

&НаСервере
Процедура ЗначениеПараметраФункции(СтрокаТаблицы, Настройка)

Если Настройка = Неопределено Тогда
Возврат;
КонецЕсли;

Если СтрокаТаблицы.Тип = "ТаблицаЗначений"
Или СтрокаТаблицы.Тип = "Структура"
Или СтрокаТаблицы.Тип = "Массив" Тогда
Если ТипЗнч(Настройка.Значение) <> Тип("Строка") Тогда
СтрокаТаблицы.АдресЗначения = ПоместитьВоВременноеХранилище(Настройка.Значение, Новый УникальныйИдентификатор);
КонецЕсли;
СтрокаТаблицы.ЗначениеВФорме = СтрокаТаблицы.ТипВФорме;
Иначе
СтрокаТаблицы.ЗначениеВФорме = Настройка.Значение;
КонецЕсли;

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

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Refactor the procedure to improve readability and maintainability. Consider breaking it down into smaller, more focused sub-procedures.

// Например, для ссылки справочника возвращает "CatalogRef.ИмяСправочника".
//
&НаСервереБезКонтекста
Функция ТипСтрока(Знач Значение)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add descriptions for all parameters and the return value of the function to comply with best practices.

+ // Возвращает строковое представление типа, например, для ссылки справочника возвращает "CatalogRef.ИмяСправочника".
+ // Параметры:
+ // Значение - Значение, для которого необходимо получить строковое представление типа.
+ // Возвращает строковое представление типа.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Функция ТипСтрока(Знач Значение)
// Возвращает строковое представление типа, например, для ссылки справочника возвращает "CatalogRef.ИмяСправочника".
// Параметры:
// Значение - Значение, для которого необходимо получить строковое представление типа.
// Возвращает строковое представление типа.
Функция ТипСтрока(Знач Значение)

This comment has been minimized.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Out of diff range and nitpick comments (1)
src/Catalogs/__ПользовательскиеФункции/Forms/ФормаЭлемента/Ext/Form/Module.bsl (1)

2004-2021: Consider adding detailed comments explaining the purpose and logic of the function ИнициализацияТипаИЗначенияПараметра to improve maintainability.

@@ -80,6 +80,14 @@

КонецФункции

// См. __ОбщегоНазначенияСервер.ХранилищеОбщихНастроекУдалить.
Процедура ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя = Неопределено) Экспорт
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add descriptions for all parameters in the method ХранилищеОбщихНастроекУдалить.

Comment on lines +2027 to +2050
Функция ТипСтрока(Знач Значение)

СписокДобавленныхТипов = Справочники.__ПользовательскиеФункции.СформироватьСписокТипов();

ТипСтрока = Строка(Тип(Значение));
Если Значение = "СписокЗначений" Тогда
Возврат "СписокЗначений";
КонецЕсли;

ТипНайден = Ложь;
Для Каждого ЭлементСписка Из СписокДобавленныхТипов Цикл
Если ЭлементСписка.Представление = ТипСтрока Тогда
ТипНайден = Истина;
Прервать;
КонецЕсли;
КонецЦикла;

Если Не ТипНайден Тогда
ТипСтрока = XMLТип(Тип(Значение)).ИмяТипа;
КонецЕсли;

Возврат ТипСтрока;

КонецФункции
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add descriptions for all parameters and the return value of the function ТипСтрока to comply with best practices.

+ // Возвращает строковое представление типа, например, для ссылки справочника возвращает "CatalogRef.ИмяСправочника".
+ // Параметры:
+ // Значение - Значение, для которого необходимо получить строковое представление типа.
+ // Возвращает строковое представление типа.

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Функция ТипСтрока(Знач Значение)
СписокДобавленныхТипов = Справочники.__ПользовательскиеФункции.СформироватьСписокТипов();
ТипСтрока = Строка(Тип(Значение));
Если Значение = "СписокЗначений" Тогда
Возврат "СписокЗначений";
КонецЕсли;
ТипНайден = Ложь;
Для Каждого ЭлементСписка Из СписокДобавленныхТипов Цикл
Если ЭлементСписка.Представление = ТипСтрока Тогда
ТипНайден = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если Не ТипНайден Тогда
ТипСтрока = XMLТип(Тип(Значение)).ИмяТипа;
КонецЕсли;
Возврат ТипСтрока;
КонецФункции
Функция ТипСтрока(Знач Значение)
// Возвращает строковое представление типа, например, для ссылки справочника возвращает "CatalogRef.ИмяСправочника".
// Параметры:
// Значение - Значение, для которого необходимо получить строковое представление типа.
// Возвращает строковое представление типа.
СписокДобавленныхТипов = Справочники.__ПользовательскиеФункции.СформироватьСписокТипов();
ТипСтрока = Строка(Тип(Значение));
Если Значение = "СписокЗначений" Тогда
Возврат "СписокЗначений";
КонецЕсли;
ТипНайден = Ложь;
Для Каждого ЭлементСписка Из СписокДобавленныхТипов Цикл
Если ЭлементСписка.Представление = ТипСтрока Тогда
ТипНайден = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если Не ТипНайден Тогда
ТипСтрока = XMLТип(Тип(Значение)).ИмяТипа;
КонецЕсли;
Возврат ТипСтрока;
КонецФункции

Copy link

Passed

Analysis Details

34 Issues

  • Bug 0 Bugs
  • Vulnerability 0 Vulnerabilities
  • Code Smell 34 Code Smells

Coverage and Duplications

  • Coverage No coverage information (0.00% Estimated after merge)
  • Duplications 1.42% Duplicated Code (0.50% Estimated after merge)

Project ID: PSSL

View in SonarQube

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Comment on lines +2239 to +2245
Процедура ХранилищеУдалить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ИмяПользователя)

Если ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
МенеджерХранилища.Удалить(КлючОбъекта, КлючНастроек(КлючНастроек), ИмяПользователя);
КонецЕсли;

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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add descriptions for all parameters in the method ХранилищеУдалить.

- Процедура ХранилищеУдалить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ИмяПользователя)
+ Процедура ХранилищеУдалить(
+   МенеджерХранилища,  // Manager of the storage
+   КлючОбъекта,        // Object key
+   КлючНастроек,       // Settings key
+   ИмяПользователя     // Username
+ )

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
Процедура ХранилищеУдалить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ИмяПользователя)
Если ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
МенеджерХранилища.Удалить(КлючОбъекта, КлючНастроек(КлючНастроек), ИмяПользователя);
КонецЕсли;
КонецПроцедуры
Процедура ХранилищеУдалить(
МенеджерХранилища, // Manager of the storage
КлючОбъекта, // Object key
КлючНастроек, // Settings key
ИмяПользователя // Username
)
Если ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
МенеджерХранилища.Удалить(КлючОбъекта, КлючНастроек(КлючНастроек), ИмяПользователя);
КонецЕсли;
КонецПроцедуры

@ivanmolodec ivanmolodec merged commit 6333e32 into develop Apr 27, 2024
4 checks passed
@ivanmolodec ivanmolodec deleted the customFunctions branch April 27, 2024 08:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Доработать подсистему Пользовательских функций
2 participants