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

refacted predefined functions and removed bugs #173

Conversation

denisushakov
Copy link
Contributor

@denisushakov denisushakov commented Dec 24, 2024

Summary by CodeRabbit

  • Новые функции

    • Добавлена процедура для заполнения реквизитов на основании элемента наследования.
    • Введена новая функция для получения полей группы метаданных.
    • Расширен набор исключаемых полей для расчета хеша настроек интеграции.
    • Добавлена новая функция для обработки существующих предопределенных элементов с учетом состояния "ЭтоНовый".
  • Исправления ошибок

    • Упрощена логика обработки существующих предопределенных элементов, убрав условные проверки.
  • Документация

    • Обновлена версия в конфигурационном файле до 1.0.4.18.

@denisushakov denisushakov added bug Something isn't working enhancement Улучшение существующей функциональности labels Dec 24, 2024
@denisushakov denisushakov self-assigned this Dec 24, 2024
Copy link

coderabbitai bot commented Dec 24, 2024

Walkthrough

В данном pull request представлены изменения в нескольких модулях конфигурации, затрагивающие процедуры обработки предопределенных элементов и настроек интеграции. Основные изменения включают упрощение логики вызова метода пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент, добавление новых процедур для заполнения реквизитов, модификацию функций расчета хеша и обновление версии конфигурации с 1.0.4.17 до 1.0.4.18.

Changes

