-
Notifications
You must be signed in to change notification settings - Fork 7
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
Feature/predefined id unique check 92 #118
Changes from 2 commits
d33632f
5b45f7d
a5569b1
00a86f6
86f9662
9f9300d
2bb7d32
4583ef8
675c1eb
dc2601e
223e7fe
7330b5b
3c8f9b0
020550e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда | ||
|
||
#Область ОбработчикиСобытий | ||
|
||
Процедура ПередЗаписью(Отказ) | ||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый()); | ||
КонецПроцедуры | ||
|
||
Процедура ПриЗаписи(Отказ) | ||
Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда | ||
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(ЭтотОбъект.Ссылка, ЭтотОбъект.ЭтоГруппа); | ||
КонецЕсли; | ||
КонецПроцедуры | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 💡 Codebase verification Condition in The condition checking for the absence of the 🔗 Analysis chainVerify the condition in 'ПриЗаписи' procedure regarding 'ЭтоНовый' property In the Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда Since Run the following script to identify any modifications to 🏁 Scripts executedThe following scripts were executed for the analysis: Script: #!/bin/bash
# Description: Search for any modifications to 'ДополнительныеСвойства' in the object module
# Test: Find procedures that modify 'ДополнительныеСвойства'. Expect: Any procedures that might remove or alter 'ЭтоНовый'.
ast-grep --lang bsl --pattern $'Процедура $_($_)
$$$
ДополнительныеСвойства = $_
$$$
КонецПроцедуры' --json
Length of output: 1383 Script: #!/bin/bash
# Description: Search for any assignments to 'ДополнительныеСвойства' in the codebase
# Find any lines where 'ДополнительныеСвойства' is assigned a new value
rg --type bsl 'ДополнительныеСвойства\s*='
Length of output: 72 Script: #!/bin/bash
# Description: Define 'bsl' file type and search for assignments to 'ДополнительныеСвойства' in the codebase
# Add 'bsl' file type associated with .bsl extension
rg --type-add 'bsl:*.bsl' --type bsl 'ДополнительныеСвойства\s*='
Length of output: 694 |
||
|
||
#КонецОбласти | ||
|
||
#КонецЕсли |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
| ||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда | ||
|
||
#Область ОбработчикиСобытий | ||
|
||
Процедура ПередЗаписью(Отказ) | ||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый()); | ||
КонецПроцедуры | ||
|
||
Процедура ПриЗаписи(Отказ) | ||
Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда | ||
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(ЭтотОбъект.Ссылка, ЭтотОбъект.ЭтоГруппа); | ||
КонецЕсли; | ||
КонецПроцедуры | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion LGTM with a suggestion: Consider reversing the condition in The However, consider reversing the condition for better readability and potentially more accurate logic: Процедура ПриЗаписи(Отказ)
- Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
+ Если пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
+ // Действия для нового объекта, если необходимо
+ Иначе
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(ЭтотОбъект.Ссылка, ЭтотОбъект.ЭтоГруппа);
КонецЕсли;
КонецПроцедуры This change makes it clearer that the hash is updated for existing objects, not new ones. It also allows for easy addition of specific actions for new objects if needed in the future.
|
||
|
||
#КонецОбласти | ||
|
||
#КонецЕсли |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
| ||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда | ||
|
||
#Область ОбработчикиСобытий | ||
|
||
Процедура ПередЗаписью(Отказ) | ||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый()); | ||
КонецПроцедуры | ||
|
||
Процедура ПриЗаписи(Отказ) | ||
Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда | ||
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(ЭтотОбъект.Ссылка, ЭтотОбъект.ЭтоГруппа); | ||
КонецЕсли; | ||
КонецПроцедуры | ||
|
||
#КонецОбласти | ||
|
||
#КонецЕсли |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
| ||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда | ||
|
||
#Область ОбработчикиСобытий | ||
|
||
Процедура ПередЗаписью(Отказ) | ||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый()); | ||
КонецПроцедуры | ||
|
||
Процедура ПриЗаписи(Отказ) | ||
Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда | ||
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(ЭтотОбъект.Ссылка, ЭтотОбъект.ЭтоГруппа); | ||
КонецЕсли; | ||
КонецПроцедуры | ||
|
||
#КонецОбласти | ||
|
||
#КонецЕсли |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,20 @@ | ||
| ||
| ||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда | ||
|
||
#Область ОбработчикиСобытий | ||
|
||
Процедура ПередЗаписью(Отказ) | ||
ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый()); | ||
КонецПроцедуры | ||
|
||
Процедура ПриЗаписи(Отказ) | ||
Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда | ||
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(ЭтотОбъект.Ссылка, ЭтотОбъект.ЭтоГруппа); | ||
КонецЕсли; | ||
КонецПроцедуры | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Verify the correct usage of 'СвойствоСтруктуры' function In the Consider modifying the code to correctly check for the property's existence: Перем ЗначениеЭтоНовый;
Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", ЗначениеЭтоНовый) Тогда
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(ЭтотОбъект.Ссылка, ЭтотОбъект.ЭтоГруппа);
КонецЕсли; Alternatively, if you only need to check for the existence of the property, you might use: Если Не ДополнительныеСвойства.Содержит("ЭтоНовый") Тогда
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(ЭтотОбъект.Ссылка, ЭтотОбъект.ЭтоГруппа);
КонецЕсли; |
||
|
||
#КонецОбласти | ||
|
||
#КонецЕсли | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
<?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"> | ||
<CommonForm uuid="166e97da-eea9-43e5-a47a-ee07fab3fd9c"> | ||
<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> | ||
<UseStandardCommands>false</UseStandardCommands> | ||
<ExtendedPresentation/> | ||
<Explanation/> | ||
</Properties> | ||
</CommonForm> | ||
</MetaDataObject> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Suggestion: Use 'СуществуетСвойство' method for clarity
For better readability and to directly check the existence of the
"ЭтоНовый"
property, consider using theСуществуетСвойство
method of theДополнительныеСвойства
structure:This makes the code more intuitive and eliminates the need for the external utility function.
Apply this diff to implement the suggestion: