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

improved funcs and refacted #167

Merged
merged 3 commits into from
Dec 20, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт

Описание.Имя = "ПроектнаяБиблиотекаПодсистем";
Описание.Версия = "1.0.4.15";
Описание.Версия = "1.0.4.16";

// Требуется библиотека стандартных подсистем.
Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@
//
Функция КлючиХешаПредопределенногоЭлемента(Поля, ЭтоГруппа = Ложь) Экспорт

Если ТипЗнч(Поля) <> Тип("Массив") Или Не ЗначениеЗаполнено(Поля) Тогда
Возврат Новый Структура;
КонецЕсли;

мКлючи = Новый Массив;

Если ЭтоГруппа Тогда
Expand All @@ -64,8 +68,7 @@
КонецЕсли;

Для Каждого Поле Из Поля Цикл
Если ИсключаемыеПоля.Свойство(Поле)
Или СтрНачинаетсяС(Поле, "Служебный_") Тогда
Если ИсключаемыеПоля.Свойство(Поле) Или СтрНачинаетсяС(Поле, "Служебный_") Тогда
Продолжить;
КонецЕсли;
мКлючи.Добавить(Поле);
Expand All @@ -75,12 +78,12 @@

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

// Обновляет хеш элемента в регистре, устанавливая при этом ручное изменение.
// Обновляет хеш предопределенного элемента в регистре, устанавливая при этом ручное изменение.
//
// Параметры:
// Объект - СправочникОбъект, ПланВидовХарактеристикОбъект - предопределенный элемент.
//
Процедура ОбновитьХешЭлемента(Объект) Экспорт
Процедура ОбновитьХешПредопределенногоЭлемента(Объект) Экспорт

Флаг = пбп_ПереадресацияКлиентСервер.СвойствоСтруктуры(Объект.ДополнительныеСвойства, "РучноеИзменение", Истина);

Expand All @@ -99,6 +102,16 @@
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.СоздатьЗаписьРегистра(Объект, ЭтоГруппа, КлючиХеша);
КонецПроцедуры

// Обновляет флаг ручного изменения элемента
//
// Параметры:
// Элемент - СправочникСсылка, ПланВидовХарактеристикСсылка - Ссылка на предопределенный элемент
// Флаг - Булево - Устанавливается если были изменены ключевые поля пользователем.
//
Процедура УстановитьФлагРучноеИзменение(Элемент, Флаг = Ложь) Экспорт
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьФлагРучногоИзменения(Элемент, Флаг);
КонецПроцедуры

// Заполнение предопределенных элементов, с возможностью серверного оповещения
// о существующих конфликтах при создании элементов.
//
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,16 @@

#Область СлужебныйПрограммныйИнтерфейс

// Инициализирует предопределенные значения из таблицы.
//
// Параметры:
// ИмяФормы - Строка - Имя формы из которой выполняется инициализация.
//
// Возвращаемое значение:
// ФиксированнаяСтруктура - Таблица с конфликтными элементами
// * АдресТаблицы - Строка - Адрес временного хранилища.
// * ЕстьСтроки - Булево - Истина если есть строки в таблице конфликтов.
//
Comment on lines +23 to +32
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Добавьте дополнительную обработку ошибок

Рекомендуется добавить проверку входного параметра ИмяФормы на пустое значение и корректный тип данных.

Предлагаемые изменения:

Функция ИнициализироватьПредопределенныеЗначения(ИмяФормы) Экспорт
+    Если Не ЗначениеЗаполнено(ИмяФормы) Тогда
+        ВызватьИсключение НСтр("ru='Не указано имя формы'");
+    КонецЕсли;
+    
+    Если ТипЗнч(ИмяФормы) <> Тип("Строка") Тогда
+        ВызватьИсключение НСтр("ru='Некорректный тип параметра ИмяФормы'");
+    КонецЕсли;

Committable suggestion skipped: line range outside the PR's diff.

Функция ИнициализироватьПредопределенныеЗначения(ИмяФормы) Экспорт

Менеджер = пбп_Переадресация.МенеджерОбъектаПоПолномуИмени(ИмяФормы);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,7 @@
Если СтрокаТаблицы.Служебный_ОбновитьЭлемент Тогда
ОбновитьЭлемент(МенеджерОбъекта, СтрокаТаблицы, КлючиХеша, Родители);
ИначеЕсли СтрокаТаблицы.Служебный_УстановитьФлагРучноеИзменение Тогда
УстановитьФлагРучноеИзменение(СтрокаТаблицы.Служебный_ПредопределенныйЭлемент);
пбп_ПредопределенныеЗначения.УстановитьФлагРучноеИзменение(СтрокаТаблицы.Служебный_ПредопределенныйЭлемент, Истина);
ИначеЕсли СтрокаТаблицы.Служебный_СоздатьЗаписьРегистра Тогда
пбп_ПредопределенныеЗначения.СоздатьЗаписьСостоянияПредопределенногоЭлемента(
СтрокаТаблицы.Служебный_ПредопределенныйЭлемент, ЭтоГруппа, КлючиХеша);
Expand Down Expand Up @@ -533,10 +533,6 @@

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

Процедура УстановитьФлагРучноеИзменение(Элемент)
РегистрыСведений.пбп_СостоянияПредопределенныхЭлементов.ОбновитьФлагРучногоИзменения(Элемент, Истина);
КонецПроцедуры

Процедура ЗаписатьЭлементИСвязанныеДанные(Элемент, КлючиХеша, Обновление = Ложь)

Элемент.ДополнительныеСвойства.Вставить("РучноеИзменение", Ложь);
Expand Down
2 changes: 1 addition & 1 deletion src/cf/Configuration.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
<xr:Item xsi:type="xr:MDObjectRef">Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</xr:Item>
</DefaultRoles>
<Vendor>Первый БИТ</Vendor>
<Version>1.0.4.15</Version>
<Version>1.0.4.16</Version>
<UpdateCatalogAddress/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UseManagedFormInOrdinaryApplication>false</UseManagedFormInOrdinaryApplication>
Expand Down
Loading