Файл Изменения
src/cf/Catalogs/*/Ext/ObjectModule.bsl Удаление условной проверки перед вызовом пбп_ОбщегоНазначенияСервер.ОбработатьСуществующийПредопределенныйЭлемент()
src/cf/CommonModules/пбп_ОбщегоНазначенияСервер/Ext/Module.bsl Добавление проверки свойства "ЭтоНовый" для предотвращения обработки новых элементов
src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl Добавление новой процедуры и изменение списка исключаемых полей для расчета хеша
src/cf/CommonModules/пбп_СхемыЗапросов/Ext/Module.bsl Изменение аргумента для обновления текста запроса
src/cf/Configuration.xml Обновление версии с 1.0.4.17 до 1.0.4.18

Possibly related PRs

Suggested reviewers

  • ivanmolodec
  • thvvmas

📜 Recent review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c6c06f1 and 30ef6ea.

📒 Files selected for processing (1)
  • src/cf/CommonModules/пбп_СхемыЗапросов/Ext/Module.bsl (1 hunks)
🔇 Additional comments (1)
src/cf/CommonModules/пбп_СхемыЗапросов/Ext/Module.bsl (1)

214-214: Обратите внимание на использование новой переменной “НовыйТекстЗапроса”
Данный вызов корректно записывает результат в исходный объект, гарантируя работу с обновлённым текстом запроса.


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>, please review it.
    • 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 gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @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.
    • @coderabbitai help me debug CodeRabbit configuration file.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

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.

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: 0

🧹 Nitpick comments (2)
src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl (1)

65-65: Добавление свойства "ЭтоНовый" обеспечивает внутреннюю идентификацию нового объекта. Убедитесь, что все модули, зависящие от этого флага, корректно обрабатывают ситуации, когда объект ранее уже был записан и «ЭтоНовый» может потерять актуальность.

src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (1)

301-302: Уточните необходимость вызова процедуры дополнения исключаемых полей
Вызывается процедура, расширяющая список исключаемых полей. Убедитесь, что для всех типов элементов (не только интеграционных) эти поля не требуются при расчёте хеша.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 31532ec and c6c06f1.

📒 Files selected for processing (11)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl (1 hunks)
  • src/cf/Catalogs/пбп_ИнтегрируемыеСистемы/Ext/ObjectModule.bsl (1 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl (2 hunks)
  • src/cf/Catalogs/пбп_ТипСоответствияОбъектовИБ/Ext/ObjectModule.bsl (1 hunks)
  • src/cf/ChartsOfCharacteristicTypes/пбп_ПредопределенныеЗначения/Ext/ObjectModule.bsl (1 hunks)
  • src/cf/CommonModules/пбп_ОбновлениеИнформационнойБазыПБП/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/пбп_ОбщегоНазначенияСервер/Ext/Module.bsl (1 hunks)
  • src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (2 hunks)
  • src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl (3 hunks)
  • src/cf/Configuration.xml (1 hunks)
  • src/cf/InformationRegisters/пбп_СостоянияПредопределенныхЭлементов/Ext/ManagerModule.bsl (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • src/cf/CommonModules/пбп_ОбновлениеИнформационнойБазыПБП/Ext/Module.bsl
🔇 Additional comments (13)
src/cf/Configuration.xml (1)

60-60: Проверьте согласованность версии во всех файлах конфигурации

Версия обновлена с 1.0.4.17 до 1.0.4.18, что соответствует характеру изменений (рефакторинг и исправление ошибок).

Выполните следующий скрипт для проверки согласованности версии во всех файлах:

✅ Verification successful

Версия успешно обновлена во всех необходимых файлах

Проверка показала, что версия 1.0.4.18 корректно указана в:

  • Основном файле конфигурации (src/cf/Configuration.xml)
  • Модуле обновления информационной базы (src/cf/CommonModules/пбп_ОбновлениеИнформационнойБазыПБП/Ext/Module.bsl)

Старая версия 1.0.4.17 не найдена в кодовой базе, что подтверждает полное и корректное обновление версии.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Описание: Поиск всех упоминаний версии в файлах конфигурации

# Поиск старой версии
echo "Поиск упоминаний старой версии 1.0.4.17:"
rg "1\.0\.4\.17"

# Поиск новой версии
echo -e "\nПроверка обновления до версии 1.0.4.18:"
rg "1\.0\.4\.18"

Length of output: 383

src/cf/Catalogs/пбп_ИнтегрируемыеСистемы/Ext/ObjectModule.bsl (1)

21-21: Убедитесь в корректности обработки предопределённых элементов.
Данное изменение упрощает логику, вызывая метод обработки предопределённого элемента безусловно. Важно проверить, что внутри самого метода «ОбработатьСуществующийПредопределенныйЭлемент» корректно учтён сценарий для новых и существующих элементов.

src/cf/ChartsOfCharacteristicTypes/пбп_ПредопределенныеЗначения/Ext/ObjectModule.bsl (1)

22-22: Аналогичное изменение в логике вызова процедуры.
Как и в другом модуле, вызывается метод обработки без дополнительных проверок. Рекомендуется удостовериться, что метод корректно обрабатывает случаи, когда объект действительно новый, чтобы избежать лишней логики или ошибочной обработки.

src/cf/Catalogs/пбп_ТипСоответствияОбъектовИБ/Ext/ObjectModule.bsl (1)

22-22: Устранена условная проверка «ЭтоНовый».
Метод «ОбработатьСуществующийПредопределенныйЭлемент» теперь вызывается всегда. Проверьте консистентность с остальным кодом, чтобы избежать неправильной обработки, если объект всё же новый.

src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Ext/ObjectModule.bsl (1)

75-75: Единообразный подход к вызову процедуры обработки предопределённого элемента.
Изменение соответствует общей модификации логики в других модулях. Обратите внимание, что если метод «ОбработатьСуществующийПредопределенныйЭлемент» ожидает отличное от «ЭтоНовый» поведение, важно убедиться, что это корректно учтено, чтобы избежать непредвиденных ошибок.

src/cf/Catalogs/пбп_НастройкиИнтеграции/Ext/ObjectModule.bsl (2)

58-63: Данная проверка привязана к условию «Не ЭтоГруппа». Логика разумна для отдельных элементов, но рекомендуется уточнить, не требуется ли дополнительная обработка при работе с группами (например, если у группы могут быть наследуемые реквизиты). Либо зафиксируйте, что такой сценарий не нужен.


69-76: Переход на безусловный вызов “ОбработатьСуществующийПредопределенныйЭлемент” выглядит корректным, однако имейте в виду, что теперь принимается решение внутри самой процедуры данного модуля, а не здесь. Если необходим контроль (например, при создании нового элемента), он реализуется там же.

src/cf/CommonModules/пбп_ОбщегоНазначенияСервер/Ext/Module.bsl (1)

885-888: Проверка свойства "ЭтоНовый" внутри процедуры “ОбработатьСуществующийПредопределенныйЭлемент” позволяет избежать избыточной обработки для только что созданных элементов. Это соответствует новой логике единого вызова процедуры из разных мест. Убедитесь, что в остальных ветвях кода не осталось пропущенных условий, зависящих от статуса «нового» элемента.

src/cf/InformationRegisters/пбп_СостоянияПредопределенныхЭлементов/Ext/ManagerModule.bsl (1)

125-128: Убедитесь в корректности набора полей для групп
Данный блок кода расширяет логику формирования ключей хеша для групп. Рекомендуется проверить, что все критически важные поля действительно попадают в итоговый массив и корректно обрабатываются в других местах системы.

src/cf/CommonModules/пбп_ПредопределенныеЗначенияПереопределяемый/Ext/Module.bsl (2)

Line range hint 260-261: Проверьте условие пропуска обновления при ручном изменении
Если хеш совпадает или установлен флаг ручного изменения, элемент исключается из дальнейшей обработки. Убедитесь, что это не приведёт к пропуску необходимых обновлений при изменении неключевых полей.


360-370: Оцените расширение списка исключаемых полей
Новая процедура добавляет несколько полей для исключения из расчёта хеша. Убедитесь, что в будущем эти поля не повлияют на идентификацию реально меняющихся свойств интеграции. При необходимости добавьте комментарий, почему данные поля не учитываются в хеше.

src/cf/CommonModules/пбп_ПредопределенныеЗначенияСлужебный/Ext/Module.bsl (2)

99-101: Проверьте корректность интеграции полей группы
Здесь вызывается функция для дополнения массива полей, специфичных для группы. Рекомендуется убедиться, что обработка уникальных полей группы ведётся так же, как и в остальных местах, где они применяются.


333-358: Убедитесь в корректной проверке реквизитов для групп
Функция "ПолучитьПоляГруппы" добавляет в итоговый массив поля, не предназначенные для отдельных элементов. Проверьте, что все необходимые реквизиты корректно фильтруются на уровне метаданных и что дальнейшая логика учитывает эти добавленные поля.

This comment has been minimized.

@denisushakov denisushakov requested a review from thvvmas December 24, 2024 09:54
Copy link

Passed

Analysis Details

0 Issues

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

Coverage and Duplications

  • Coverage No coverage information (12.80% Estimated after merge)
  • Duplications No duplication information (0.40% Estimated after merge)

Project ID: PSSL

View in SonarQube

@ivanmolodec ivanmolodec merged commit eeac183 into develop Dec 24, 2024
4 checks passed
@ivanmolodec ivanmolodec deleted the bugs/create-predefined-settings-groups-and-integration-flows-152 branch December 24, 2024 17:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement Улучшение существующей функциональности
Projects
None yet
2 participants