Skip to content

Добавлена функциональная опция на регистр соответствий объектов#333

Merged
ivanmolodec merged 5 commits into
developfrom
328-option-for-indentifies-integrated-systems
Nov 20, 2025
Merged

Добавлена функциональная опция на регистр соответствий объектов#333
ivanmolodec merged 5 commits into
developfrom
328-option-for-indentifies-integrated-systems

Conversation

@thvvmas

@thvvmas thvvmas commented Aug 29, 2025

Copy link
Copy Markdown
Contributor

Добавлена проверка в коде в методах программного интерфейса на использование константы 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.

  • Functional option and constant:
    • Add Constant.пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем and FunctionalOption.пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем (controls InformationRegister.пбп_СоответствиеОбъектовИнтегрируемыхСистем).
    • New role пбп_ЧтениеКонстантыИспользоватьСоответствияОбъектовИнтегрируемыхСистем with read/view rights.
  • Code enforcement:
    • Guard methods in пбп_ИнтеграцииСервер and пбп_ИнтеграцииСлужебный to check the constant; add ПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем().
  • UI:
    • Add common command пбп_Константы and form ОбщаяФорма.пбп_Константы with checkboxes for пбп_ИспользоватьПользовательскиеФункции and пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем.
  • Subsystems and wiring:
    • Include new command/form/constant/functional option/role in пбп_УправлениеИнтеграциями, пбп_КомандныйИнтерфейсУправлениеНастройками, пбп_ОбщегоНазначения; update command interface ordering.
  • Versioning:
    • Update configuration/library version to 1.0.10.7.

Written by Cursor Bugbot for commit 11f880b. This will update automatically on new commits. Configure here.

Добавлена проверка в коде в методах программного интерфейса на использование константы
Closes #328
@thvvmas thvvmas added this to the v.1.0.11 milestone Aug 29, 2025
@thvvmas thvvmas self-assigned this Aug 29, 2025
@thvvmas thvvmas added the Интеграции Подсистема Управление интеграциями label Aug 29, 2025
@coderabbitai

coderabbitai Bot commented Aug 29, 2025

Copy link
Copy Markdown

Walkthrough

Добавлена функциональная опция и константа для управления использованием регистра соответствий объектов интегрируемых систем; в серверных модулях и служебных функциях введены проверки этой константы с единым текстом ошибки; подсистема и метаданные обновлены, версия пакета увеличена.

Changes

Cohort / File(s) Summary
Гвард фичи в серверных интеграциях
src/cf/CommonModules/пбп_ИнтеграцииСервер/Ext/Module.bsl
В начале публичных процедур СоздатьИзменитьСоответствиеОбъектовИнтегрируемыхСистем и УдалитьСоответствиеОбъектовИнтегрируемыхСистем добавлена проверка константы пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем; при отключении — раннее исключение через служебный модуль.
Гвард фичи и единый текст ошибки в служебном модуле
src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl
Добавлены проверки константы в ПолучитьСсылкиПоИдентификаторамСистем, ПолучитьДополнительныеИдентификаторыИзСоответствияОбъектовСистем, ДобавитьСоответствияОбъектовИнтегрируемыхСистем; введена экспортная функция ПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем() возвращающая единый текст ошибки.
Метаданные — функциональная опция и константа
src/cf/FunctionalOptions/пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем.xml, src/cf/Constants/пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем.xml
Добавлены FunctionalOption и булева константа пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем с UUID и связями; FunctionalOption указывает на регистр соответствий.
Конфигурация и подсистема
src/cf/Configuration.xml, src/cf/Subsystems/пбп_УправлениеИнтеграциями.xml
Увеличена версия конфигурации (1.0.10.6 → 1.0.10.7); в подсистему добавлены ссылки на новую константу, функциональную опцию и роль.
Роль и права
src/cf/Roles/пбп_ЧтениеКонстантыИспользоватьСоответствияОбъектовИнтегрируемыхСистем.xml, src/cf/Roles/пбп_ЧтениеКонстантыИспользоватьСоответствияОбъектовИнтегрируемыхСистем/Ext/Rights.xml
Добавлена роль для чтения константы и файл прав, дающий Read/View для константы и набор UI-прав для подсистем.
Команды/формы для констант
src/cf/CommonCommands/пбп_Константы.xml, src/cf/CommonCommands/пбп_Константы/Ext/CommandModule.bsl, src/cf/CommonForms/пбп_Константы.xml, src/cf/CommonForms/пбп_Константы/Ext/Form.xml
Добавлены CommonCommand пбп_Константы, обработчик команды на клиенте открывающий форму ОбщаяФорма.пбп_Константы, сама форма и её представление с чекбоксами для соответствующих констант.
Командный интерфейс / подсистемы
src/cf/Subsystems/пбп_КомандныйИнтерфейсУправлениеНастройками.xml, src/cf/Subsystems/пбп_КомандныйИнтерфейсУправлениеНастройками/Ext/CommandInterface.xml, src/cf/Subsystems/пбп_ОбщегоНазначения.xml
Добавлен CommonCommand/ CommonForm в соответствующие подсистемы и создан файл порядка подсистем командного интерфейса.
Версия в скрипте обновления
src/cf/CommonModules/пбп_ОбновлениеИнформационнойБазыПБП/Ext/Module.bsl
Обновлена внутренняя версия в ПриДобавленииПодсистем(Описание) с 1.0.10.6 на 1.0.10.7.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Клиент
  participant ИнтеграцииСервер as пбп_ИнтеграцииСервер
  participant Служебный as пбп_ИнтеграцииСлужебный
  participant ОбщНазнСервер as пбп_ОбщегоНазначенияСервер
  participant Регистр as ИР_пбп_СоответствиеОбъектов

  Клиент->>ИнтеграцииСервер: Создать/УдалитьСоответствие(...)
  ИнтеграцииСервер->>ОбщНазнСервер: ПолучитьЗначениеКонстанты("пбп_Использовать...")
  alt Отключено
    ИнтеграцииСервер->>Служебный: ПолучитьТекстОшибкиОтключен...
    Служебный-->>ИнтеграцииСервер: "Использование регистра ... отключено"
    ИнтеграцииСервер-->>Клиент: Исключение (ранний выход)
  else Включено
    ИнтеграцииСервер->>ИнтеграцииСервер: Валидация входных данных
    ИнтеграцииСервер->>Регистр: Запись/удаление соответствий
    Регистр-->>ИнтеграцииСервер: Результат
    ИнтеграцииСервер-->>Клиент: Успех
  end
Loading
sequenceDiagram
  autonumber
  actor Клиент
  participant Служебный as пбп_ИнтеграцииСлужебный
  participant ОбщНазнСервер as пбп_ОбщегоНазначенияСервер
  participant Регистр as ИР_пбп_СоответствиеОбъектов

  Клиент->>Служебный: ПолучитьСсылки/ДобавитьСоответствия(...)
  Служебный->>ОбщНазнСервер: ПолучитьЗначениеКонстанты("пбп_Использовать...")
  alt Отключено
    Служебный-->>Клиент: Исключение с единым текстом
  else Включено
    Служебный->>Регистр: Чтение/запись соответствий
    Регистр-->>Служебный: Данные
    Служебный-->>Клиент: Результат
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 минут

Области требующие внимания:

  • Проверить корректность текста ошибки и его локализацию в пбп_ИнтеграцииСлужебный/Ext/Module.bsl.
  • Убедиться, что FunctionalOption/Constant правильно связаны и роль даёт ожидаемый доступ для чтения константы.
  • Проверить влияние повышения версии в скрипте обновления на процесс установки/миграции.

Possibly related PRs

Suggested reviewers

  • denisushakov

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately describes the main change: a functional option for the correspondence register has been added. The title is specific and concise, directly reflecting the changeset's primary objective.
Linked Issues check ✅ Passed All coding requirements from issue #328 are fully implemented: functional option, constant, feature-flag guards in API methods, role with read/view permissions, version bump, and subsystem integration all present.
Out of Scope Changes check ✅ Passed All changes align with issue #328 scope: functional option/constant for register control, runtime validation checks, role-based access, configuration updates, and version increment. No unrelated modifications detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 328-option-for-indentifies-integrated-systems

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2dfe68a and 11f880b.

📒 Files selected for processing (8)
  • src/cf/CommonCommands/пбп_Константы.xml (1 hunks)
  • src/cf/CommonCommands/пбп_Константы/Ext/CommandModule.bsl (1 hunks)
  • src/cf/CommonForms/пбп_Константы.xml (1 hunks)
  • src/cf/CommonForms/пбп_Константы/Ext/Form.xml (1 hunks)
  • src/cf/Configuration.xml (3 hunks)
  • src/cf/Subsystems/пбп_КомандныйИнтерфейсУправлениеНастройками.xml (1 hunks)
  • src/cf/Subsystems/пбп_КомандныйИнтерфейсУправлениеНастройками/Ext/CommandInterface.xml (1 hunks)
  • src/cf/Subsystems/пбп_ОбщегоНазначения.xml (1 hunks)
🧰 Additional context used
🧠 Learnings (12)
📓 Common learnings
Learnt from: ivanmolodec
Repo: firstBitSportivnaya/PSSL PR: 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`.
Learnt from: thvvmas
Repo: firstBitSportivnaya/PSSL PR: 332
File: src/cf/Roles/пбп_ЧтениеТокеновИнтегрируемыхСистем/Ext/Rights.xml:7-16
Timestamp: 2025-08-29T14:48:01.021Z
Learning: В роли пбп_ЧтениеТокеновИнтегрируемыхСистем присутствуют блоки прав на InformationRegister.пбп_СоответствияОбъектовИБ со значениями false, которые создают ненужную связность между объектами метаданных и должны быть удалены согласно атомарному подходу проектирования ролей.
Learnt from: thvvmas
Repo: firstBitSportivnaya/PSSL PR: 327
File: src/cf/CommonModules/пбп_ОбработкаСобытий/Ext/Module.bsl:137-140
Timestamp: 2025-08-08T12:46:43.559Z
Learning: В репозитории firstBitSportivnaya/PSSL (PR #327) принято правило: для событий ПередЗаписью/ПриЗаписи/ПередУдалением источники подписок не являются типами менеджеров (CatalogManager, DocumentManager и т.п.). Подписки создаются для объектов, наборов записей и КонстантаМенеджерЗначения, где доступно свойство ОбменДанными. Следовательно, в файле src/cf/CommonModules/пбп_ОбработкаСобытий/Ext/Module.bsl допустима прямая проверка Источник.ОбменДанными.Загрузка без дополнительной проверки наличия свойства.
Learnt from: thvvmas
Repo: firstBitSportivnaya/PSSL PR: 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.
Learnt from: thvvmas
Repo: firstBitSportivnaya/PSSL PR: 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.
Learnt from: thvvmas
Repo: firstBitSportivnaya/PSSL PR: 187
File: src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl:321-337
Timestamp: 2025-01-13T14:59:32.507Z
Learning: В процедуре ДобавитьСоответствияОбъектовИнтегрируемыхСистем регистра сведений пбп_СоответствиеОбъектовИнтегрируемыхСистем не требуется дополнительная обработка конкурентных изменений, так как запись набора записей происходит с замещением, что обеспечивает атомарность операции на уровне платформы 1С.
📚 Learning: 2025-08-08T12:05:09.475Z
Learnt from: thvvmas
Repo: firstBitSportivnaya/PSSL PR: 327
File: src/cf/CommonModules/пбп_КонстантыОбработкаСобытий/Ext/Module.bsl:24-30
Timestamp: 2025-08-08T12:05:09.475Z
Learning: В репозитории firstBitSportivnaya/PSSL модуль src/cf/CommonModules/пбп_КонстантыОбработкаСобытий/Ext/Module.bsl является каркасом для будущих модификаций; его не нужно изменять или удалять до появления реальных подписок/реализаций (источник: thvvmas, PR #327).

Applied to files:

  • src/cf/CommonForms/пбп_Константы/Ext/Form.xml
  • src/cf/CommonCommands/пбп_Константы/Ext/CommandModule.bsl
📚 Learning: 2025-04-02T14:17:56.837Z
Learnt from: thvvmas
Repo: firstBitSportivnaya/PSSL PR: 247
File: src/cf/DataProcessors/пбп_УниверсальнаяЗагрузкаИзФайлаЧерезТабличныйДокумент/Forms/Форма/Ext/Form/Module.bsl:158-221
Timestamp: 2025-04-02T14:17:56.837Z
Learning: In the procedure `ЗагрузитьНастройкиНаСервере` in the ПБП library, validation of correctly filled requisites is handled by XSD schema validation, with additional runtime checks for matching form requisite names and XML file attributes.

Applied to files:

  • src/cf/CommonForms/пбп_Константы/Ext/Form.xml
📚 Learning: 2025-08-08T12:38:08.400Z
Learnt from: thvvmas
Repo: firstBitSportivnaya/PSSL PR: 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/CommonCommands/пбп_Константы/Ext/CommandModule.bsl
📚 Learning: 2025-08-08T12:04:01.653Z
Learnt from: thvvmas
Repo: firstBitSportivnaya/PSSL PR: 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/CommonCommands/пбп_Константы/Ext/CommandModule.bsl
📚 Learning: 2025-08-08T12:05:06.019Z
Learnt from: thvvmas
Repo: firstBitSportivnaya/PSSL PR: 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/CommonCommands/пбп_Константы/Ext/CommandModule.bsl
📚 Learning: 2025-08-29T14:48:01.021Z
Learnt from: thvvmas
Repo: firstBitSportivnaya/PSSL PR: 332
File: src/cf/Roles/пбп_ЧтениеТокеновИнтегрируемыхСистем/Ext/Rights.xml:7-16
Timestamp: 2025-08-29T14:48:01.021Z
Learning: В роли пбп_ЧтениеТокеновИнтегрируемыхСистем присутствуют блоки прав на InformationRegister.пбп_СоответствияОбъектовИБ со значениями false, которые создают ненужную связность между объектами метаданных и должны быть удалены согласно атомарному подходу проектирования ролей.

Applied to files:

  • src/cf/Configuration.xml
📚 Learning: 2025-08-29T14:13:48.037Z
Learnt from: thvvmas
Repo: firstBitSportivnaya/PSSL PR: 332
File: src/cf/DefinedTypes/пбп_Организации.xml:20-25
Timestamp: 2025-08-29T14:13:48.037Z
Learning: В DefinedType пбп_Организации используется временный тип строка(10), который при внедрении библиотеки будет заменён на СправочникСсылка.Организации. Каталог Организации отсутствует в текущей конфигурации.

Applied to files:

  • src/cf/Configuration.xml
📚 Learning: 2024-11-19T12:53:46.472Z
Learnt from: denisushakov
Repo: firstBitSportivnaya/PSSL PR: 144
File: src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl:221-224
Timestamp: 2024-11-19T12:53:46.472Z
Learning: В клиентском коде на языке платформы 1С:Предприятие, в файле `src/cf/CommonForms/пбп_ФормаРазрешенияКонфликтовПредопределенныхЭлементов/Ext/Form/Module.bsl`, при сравнении значений перечислений необходимо использовать функцию `ПредопределенноеЗначение`, так как на клиенте нельзя напрямую обращаться к значениям перечислений.

Applied to files:

  • src/cf/Configuration.xml
📚 Learning: 2025-08-08T12:46:43.559Z
Learnt from: thvvmas
Repo: firstBitSportivnaya/PSSL PR: 327
File: src/cf/CommonModules/пбп_ОбработкаСобытий/Ext/Module.bsl:137-140
Timestamp: 2025-08-08T12:46:43.559Z
Learning: В репозитории firstBitSportivnaya/PSSL (PR #327) принято правило: для событий ПередЗаписью/ПриЗаписи/ПередУдалением источники подписок не являются типами менеджеров (CatalogManager, DocumentManager и т.п.). Подписки создаются для объектов, наборов записей и КонстантаМенеджерЗначения, где доступно свойство ОбменДанными. Следовательно, в файле src/cf/CommonModules/пбп_ОбработкаСобытий/Ext/Module.bsl допустима прямая проверка Источник.ОбменДанными.Загрузка без дополнительной проверки наличия свойства.

Applied to files:

  • src/cf/Configuration.xml
📚 Learning: 2025-02-13T07:34:04.243Z
Learnt from: thvvmas
Repo: firstBitSportivnaya/PSSL PR: 209
File: src/cf/InformationRegisters/пбп_ИсторияЗагрузкиФайлов.xml:173-211
Timestamp: 2025-02-13T07:34:04.243Z
Learning: В подсистеме управления интеграциями существует справочник истории интеграции, который хранит детальную информацию о загрузке файлов (размер, статус, длительность обработки и т.д.). Регистр пбп_ИсторияЗагрузкиФайлов не должен дублировать эту информацию.

Applied to files:

  • src/cf/Configuration.xml
📚 Learning: 2025-07-17T08:58:06.478Z
Learnt from: denisushakov
Repo: firstBitSportivnaya/PSSL PR: 311
File: src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента/Ext/Form/Module.bsl:93-93
Timestamp: 2025-07-17T08:58:06.478Z
Learning: В форме элемента справочника `пбп_ТипыИнтеграций` в файле `src/cf/Catalogs/пбп_ТипыИнтеграций/Forms/ФормаЭлемента/Ext/Form/Module.bsl` в процедуре `ПрочитатьТипыПараметров` реквизит `Тип` хранит именно имя типа как строку, а поле `ТипВФорме` используется для отображения представления типа на форме, поэтому преобразование `Строка(Тип(ТекПараметр.Тип))` является корректным.

Applied to files:

  • src/cf/Configuration.xml
⏰ 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)
  • GitHub Check: Cursor Bugbot
🔇 Additional comments (9)
src/cf/CommonForms/пбп_Константы/Ext/Form.xml (1)

1-30: Форма корректно структурирована.

Определение управляемой формы соответствует стандартам платформы 1С. Оба элемента управления CheckBoxField правильно связаны с атрибутом НаборКонстант через DataPath, режим WindowOpeningMode установлен корректно.

src/cf/Subsystems/пбп_ОбщегоНазначения.xml (1)

47-48: Корректное добавление метаданных в подсистему.

Ссылки на новые CommonCommand.пбп_Константы и CommonForm.пбп_Константы правильно добавлены в содержимое подсистемы общего назначения.

src/cf/Subsystems/пбп_КомандныйИнтерфейсУправлениеНастройками/Ext/CommandInterface.xml (1)

1-9: Корректное определение порядка подсистем в командном интерфейсе.

Структура CommandInterface соответствует стандартам платформы 1С, порядок подсистем определён правильно.

src/cf/CommonCommands/пбп_Константы/Ext/CommandModule.bsl (1)

1-5: Обработчик команды реализован корректно.

Клиентская процедура правильно открывает форму констант с передачей всех необходимых параметров выполнения. Реализация соответствует стандартному подходу для обработчиков общих команд.

src/cf/Subsystems/пбп_КомандныйИнтерфейсУправлениеНастройками.xml (1)

24-24: Команда корректно добавлена в подсистему.

Ссылка на CommonCommand.пбп_Константы правильно включена в содержимое подсистемы командного интерфейса управления настройками.

src/cf/CommonForms/пбп_Константы.xml (1)

1-24: Метаданные общей формы определены корректно.

Определение CommonForm соответствует стандартам платформы 1С, свойства формы настроены правильно для управляемого приложения.

src/cf/CommonCommands/пбп_Константы.xml (1)

1-25: Метаданные общей команды определены корректно.

Определение CommonCommand соответствует стандартам платформы 1С, размещение в группе NavigationPanelImportant и свойство ModifiesData=false установлены правильно.

src/cf/Configuration.xml (2)

60-60: Версия конфигурации повышена согласно требованиям.

Версия корректно изменена с 1.0.10.6 на 1.0.10.7 в соответствии с комментариями к PR.


275-275: Все метаданные добавлены в конфигурацию корректно.

В конфигурацию правильно добавлены все необходимые элементы:

  • Роль для чтения константы
  • Функциональная опция
  • Общая команда
  • Константа
  • Общая форма

Все добавления соответствуют целям PR и требованиям из комментариев.

Also applies to: 375-375, 382-382, 384-384, 388-388

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.

  • Provide your own instructions using the high_level_summary_instructions setting.
  • Format the summary however you like (bullet lists, tables, multi-section layouts, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example instruction:

"Divide the high-level summary into five sections:

  1. 📝 Description — Summarize the main change in 50–60 words, explaining what was done.
  2. 📓 References — List relevant issues, discussions, documentation, or related PRs.
  3. 📦 Dependencies & Requirements — Mention any new/updated dependencies, environment variable changes, or configuration updates.
  4. 📊 Contributor Summary — Include a Markdown table showing contributions:
    | Contributor | Lines Added | Lines Removed | Files Changed |
  5. ✔️ Additional Notes — Add any extra reviewer context.
    Keep each section concise (under 200 words) and use bullet or numbered lists for clarity."

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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 (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.

📥 Commits

Reviewing files that changed from the base of the PR and between a63e2c9 and 69337dc.

📒 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.bsl
  • src/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.bsl
  • src/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 замените
    Если Не пбп_ОбщегоНазначенияСервер.ПолучитьЗначениеКонстанты(
        "пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем") Тогда
        ВызватьИсключение ПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем();
    КонецЕсли;
    на
    Если Не ФункциональныеОпции.Выполняется(
        "пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем") Тогда
        ВызватьИсключение ПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем();
    КонецЕсли;
  • Подтвердите контракт: при выключенной опции нужно ли выбрасывать исключение или возвращать пустой результат?

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

И здесь — единый способ проверки флага через ФункциональныеОпции

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

Готов вынести общую процедуру проверки и применить во всех трёх местах.

-	Если Не пбп_ОбщегоНазначенияСервер.ПолучитьЗначениеКонстанты(
-		"пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем") Тогда
+	Если Не ФункциональныеОпции.Выполняется("пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем") Тогда
 		ВызватьИсключение ПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем();
 	КонецЕсли;
🤖 Prompt for AI Agents
В src/cf/CommonModules/пбп_ИнтеграцииСлужебный/Ext/Module.bsl строка 436-440:
сейчас выполняется прямая проверка константы
пбп_ИспользоватьСоответствияОбъектовИнтегрируемыхСистем и выбрасывается
исключение локально; вынесите эту логику в единый helper (например, Процедура
ПроверитьДоступностьРегистраСоответствий()), которая использует
ФункциональныеОпции (ФункциональныеОпции.ПолучитьЗначение или аналог) для
проверки флага и при отключении будет вызывать тот же
ПолучитьТекстОшибкиОтключенСоответствиеОбъектовИнтегрируемыхСистем() и бросать
исключение; затем замените текущую вставку на вызов нового helper и примените ту
же замену в остальных двух местах, чтобы убрать дублирование.

@ivanmolodec

Copy link
Copy Markdown
Member

Нужно добавить роль на константу и ещё повысить версию конфигурации

@sonar-openbsl-ru-qa-bot

Copy link
Copy Markdown

@ivanmolodec ivanmolodec merged commit c68029f into develop Nov 20, 2025
5 checks passed
@ivanmolodec ivanmolodec deleted the 328-option-for-indentifies-integrated-systems branch November 20, 2025 12:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Интеграции Подсистема Управление интеграциями

Projects

None yet

2 participants