Skip to content

feat: чтение периодичности регистров сведений и расчета#642

Merged
nixel2007 merged 2 commits into
developfrom
claude/register-periodicity-field-vx032j
Jul 14, 2026
Merged

feat: чтение периодичности регистров сведений и расчета#642
nixel2007 merged 2 commits into
developfrom
claude/register-periodicity-field-vx032j

Conversation

@nixel2007

@nixel2007 nixel2007 commented Jul 14, 2026

Copy link
Copy Markdown
Member

Описание

Добавлено чтение свойства «Периодичность» у регистров, где оно есть в модели 1С. Ранее оно не читалось ни из формата конфигуратора, ни из EDT.

Проверены все виды регистров:

Тип регистра «Периодичность» Действие
Регистр сведений (InformationRegister) есть ✅ добавлено чтение
Регистр расчета (CalculationRegister) есть ✅ добавлено чтение
Регистр бухгалтерии (AccountingRegister) нет (есть PeriodAdjustmentLength — иное)
Регистр накопления (AccumulationRegister) нет (есть RegisterType)

Регистр сведений

  • Перечисление InformationRegisterPeriodicity (Nonperiodical, RecorderPosition, Second, Day, Month, Quarter, Year, + Unknown).
  • Поле informationRegisterPeriodicity в InformationRegister, по умолчанию NONPERIODICAL.
  • Элементы: конфигуратор <InformationRegisterPeriodicity>, EDT <informationRegisterPeriodicity>.
  • Пример периодического регистра в тестах — КурсыВалют (DAY).

Регистр расчета

  • Перечисление CalculationRegisterPeriodicity (Day, Month, Quarter, Year, + Unknown).
  • Поле periodicity в CalculationRegister, по умолчанию MONTH.
  • Элементы: конфигуратор <Periodicity>, EDT <periodicity>.

Общее

  • Регистрация EnumConverter для обоих перечислений в ExtendXStream.
  • Юнит-тесты перечислений + проверки периодичности в InformationRegisterTest / CalculationRegisterTest.
  • Обновлены затронутые фикстуры (top-level и встроенные в Configuration).
  • Служебный генератор фикстур GenerateMdoFixtures (запуск через main, не входит в прогон тестов).

Связанные задачи

Closes

Чеклист

Общие

  • Ветка PR обновлена из develop
  • Отладочные, закомментированные и прочие, не имеющие смысла участки кода удалены
  • Изменения покрыты тестами
  • Обязательные действия перед коммитом выполнены (запускал команду gradlew precommit)

Дополнительно

Проверено локально: license, юнит-тесты перечислений, InformationRegisterTest, CalculationRegisterTest и FixtureComparisonTest — зелёные для доступных пакетов mdclasses*/ssl_3_2. Пакеты ssl_3_1 в этой среде недоступны как сабмодуль (проверены на CI).

🤖 Generated with Claude Code

Добавлено чтение свойства "Периодичность" (InformationRegisterPeriodicity)
для регистров сведений из форматов конфигуратора и EDT.

- новое перечисление InformationRegisterPeriodicity в mdo.support
- поле informationRegisterPeriodicity в InformationRegister (по умолчанию NONPERIODICAL)
- регистрация EnumConverter в ExtendXStream
- тесты и обновлённые фикстуры (пример непериодического и периодического регистра — КурсыВалют)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CgG1X7FPscMdgYMBHQ7CFR
@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@nixel2007, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 51 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 29f301be-8c95-4564-9e3a-e055fb2f62b0

📥 Commits

Reviewing files that changed from the base of the PR and between 4afe994 and aa481b7.

