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

Feature/predefined id unique check 92 #118

Merged
merged 14 commits into from
Oct 18, 2024
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,20 @@
КонецЕсли;
КонецЕсли;

ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());

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

Процедура ПриЗаписи(Отказ)

Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(Ссылка, ЭтоГруппа);
Copy link
Member

Choose a reason for hiding this comment

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

Мне кажется имеет смысл вынести вызов модуля менеджера в общий модуль, как это сделано для получения предопределенных значений например

КонецЕсли;

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

#КонецОбласти // ОбработчикиСобытий
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
</Button>
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="NotificationProcessing">ОбработкаОповещения</Event>
</Events>
<ChildItems>
<UsualGroup name="СписокКомпоновщикНастроекПользовательскиеНастройки" id="1">
<Title>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,23 @@

#Область ОбработчикиСобытийФормы

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

Если ИмяСобытия = "ОбновитьСписокПредопределенных" Тогда
Элементы.Список.Обновить();
КонецЕсли;
Comment on lines +26 to +28
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Consider adding error handling for the list update

While updating the list with Элементы.Список.Обновить();, it's advisable to include error handling to manage potential exceptions that may occur during the update process. This ensures robustness and improves user experience in case of unexpected issues.

Apply this diff to add basic error handling:

Если ИмяСобытия = "ОбновитьСписокПредопределенных" Тогда
+   Попытка
        Элементы.Список.Обновить();
+   Исключение
+       // Обработка ошибки обновления списка
+       Предупреждение("Ошибка обновления списка предопределенных значений.");
+   КонецПопытки;
КонецЕсли;
📝 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. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Если ИмяСобытия = "ОбновитьСписокПредопределенных" Тогда
Элементы.Список.Обновить();
КонецЕсли;
Если ИмяСобытия = "ОбновитьСписокПредопределенных" Тогда
Попытка
Элементы.Список.Обновить();
Исключение
// Обработка ошибки обновления списка
Предупреждение("Ошибка обновления списка предопределенных значений.");
КонецПопытки;
КонецЕсли;


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

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаСервереБезКонтекста
Процедура ЗаполнитьПредопределенныеНаСервере()
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_ИнтеграционныеПотоки);
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьПредопределенные(Команда)

ЗаполнитьПредопределенныеНаСервере();

Элементы.Список.Обновить();
пбп_ПредопределенныеЗначенияКлиент.СоздатьОбновитьПредопределенныеЗначения(ЭтотОбъект);

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

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ОбработчикиСобытий

Процедура ПередЗаписью(Отказ)

Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());

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

Процедура ПриЗаписи(Отказ)

Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
Copy link

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:

-	Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
+	Если Не ДополнительныеСвойства.СуществуетСвойство("ЭтоНовый") Тогда

РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(Ссылка, ЭтоГруппа);
КонецЕсли;

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

#КонецОбласти

#КонецЕсли
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
</Button>
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="NotificationProcessing">ОбработкаОповещения</Event>
</Events>
<ChildItems>
<UsualGroup name="СписокКомпоновщикНастроекПользовательскиеНастройки" id="1">
<Title>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,23 @@

#Область ОбработчикиСобытийФормы

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

Если ИмяСобытия = "ОбновитьСписокПредопределенных" Тогда
Элементы.Список.Обновить();
КонецЕсли;

КонецПроцедуры
Comment on lines +24 to +30
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Use constants for event names to improve maintainability

In the procedure ОбработкаОповещения, the event name "ОбновитьСписокПредопределенных" is hard-coded as a string literal. To enhance code maintainability and reduce the risk of typos, consider defining a constant for the event name.

You can define the event name as a constant at the module level:

Перем ИмяСобытияОбновитьСписокПредопределенных;

&НаКлиенте
Процедура ПриОткрытии()
    ИмяСобытияОбновитьСписокПредопределенных = "ОбновитьСписокПредопределенных";
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    Если ИмяСобытия = ИмяСобытияОбновитьСписокПредопределенных Тогда
        Элементы.Список.Обновить();
    КонецЕсли;
КонецПроцедуры

This approach improves readability and makes it easier to manage event names throughout the codebase.


#КонецОбласти

#Область ОбработчикиКомандФормы

&НаСервереБезКонтекста
Процедура ЗаполнитьПредопределенныеНаСервере()
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_ИнтегрируемыеСистемы);
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьПредопределенные(Команда)

ЗаполнитьПредопределенныеНаСервере();

Элементы.Список.Обновить();
пбп_ПредопределенныеЗначенияКлиент.СоздатьОбновитьПредопределенныеЗначения(ЭтотОбъект);

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,20 @@
УчетнаяЗапись = Неопределено;
ИмяОбъекта = Неопределено;
КонецЕсли;

ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());

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

Процедура ПриЗаписи(Отказ)

Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(Ссылка, ЭтоГруппа);
КонецЕсли;

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
</Button>
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="NotificationProcessing">ОбработкаОповещения</Event>
</Events>
<ChildItems>
<UsualGroup name="СписокКомпоновщикНастроекПользовательскиеНастройки" id="1">
<Title>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,23 @@

#Область ОбработчикиСобытийФормы

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

Если ИмяСобытия = "ОбновитьСписокПредопределенных" Тогда
Элементы.Список.Обновить();
КонецЕсли;

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

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаСервереБезКонтекста
Процедура ЗаполнитьПредопределенныеНаСервере()
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_НастройкиИнтеграции);
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьПредопределенные(Команда)

ЗаполнитьПредопределенныеНаСервере();

Элементы.Список.Обновить();
пбп_ПредопределенныеЗначенияКлиент.СоздатьОбновитьПредопределенныеЗначения(ЭтотОбъект);

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

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ОбработчикиСобытий

Процедура ПередЗаписью(Отказ)

Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());

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

Процедура ПриЗаписи(Отказ)

Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(Ссылка, ЭтоГруппа);
КонецЕсли;

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

#КонецОбласти

#КонецЕсли
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
</Button>
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="NotificationProcessing">ОбработкаОповещения</Event>
</Events>
<ChildItems>
<UsualGroup name="СписокКомпоновщикНастроекПользовательскиеНастройки" id="1">
<Title>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,23 @@

#Область ОбработчикиСобытийФормы

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

Если ИмяСобытия = "ОбновитьСписокПредопределенных" Тогда
Элементы.Список.Обновить();
КонецЕсли;

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

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаСервереБезКонтекста
Процедура ЗаполнитьПредопределенныеНаСервере()
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(Справочники.пбп_ТипСоответствияОбъектовИБ);
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьПредопределенные(Команда)

ЗаполнитьПредопределенныеНаСервере();

Элементы.Список.Обновить();
пбп_ПредопределенныеЗначенияКлиент.СоздатьОбновитьПредопределенныеЗначения(ЭтотОбъект);

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

Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,30 @@


#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ОбработчикиСобытий

Процедура ПередЗаписью(Отказ)

Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());

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

Процедура ПриЗаписи(Отказ)

Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

Если Не пбп_ОбщегоНазначенияСлужебныйКлиентСервер.СвойствоСтруктуры(ДополнительныеСвойства, "ЭтоНовый", Ложь) Тогда
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьХешЭлемента(Ссылка, ЭтоГруппа);
КонецЕсли;

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

#КонецОбласти

#КонецЕсли
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="NotificationProcessing">ОбработкаОповещения</Event>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
</Events>
<ChildItems>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,27 +8,24 @@

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

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

Если ИмяСобытия = "ОбновитьСписокПредопределенных" Тогда
Элементы.Список.Обновить();
КонецЕсли;

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

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаСервереБезКонтекста
Процедура ЗаполнитьПредопределенныеНаСервере()
пбп_ПредопределенныеЗначения.ИнициализироватьПредопределенныеЗначения(
ПланыВидовХарактеристик.пбп_ПредопределенныеЗначения);
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьПредопределенные(Команда)

ЗаполнитьПредопределенныеНаСервере();

Элементы.Список.Обновить();
пбп_ПредопределенныеЗначенияКлиент.СоздатьОбновитьПредопределенныеЗначения(ЭтотОбъект);

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

#КонецОбласти

#Область СлужебныеПроцедурыИФункции
КонецПроцедуры

#КонецОбласти
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>
Loading
Loading