-
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
improved funcs and refacted #167
Conversation
WalkthroughДанный pull request включает обновление версии конфигурации с Changes
Possibly related PRs
Suggested reviewers
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? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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 using PR comments)
Other keywords and placeholders
Documentation and Community
|
This comment has been minimized.
This comment has been minimized.
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.
Actionable comments posted: 1
🧹 Nitpick comments (1)
src/cf/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl (1)
105-113
: Добавьте документацию о возможных исключенияхВ документации процедуры
УстановитьФлагРучноеИзменение
следует указать возможные исключения.Дополните комментарий:
// Обновляет флаг ручного изменения элемента // // Параметры: // Элемент - СправочникСсылка, ПланВидовХарактеристикСсылка - Ссылка на предопределенный элемент // Флаг - Булево - Устанавливается если были изменены ключевые поля пользователем. +// +// Исключения: +// - Если элемент не найден +// - Если элемент не является предопределенным
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
src/cf/CommonModules/пбп_ОбновлениеИнформационнойБазыПБП/Ext/Module.bsl
(1 hunks)src/cf/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl
(4 hunks)src/cf/CommonModules/пбп_ПредопределенныеЗначенияВызовСервера/Ext/Module.bsl
(1 hunks)src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl
(1 hunks)src/cf/Configuration.xml
(1 hunks)
✅ Files skipped from review due to trivial changes (2)
- src/cf/Configuration.xml
- src/cf/CommonModules/пбп_ОбновлениеИнформационнойБазыПБП/Ext/Module.bsl
🔇 Additional comments (3)
src/cf/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl (2)
58-60
: Улучшена проверка входных параметров
Добавленная проверка корректно обрабатывает невалидные входные данные.
81-86
: Улучшено наименование процедуры
Переименование процедуры ОбновитьХешЭлемента
в ОбновитьХешПредопределенногоЭлемента
делает её назначение более понятным.
src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl (1)
304-304
: Улучшена инкапсуляция
Вызов УстановитьФлагРучноеИзменение
через модуль пбп_ПредопределенныеЗначения
улучшает структуру кода.
// Инициализирует предопределенные значения из таблицы. | ||
// | ||
// Параметры: | ||
// ИмяФормы - Строка - Имя формы из которой выполняется инициализация. | ||
// | ||
// Возвращаемое значение: | ||
// ФиксированнаяСтруктура - Таблица с конфликтными элементами | ||
// * АдресТаблицы - Строка - Адрес временного хранилища. | ||
// * ЕстьСтроки - Булево - Истина если есть строки в таблице конфликтов. | ||
// |
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
Добавьте дополнительную обработку ошибок
Рекомендуется добавить проверку входного параметра ИмяФормы
на пустое значение и корректный тип данных.
Предлагаемые изменения:
Функция ИнициализироватьПредопределенныеЗначения(ИмяФормы) Экспорт
+ Если Не ЗначениеЗаполнено(ИмяФормы) Тогда
+ ВызватьИсключение НСтр("ru='Не указано имя формы'");
+ КонецЕсли;
+
+ Если ТипЗнч(ИмяФормы) <> Тип("Строка") Тогда
+ ВызватьИсключение НСтр("ru='Некорректный тип параметра ИмяФормы'");
+ КонецЕсли;
Committable suggestion skipped: line range outside the PR's diff.
This comment has been minimized.
This comment has been minimized.
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.
Actionable comments posted: 0
🧹 Nitpick comments (4)
src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl (3)
219-220
: Уточнение лексического стиля
Строки выглядят корректно, но рекомендуется привести имя возвращаемой таблицы к более читаемому формату, например "ТаблицаКонфликтных" вместо "ТаблицаКонфликтныхЭлементов", если это согласуется со стилем именования в проекте.
366-386
: Логика конфликта идентификаторов
Функция ТаблицаКонфликтныхЭлементов расширяет базовую таблицу дополнительными полями и возвращает её для обработки конфликтов. Рекомендуется при добавлении поля "Служебный_ДублированиеИдентификаторов" предоставлять комментарий, объясняющий его назначение, чтобы мера по устранению конфликтов была более понятна коллегам.
652-665
: Расширение функционала
СоздатьКолонкиТаблицыПредопределенныхЭлементов(…) даёт удобный инструмент для динамического формирования структуры таблицы. Обратите внимание, что в некоторых случаях может потребоваться контроль дубликатов колонок (если колонки формируются и вне данной процедуры).src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (1)
21-21
: Выделение области
Новая область “#Область ПрограммныйИнтерфейс” повышает читабельность модуля. Рекомендуется документировать границы и назначение областей для более быстрой навигации по файлу.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
src/cf/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl
(5 hunks)src/cf/CommonModules/пбп_ПредопределенныеЗначенияКлиент/Ext/Module.bsl
(0 hunks)src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl
(2 hunks)src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl
(4 hunks)src/cf/InformationRegisters/пбп_СостоянияПредопределенныхЭлементов/Ext/ManagerModule.bsl
(1 hunks)
💤 Files with no reviewable changes (1)
- src/cf/CommonModules/пбп_ПредопределенныеЗначенияКлиент/Ext/Module.bsl
🚧 Files skipped from review as they are similar to previous changes (1)
- src/cf/CommonModules/пбп_ПредопределенныеЗначения/Ext/Module.bsl
🔇 Additional comments (9)
src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl (6)
304-304
: Проверка вызываемой процедуры
Здесь вызывается “УстановитьФлагРучноеИзменение” из модуля пбп_ПредопределенныеЗначения. Убедитесь, что соответствующая процедура действительно экспортируется и доступна в нужном контексте, поскольку аналогичная процедура была удалена в текущем модуле.
332-333
: Отличная структуризация
Создание отдельной области “#Область РаботаСТаблицейПредопределенных” повышает читабельность и логическую группировку кода.
334-364
: Назначение функции
Функция ТаблицаПредопределенныхЭлементов(Менеджер) хорошо структурирована и позволяет централизованно формировать таблицу значений для предопределенных элементов. Обратите внимание, чтобы все внешние вызовы (например, пбп_ПредопределенныеЗначенияПовтИсп.ФункцииСозданияТаблицПредопределенныхЭлементов()) корректно обрабатывали исключения, если используются нестандартные механизмы динамического вызова.
388-414
: Убедитесь в согласованности типов
Функция КолонкиПредопределенныхЭлементов возвращает структуру, используемую в других модулях. Проверьте, что все колонки (например, строки, булево и т.д.) совпадают по типу с соответствующими полями в регистре или справочнике, чтобы избежать ошибок при объединении таблиц или вставке данных.
416-416
: Явное завершение области
Закрытие области “#КонецОбласти” соответствует стандартному оформлению. Нет замечаний.
666-666
: Логическое завершение
Ограничивающая область (#КонецОбласти) корректно закрывает блок кода. Нет дополнительных замечаний.
src/cf/InformationRegisters/пбп_СостоянияПредопределенныхЭлементов/Ext/ManagerModule.bsl (1)
115-115
: Изменение источника ключевых полей
При использовании пбп_ПредопределенныеЗначенияСлужебный.КолонкиПредопределенныхЭлементов(...) следует убедиться, что возвращаемая структура колонок полностью соответствует потребностям этой функции (КлючиХешаОбъект). Если исчезновение/переименование колонок произойдёт в другом модуле, это может привести к ошибкам при расчёте хеша.
src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (2)
1-20
: Лицензионные комментарии
Все заголовки с лицензией Apache 2.0 оформлены корректно и соответствуют принятым стандартам открытого ПО.
329-329
: Экспорт функции ОбщиеКолонки
Функция ОбщиеКолонки(Менеджер) помечена как Экспорт, это верное решение. Убедитесь, что она вызывается там, где перед этим была удалена аналогичная логика, чтобы избежать дублирования.
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.
Actionable comments posted: 1
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
src/cf/CommonModules/пбп_ОбщегоНазначенияСервер/Ext/Module.bsl
(1 hunks)src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl
(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- src/cf/CommonModules/пбп_ОбщегоНазначенияСервер/Ext/Module.bsl
🔇 Additional comments (1)
src/cfe/YAXUnit/CommonModules/ОМ_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl (1)
Line range hint 1-143
: Тестовое покрытие реализовано корректно
Набор тестов охватывает все необходимые сценарии:
- Корректные данные
- Пустая таблица
- Менеджер не из подсистемы предопределенных
- Менеджер равен Неопределено
- Проверка принадлежности к подсистеме
Реализация включает правильные проверки типов и утверждения.
@@ -25,7 +25,7 @@ | |||
МенеджерОбъекта = пбп_Переадресация | |||
.МенеджерОбъектаПоПолномуИмени("ПланВидовХарактеристик.пбп_ПредопределенныеЗначения"); | |||
|
|||
Таблица = пбп_ПредопределенныеЗначенияПереопределяемый.ТаблицаПредопределенныхЭлементов(МенеджерОбъекта); | |||
Таблица = пбп_ПредопределенныеЗначенияСлужебный.ТаблицаПредопределенныхЭлементов(МенеджерОбъекта); |
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.
💡 Codebase verification
Требуется обновление ссылок на переопределяемый модуль
Анализ показал, что старый модуль пбп_ПредопределенныеЗначенияПереопределяемый
все еще активно используется в следующих местах:
- В модуле
пбп_ПредопределенныеЗначенияСлужебный
для получения общих колонок и в документации методов - В модуле
пбп_ПредопределенныеЗначенияПовтИсп
для работы с предопределенными значениями различных типов - В модуле
пбп_ПредопределенныеЗначения
для получения исключаемых полей - В форме
пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов
Для обеспечения согласованности кодовой базы необходимо обновить все эти вызовы на новый модуль пбп_ПредопределенныеЗначенияСлужебный
.
🔗 Analysis chain
Изменение источника получения предопределенных значений
Изменение источника с пбп_ПредопределенныеЗначенияПереопределяемый
на пбп_ПредопределенныеЗначенияСлужебный
выглядит логичным, так как это соответствует общей реструктуризации модулей, упомянутой в сводке изменений.
Давайте проверим согласованность использования нового модуля:
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Описание: Поиск оставшихся использований старого модуля
rg -l "пбп_ПредопределенныеЗначенияПереопределяемый\.ТаблицаПредопределенныхЭлементов"
# Описание: Проверка использования нового модуля
rg -l "пбп_ПредопределенныеЗначенияСлужебный\.ТаблицаПредопределенныхЭлементов"
Length of output: 326
Script:
#!/bin/bash
# Проверим содержимое файла, где используется старый модуль
rg -A 5 "пбп_ПредопределенныеЗначенияПереопределяемый\.ТаблицаПредопределенныхЭлементов" src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl
# Проверим, есть ли другие вызовы методов старого модуля
rg "пбп_ПредопределенныеЗначенияПереопределяемый\."
Length of output: 4552
Summary by CodeRabbit
Новые функции
Изменения
1.0.4.16
.Удаления