⛔ Files ignored due to path filters (13)
  • src/test/resources/fixtures/mdclasses/CalculationRegisters.РегистрРасчета1.json is excluded by !src/test/resources/**
  • src/test/resources/fixtures/mdclasses/Configuration.json is excluded by !src/test/resources/**
  • src/test/resources/fixtures/mdclasses/InformationRegisters.РегистрСведений1.json is excluded by !src/test/resources/**
  • src/test/resources/fixtures/mdclasses_3_18/Configuration.json is excluded by !src/test/resources/**
  • src/test/resources/fixtures/mdclasses_3_25/CalculationRegisters.РегистрРасчета1.json is excluded by !src/test/resources/**
  • src/test/resources/fixtures/mdclasses_3_25/Configuration.json is excluded by !src/test/resources/**
  • src/test/resources/fixtures/mdclasses_3_27/Configuration.json is excluded by !src/test/resources/**
  • src/test/resources/fixtures/mdclasses_5_1/Configuration.json is excluded by !src/test/resources/**
  • src/test/resources/fixtures/ssl_3_1/InformationRegisters.СклоненияПредставленийОбъектов.json is excluded by !src/test/resources/**
  • src/test/resources/fixtures/ssl_3_1/InformationRegisters.ЭлектронныеПодписи.json is excluded by !src/test/resources/**
  • src/test/resources/fixtures/ssl_3_2/InformationRegisters.КурсыВалют.json is excluded by !src/test/resources/**
  • src/test/resources/fixtures/ssl_3_2/InformationRegisters.СклоненияПредставленийОбъектов.json is excluded by !src/test/resources/**
  • src/test/resources/fixtures/ssl_3_2/InformationRegisters.ЭлектронныеПодписи.json is excluded by !src/test/resources/**
📒 Files selected for processing (10)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/CalculationRegister.java
  • src/main/java/com/github/_1c_syntax/bsl/mdo/InformationRegister.java
  • src/main/java/com/github/_1c_syntax/bsl/mdo/support/CalculationRegisterPeriodicity.java
  • src/main/java/com/github/_1c_syntax/bsl/mdo/support/InformationRegisterPeriodicity.java
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/xstream/ExtendXStream.java
  • src/test/java/com/github/_1c_syntax/bsl/mdo/CalculationRegisterTest.java
  • src/test/java/com/github/_1c_syntax/bsl/mdo/InformationRegisterTest.java
  • src/test/java/com/github/_1c_syntax/bsl/mdo/support/CalculationRegisterPeriodicityTest.java
  • src/test/java/com/github/_1c_syntax/bsl/mdo/support/InformationRegisterPeriodicityTest.java
  • src/test/java/com/github/_1c_syntax/bsl/test_utils/GenerateMdoFixtures.java
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/register-periodicity-field-vx032j

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.

@github-actions

github-actions Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Test Results

  516 files  +12    516 suites  +12   13m 10s ⏱️ +12s
1 256 tests + 6  1 253 ✅ + 6   3 💤 ±0  0 ❌ ±0 
7 560 runs  +36  7 542 ✅ +36  18 💤 ±0  0 ❌ ±0 

Results for commit aa481b7. ± Comparison against base commit 4afe994.

This pull request removes 10 and adds 16 tests. Note that renamed tests count towards both.
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [10] "false", "ssl_3_2", "InformationRegisters.СклоненияПредставленийОбъектов"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [1] "true", "mdclasses", "InformationRegisters.РегистрСведений1"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [2] "false", "mdclasses", "InformationRegisters.РегистрСведений1"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [3] "true", "ssl_3_1", "InformationRegisters.ЭлектронныеПодписи"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [4] "false", "ssl_3_1", "InformationRegisters.ЭлектронныеПодписи"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [5] "true", "ssl_3_2", "InformationRegisters.ЭлектронныеПодписи"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [6] "false", "ssl_3_2", "InformationRegisters.ЭлектронныеПодписи"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [7] "true", "ssl_3_1", "InformationRegisters.СклоненияПредставленийОбъектов"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [8] "false", "ssl_3_1", "InformationRegisters.СклоненияПредставленийОбъектов"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [9] "true", "ssl_3_2", "InformationRegisters.СклоненияПредставленийОбъектов"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [10] "false", "ssl_3_2", "InformationRegisters.СклоненияПредставленийОбъектов", "NONPERIODICAL"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [11] "true", "ssl_3_2", "InformationRegisters.КурсыВалют", "DAY"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [12] "false", "ssl_3_2", "InformationRegisters.КурсыВалют", "DAY"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [1] "true", "mdclasses", "InformationRegisters.РегистрСведений1", "NONPERIODICAL"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [2] "false", "mdclasses", "InformationRegisters.РегистрСведений1", "NONPERIODICAL"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [3] "true", "ssl_3_1", "InformationRegisters.ЭлектронныеПодписи", "NONPERIODICAL"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [4] "false", "ssl_3_1", "InformationRegisters.ЭлектронныеПодписи", "NONPERIODICAL"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [5] "true", "ssl_3_2", "InformationRegisters.ЭлектронныеПодписи", "NONPERIODICAL"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [6] "false", "ssl_3_2", "InformationRegisters.ЭлектронныеПодписи", "NONPERIODICAL"
com.github._1c_syntax.bsl.mdo.InformationRegisterTest ‑ [7] "true", "ssl_3_1", "InformationRegisters.СклоненияПредставленийОбъектов", "NONPERIODICAL"
…

♻️ This comment has been updated with latest results.

Добавлено чтение свойства "Периодичность" (Periodicity) для регистров
расчета из форматов конфигуратора и EDT.

- новое перечисление CalculationRegisterPeriodicity (Day/Month/Quarter/Year) в mdo.support
- поле periodicity в CalculationRegister (по умолчанию MONTH)
- регистрация EnumConverter в ExtendXStream
- тесты и обновлённые фикстуры
- генератор фикстур GenerateMdoFixtures переведён на запуск через main-метод

Регистры бухгалтерии и накопления свойства "Периодичность" не имеют.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CgG1X7FPscMdgYMBHQ7CFR
@nixel2007 nixel2007 changed the title feat: чтение периодичности регистра сведений feat: чтение периодичности регистров сведений и расчета Jul 14, 2026
@sonarqubecloud

Copy link
Copy Markdown

@nixel2007 nixel2007 marked this pull request as ready for review July 14, 2026 08:18
@nixel2007 nixel2007 merged commit 5f0aafd into develop Jul 14, 2026
18 of 19 checks passed
@nixel2007 nixel2007 deleted the claude/register-periodicity-field-vx032j branch July 14, 2026 08:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants