Добавлена функциональная опция на регистр соответствий объектов#333
Conversation
Добавлена проверка в коде в методах программного интерфейса на использование константы Closes #328
WalkthroughДобавлена функциональная опция и константа для управления использованием регистра соответствий объектов интегрируемых систем; в серверных модулях и служебных функциях введены проверки этой константы с единым текстом ошибки; подсистема и метаданные обновлены, версия пакета увеличена. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Клиент
participant ИнтеграцииСервер as пбп_ИнтеграцииСервер
participant Служебный as пбп_ИнтеграцииСлужебный
participant ОбщНазнСервер as пбп_ОбщегоНазначенияСервер
participant Регистр as ИР_пбп_СоответствиеОбъектов
Клиент->>ИнтеграцииСервер: Создать/УдалитьСоответствие(...)
ИнтеграцииСервер->>ОбщНазнСервер: ПолучитьЗначениеКонстанты("пбп_Использовать...")
alt Отключено
ИнтеграцииСервер->>Служебный: ПолучитьТекстОшибкиОтключен...
Служебный-->>ИнтеграцииСервер: "Использование регистра ... отключено"
ИнтеграцииСервер-->>Клиент: Исключение (ранний выход)
else Включено
ИнтеграцииСервер->>ИнтеграцииСервер: Валидация входных данных
ИнтеграцииСервер->>Регистр: Запись/удаление соответствий
Регистр-->>ИнтеграцииСервер: Результат
ИнтеграцииСервер-->>Клиент: Успех
end
sequenceDiagram
autonumber
actor Клиент
participant Служебный as пбп_ИнтеграцииСлужебный
participant ОбщНазнСервер as пбп_ОбщегоНазначенияСервер
participant Регистр as ИР_пбп_СоответствиеОбъектов
Клиент->>Служебный: ПолучитьСсылки/ДобавитьСоответствия(...)
Служебный->>ОбщНазнСервер: ПолучитьЗначениеКонстанты("пбп_Использовать...")
alt Отключено
Служебный-->>Клиент: Исключение с единым текстом
else Включено
Служебный->>Регистр: Чтение/запись соответствий
Регистр-->>Служебный: Данные
Служебный-->>Клиент: Результат
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 минут Области требующие внимания:
Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches✅ Passed checks (5 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (8)
🧰 Additional context used🧠 Learnings (12)📓 Common learnings📚 Learning: 2025-08-08T12:05:09.475ZApplied to files:
📚 Learning: 2025-04-02T14:17:56.837ZApplied to files:
📚 Learning: 2025-08-08T12:38:08.400ZApplied to files:
📚 Learning: 2025-08-08T12:04:01.653ZApplied to files:
📚 Learning: 2025-08-08T12:05:06.019ZApplied to files:
📚 Learning: 2025-08-29T14:48:01.021ZApplied to files:
📚 Learning: 2025-08-29T14:13:48.037ZApplied to files:
📚 Learning: 2024-11-19T12:53:46.472ZApplied to files:
📚 Learning: 2025-08-08T12:46:43.559ZApplied to files:
📚 Learning: 2025-02-13T07:34:04.243ZApplied to files:
📚 Learning: 2025-07-17T08:58:06.478ZApplied to files:
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (9)
Tip 📝 Customizable high-level summaries are now available in beta!You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.
Example instruction:
Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (5)
src/cf/Constants/пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем.xml (1)
26-26: Заполните поле Comment для трассировки к задаче.Поможет поддержке и миграциям.
Примените дифф:
- <Comment/> + <Comment>Связано с задачей #328: опция управления использованием регистра соответствий объектов интегрируемых систем</Comment>src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl (2)
291-295: Проверку лучше вести по функциональной опции, а не по константе.Это унифицирует подход (см. использование ПолучитьФункциональнуюОпцию выше в модуле) и учитывает PrivilegedGetMode опции.
Примените дифф:
- Если Не пбп_ОбщегоНазначенияСервер.ПолучитьЗначениеКонстанты( - "пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем") Тогда + Если Не ПолучитьФункциональнуюОпцию("пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем") Тогда ВызватьИсключение пбп_ИнтеграцииСлужебный.ПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем(); КонецЕсли;
334-338: Дублирование проверки — вынести в небольшую локальную функцию или использовать тот же вызов функциональной опции.Сократит повторение и упростит поддержку.
Примените дифф:
- Если Не пбп_ОбщегоНазначенияСервер.ПолучитьЗначениеКонстанты( - "пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем") Тогда + Если Не ПолучитьФункциональнуюОпцию("пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем") Тогда ВызватьИсключение пбп_ИнтеграцииСлужебный.ПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем(); КонецЕсли;src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl (2)
398-402: Аналогично: заменить проверку на ФункциональныеОпции и устранить дублированиеПовтор проверки — примените тот же подход, что предложен выше.
- Если Не пбп_ОбщегоНазначенияСервер.ПолучитьЗначениеКонстанты( - "пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем") Тогда + Если Не ФункциональныеОпции.Выполняется("пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем") Тогда ВызватьИсключение ПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем(); КонецЕсли;
489-497: Текст ошибки ок; улучшить наименование функции и сообщение (опционально)
- Нейминг функции звучит неестественно (“Отключен Соответствие…”). Если будете переименовывать до мержа, предложу более читаемо: ПолучитьТекстОшибкиОтключеноИспользованиеСоответствийИС().
- В сообщение можно явно упомянуть функциональную опцию — облегчит поддержку.
- Возврат НСтр("ru='Использование регистра для хранения соответствий объектов интегрируемых систем отключено'"); + Возврат НСтр("ru='Использование регистра соответствий объектов интегрируемых систем отключено функциональной опцией «пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем»'");
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (6)
src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl(2 hunks)src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl(4 hunks)src/cf/Configuration.xml(1 hunks)src/cf/Constants/пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем.xml(1 hunks)src/cf/FunctionalOptions/пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем.xml(1 hunks)src/cf/Subsystems/пбп_УправлениеИнтеграциями.xml(1 hunks)
🧰 Additional context used
🧠 Learnings (5)
📓 Common learnings
Learnt from: ivanmolodec
PR: firstBitSportivnaya/PSSL#0
File: :0-0
Timestamp: 2024-07-29T10:13:46.428Z
Learning: User: ivanmolodec
URL: https://github.com/firstBitSportivnaya/PSSL/pull/52
Timestamp: 2024-04-19T09:46:50.450Z
Learning: Use the Russian language for all interactions related to the repository `firstBitSportivnaya/PSSL`.
📚 Learning: 2025-08-08T12:04:01.653Z
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#327
File: src/cf/CommonModules/пбп_БизнесПроцессыОбработкаСобытий/Ext/Module.bsl:21-23
Timestamp: 2025-08-08T12:04:01.653Z
Learning: В PR firstBitSportivnaya/PSSL#327 модуль CommonModule.пбп_БизнесПроцессыОбработкаСобытий (файл: src/cf/CommonModules/пбп_БизнесПроцессыОбработкаСобытий/Ext/Module.bsl, BSL) является каркасом для будущих доработок; в текущем PR его не изменять и не добавлять связанные EventSubscription. Подписки по бизнес-процессам будут добавлены позже в отдельной задаче/PR.
Applied to files:
src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl
📚 Learning: 2025-08-08T12:05:06.019Z
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#327
File: src/cf/CommonModules/пбп_ЗадачиОбработкаСобытий/Ext/Module.bsl:24-30
Timestamp: 2025-08-08T12:05:06.019Z
Learning: Модуль BSL src/cf/CommonModules/пбп_ЗадачиОбработкаСобытий/Ext/Module.bsl в репозитории firstBitSportivnaya/PSSL является каркасом для будущих модификаций; на текущем этапе он намеренно пуст и не подлежит изменению/удалению. Подтверждено пользователем thvvmas в PR #327.
Applied to files:
src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl
📚 Learning: 2025-08-08T12:38:08.400Z
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#327
File: src/cf/EventSubscriptions/пбп_РегистрыСведенийПриЗаписи.xml:17-17
Timestamp: 2025-08-08T12:38:08.400Z
Learning: В PR firstBitSportivnaya/PSSL#327 общий модуль src/cf/CommonModules/пбп_ОбработкаСобытий/Ext/Module.bsl присутствует и содержит экспортную процедуру ПриЗаписи(Источник, Отказ, Параметр3 = Неопределено, Параметр4 = Неопределено, Параметр5 = Неопределено, Параметр6 = Неопределено); использование её в подписке src/cf/EventSubscriptions/пбп_РегистрыСведенийПриЗаписи.xml корректно.
Applied to files:
src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bslsrc/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl
📚 Learning: 2025-01-13T14:59:32.507Z
Learnt from: thvvmas
PR: firstBitSportivnaya/PSSL#187
File: src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl:321-337
Timestamp: 2025-01-13T14:59:32.507Z
Learning: В процедуре ДобавитьСоответствияОбъектовИнтегрируемыхСистем регистра сведений пбп_СоответствиеОбъектовИнтегрируемыхСистем не требуется дополнительная обработка конкурентных изменений, так как запись набора записей происходит с замещением, что обеспечивает атомарность операции на уровне платформы 1С.
Applied to files:
src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bslsrc/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl
🔇 Additional comments (6)
src/cf/Constants/пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем.xml (1)
19-56: Константа добавлена корректно.Тип, синоним и прочие свойства заданы без нареканий.
src/cf/Subsystems/пбп_УправлениеИнтеграциями.xml (1)
77-78: Ссылки на константу и функциональную опцию в контенте подсистемы — ок.Объекты подключены корректно.
src/cf/Configuration.xml (1)
372-372: Объявления FunctionalOption и Constant в конфигурации — ок.Убедитесь, что стартовое значение константы (=Ложь) соответствует ожидаемому поведению по умолчанию в инсталляциях.
Also applies to: 379-379
src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl (1)
291-295: Проверьте локализацию текста ошибки.Убедитесь, что пбп_ИнтеграцииСлужебный.ПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем() возвращает строку через НСтр(...) для i18n, как в остальных местах модуля.
Also applies to: 334-338
src/cf/FunctionalOptions/пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем.xml (1)
3-18: Функциональная опция оформлена правильно.Location указывает на константу, Content — на регистр, PrivilegedGetMode=true — верно.
src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl (1)
325-329: Использовать ФункциональныеОпции вместо прямого вызова константы
- Убедитесь, что модуль
ФункциональныеОпциидоступен и подключён в репозитории.- В местах 325, 398–402 и 436–440 замените
наЕсли Не пбп_ОбщегоНазначенияСервер.ПолучитьЗначениеКонстанты( "пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем") Тогда ВызватьИсключение ПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем(); КонецЕсли;Если Не ФункциональныеОпции.Выполняется( "пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем") Тогда ВызватьИсключение ПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем(); КонецЕсли;- Подтвердите контракт: при выключенной опции нужно ли выбрасывать исключение или возвращать пустой результат?
There was a problem hiding this comment.
🛠️ Refactor suggestion
И здесь — единый способ проверки флага через ФункциональныеОпции
Для записи в регистр проверка особенно критична; используйте ФункциональныеОпции и единый helper, чтобы не дублировать код (например, Процедура ПроверитьДоступностьРегистраСоответствий()).
Готов вынести общую процедуру проверки и применить во всех трёх местах.
- Если Не пбп_ОбщегоНазначенияСервер.ПолучитьЗначениеКонстанты(
- "пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем") Тогда
+ Если Не ФункциональныеОпции.Выполняется("пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем") Тогда
ВызватьИсключение ПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем();
КонецЕсли;🤖 Prompt for AI Agents
В src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl строка 436-440:
сейчас выполняется прямая проверка константы
пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем и выбрасывается
исключение локально; вынесите эту логику в единый helper (например, Процедура
ПроверитьДоступностьРегистраСоответствий()), которая использует
ФункциональныеОпции (ФункциональныеОпции.ПолучитьЗначение или аналог) для
проверки флага и при отключении будет вызывать тот же
ПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем() и бросать
исключение; затем замените текущую вставку на вызов нового helper и примените ту
же замену в остальных двух местах, чтобы убрать дублирование.
|
Нужно добавить роль на константу и ещё повысить версию конфигурации |
|

0 New Issues
2 Fixed Issues
0 Accepted Issues
No data about coverage (8.70% Estimated after merge)
Добавлена проверка в коде в методах программного интерфейса на использование константы Closes #328
Summary by CodeRabbit
Новые возможности
Обслуживание
✏️ Tip: You can customize this high-level summary in your review settings.
Note
Adds a functional option and boolean constant to toggle use of the correspondence register, enforces checks in integration APIs, introduces a constants command/form, wires into subsystems/roles, and bumps version to 1.0.10.7.
Constant.пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистемandFunctionalOption.пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем(controlsInformationRegister.пбп_СоответствиеОбъектовИнтегрируемыхСистем).пбп_ЧтениеКонстантыИспользоватьСоответствияОбъектовИнтегрируемыхСистемwith read/view rights.пбп_ИнтеграцииСерверandпбп_ИнтеграцииСлужебныйto check the constant; addПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем().пбп_Константыand formОбщаяФорма.пбп_Константыwith checkboxes forпбп_ИспользоватьПользовательскиеФункцииandпбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем.пбп_УправлениеИнтеграциями,пбп_КомандныйИнтерфейсУправлениеНастройками,пбп_ОбщегоНазначения; update command interface ordering.1.0.10.7.Written by Cursor Bugbot for commit 11f880b. This will update automatically on new commits. Configure here.