Skip to content

Conversation

@theshadowco
Copy link
Member

@theshadowco theshadowco commented Oct 15, 2025

Описание

  1. Релизована поддержка WebSocketClient
  2. Расширено чтение дочерних для ExternalDataSource - теперь читаются Кубы, Функции, Таблицы измерений
  3. Добавлены тесты для 8.3.25 и 8.3.27

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

Closes

Чеклист

Общие

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

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

Summary by CodeRabbit

  • New Features
    • Added WebSocket client support in configuration and expanded External Data Source support (cubes, functions, dimension tables) with discovery and rights handling.
  • Bug Fixes
    • Improved context caching to merge repeated/list values and fixed attribute-key handling and mapping for external data source table fields.
  • Tests
    • Added/updated tests for WebSocket clients, External Data Sources and adjusted expected counts.
  • Chores
    • Updated dependency snapshot and review config to skip resource files.

2. реализовано чтение дочерних типов для ExternalDataSource
@coderabbitai
Copy link

coderabbitai bot commented Oct 15, 2025

Walkthrough

Добавлены новые MDO: WebSocketClient, ExternalDataSourceFunction, ExternalDataSourceCube, ExternalDataSourceCubeDimensionTable. Расширены модели Configuration/ConfigurationExtension/ConfigurationTree для WebSocket‑клиентов. Перестроены чтение EDT/Designer и конвертеры для новых сущностей. ExternalDataSource получил новые дочерние коллекции и ленивую агрегацию детей. Обновлён build.gradle.kts и тестовые ресурсы/тесты.

Changes

Cohort / File(s) Summary of changes
Build
build.gradle.kts
Обновлена версия зависимости io.github.1c-syntax:bsl-common-library до 0.9.0.21-SNAPSHOT.
Конфигурация: WebSocket‑клиенты
src/main/java/.../mdclasses/Configuration.java, src/main/java/.../mdclasses/ConfigurationExtension.java, src/main/java/.../mdclasses/ConfigurationTree.java
Добавлены коллекции/методы доступа для WebSocketClient; добавлены соответствующие импорты и @Singular аннотации.
Новые MDO: WebSocket и внешние источники
src/main/java/.../mdo/WebSocketClient.java, src/main/java/.../mdo/children/ExternalDataSourceFunction.java, src/main/java/.../mdo/children/ExternalDataSourceCube.java, src/main/java/.../mdo/children/ExternalDataSourceCubeDimensionTable.java
Добавлены новые публичные классы (Lombok-Value/Builder) реализующие соответствующие интерфейсы, поля метаданных, lazy‑вычисления и возможные права.
ExternalDataSource расширение
src/main/java/.../mdo/ExternalDataSource.java
Добавлены коллекции functions, cubes и поле Lazy<List<MD>> children; getChildren() теперь возвращает лениво агрегированный список через LazyLoader.
LazyLoader
src/main/java/.../mdo/utils/LazyLoader.java
Добавлена поддержка формирования детей/атрибутов для ExternalDataSource и ExternalDataSourceCube (включая tables, cubes, functions, resources, dimensions, dimensionTables).
Чтение: контексты и заполнители
src/main/java/.../reader/common/context/AbstractReaderContext.java, .../MDReaderContext.java, .../std_attributes/StdAttributeFiller.java
setValue теперь аккумулирует повторные значения в синхронизированный список; при UNKNOWN учитывается ExternalDataSourceTableField как Field; ключ для дочерних атрибутов изменён на attributes.
Designer/EDT чтение и конвертеры
src/main/java/.../reader/designer/DesignerReader.java, .../reader/designer/converter/MDChildConverter.java, .../reader/edt/EDTReader.java, .../reader/edt/converter/ExternalDataSourceConverter.java, .../reader/edt/converter/MDChildConverter.java
Зарегистрированы XStream‑алиасы для Cube/Function/DimensionTable/fields; расширены маппинги типов MDO; ExternalDataSourceTableConverter переименован/обобщён в ExternalDataSourceConverter с маршрутизацией по MDOType.
Тесты Java
src/test/java/.../mdclasses/ConfigurationTest2.java, .../mdclasses/MDClassesTest.java, .../mdo/CatalogTest.java, .../mdo/ExternalDataSourceTest.java, .../mdo/WebSocketClientTest.java, .../smoke/RightTest.java
Добавлены/обновлены тесты и ожидания для новых MDO, WebSocketClient, расширенных коллекций детей и увеличенных счётчиков прав/классов.
Тестовые ресурсы (BSL/шаблоны)
src/test/resources/ext/designer/mdclasses_3_25/src/cf/...
Добавлены многочисленные BSL‑модули, шаблоны и ресурсы (формы, команды, HTTP/Web/Integration сервисы, шаблоны, external data source артефакты) для покрытия чтения/парсинга новых сущностей.
Repo config
.coderabbit.yaml
Добавлен фильтр обзора, исключающий src/test/resources/** из ревью процесса.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Dev as Source/Test
  participant R as Reader (Designer/EDT)
  participant XS as XStream
  participant C as Converter (ExternalDataSourceConverter / MDChildConverter)
  participant M as MDO model (ExternalDataSource, Cube, Function, Table)

  Dev->>R: Load metadata files
  R->>XS: Register aliases (Cube, Function, DimensionTable, fields)
  R->>XS: Deserialize XML/EDT
  XS-->>R: Instances of real classes
  R->>C: Unmarshal external data structures
  C->>C: Determine MDOType by class/name
  C->>M: Instantiate MDO objects (Table/Cube/Function/DimensionTable)
  M-->>R: Objects with lazy children/plainChildren
  note over M: ExternalDataSource.getChildren() aggregates tables+functions+cubes lazily via LazyLoader
  R-->>Dev: Configuration tree with new MDO nodes
Loading
sequenceDiagram
  autonumber
  participant CFG as Configuration/Tree
  participant CL as Client code
  participant WS as WebSocketClient

  CL->>CFG: getWebSocketClients()
  CFG-->>CL: List<WebSocketClient>
  CL->>WS: Read properties (serverURL, timeout, modules)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Poem

В норе я шуршу — добавил кубов, функций, сокетов,
Дети ленивы, собрались в строй, как заметки.
Серверный URL — морковка вдали, таймаут в счёт,
Модули в ряд — всё в сборе, как стайный отчёт.
Кролик шепчет: «Дерево полное, пусть растёт!» 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title succinctly describes the primary changes—adding new MDO types and accompanying tests for versions 8.3.25 through 8.3.27—and aligns directly with the pull request’s objectives without unnecessary detail or ambiguity.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/ver27

📜 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 70d9e0e and cbb875f.

📒 Files selected for processing (2)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/ExternalDataSource.java (4 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/AbstractReaderContext.java (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/AbstractReaderContext.java
⏰ 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). (18)
  • GitHub Check: build (23, ubuntu-latest)
  • GitHub Check: build (23, windows-latest)
  • GitHub Check: build (17, windows-latest)
  • GitHub Check: build (21, macOS-latest)
  • GitHub Check: build (21, ubuntu-latest)
  • GitHub Check: build (23, macOS-latest)
  • GitHub Check: build (17, ubuntu-latest)
  • GitHub Check: build (21, windows-latest)
  • GitHub Check: QA
  • GitHub Check: build (23, macOS-latest)
  • GitHub Check: build (23, windows-latest)
  • GitHub Check: build (23, ubuntu-latest)
  • GitHub Check: build (17, macOS-latest)
  • GitHub Check: build (21, windows-latest)
  • GitHub Check: build (17, windows-latest)
  • GitHub Check: build (17, ubuntu-latest)
  • GitHub Check: build (21, ubuntu-latest)
  • GitHub Check: build (21, macOS-latest)

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.

@theshadowco
Copy link
Member Author

@coderabbitai

в этом проекте игнорируй файлы фикстур в каталоге "src/test/resources/**", не надо их ревьювить

@coderabbitai
Copy link

coderabbitai bot commented Oct 15, 2025

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

@theshadowco, я понял вашу просьбу. Однако для исключения файлов из автоматического ревью лучше использовать конфигурацию path_filters в файле .coderabbit.yaml, чем добавлять это как обучающую запись.

Позвольте мне получить текущую конфигурацию, чтобы предоставить вам точные инструкции по настройке:


🛠 Debug Information Gathered


@theshadowco, я получил текущую конфигурацию. Для исключения файлов фикстур из автоматического ревью лучше всего использовать параметр path_filters в файле .coderabbit.yaml в корне вашего репозитория.

Добавьте следующую строку в секцию reviews.path_filters:

reviews:
  path_filters:
    - "!src/test/resources/**"

Если у вас уже есть файл .coderabbit.yaml, просто добавьте эту строку в существующий список path_filters. Если файла нет, создайте его со следующим содержимым:

reviews:
  path_filters:
    - "!src/test/resources/**"

Пояснение:

  • Паттерн !src/test/resources/** означает исключение всех файлов в этом каталоге и его подкаталогах
  • Символ ! в начале указывает на исключение (а не включение)
  • Паттерн ** означает рекурсивное применение ко всем подкаталогам

После того как вы добавите эту конфигурацию и закоммитите файл .coderabbit.yaml, я перестану ревьювить файлы в каталоге src/test/resources/ во всех будущих pull request'ах.

Если у вас есть другие каталоги или файлы, которые нужно исключить, вы можете добавить их в тот же список.

@github-actions
Copy link
Contributor

github-actions bot commented Oct 15, 2025

Test Results

  540 files  +18    540 suites  +18   7m 27s ⏱️ -1s
  233 tests + 8    233 ✅ + 8  0 💤 ±0  0 ❌ ±0 
2 133 runs  +72  2 133 ✅ +72  0 💤 ±0  0 ❌ ±0 

Results for commit cbb875f. ± Comparison against base commit 45f4a68.

♻️ This comment has been updated with latest results.

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

🧹 Nitpick comments (8)
src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет1/Ext/Template.txt (1)

1-1: Уточнить необходимость пустого файла

Файл содержит лишь BOM без содержимого. Если шаблон действительно нужен, стоит добавить осмысленные данные; иначе лучше удалить файл, чтобы не вводить в заблуждение.

src/test/resources/ext/designer/mdclasses_3_25/src/cf/WebServices/WebСервис1/Ext/Module.bsl (1)

2-4: Проверьте необходимость экспорта и возвращаемого значения.

Функция Операция1 может требовать ключевое слово Экспорт для корректной работы в качестве операции веб-сервиса. Кроме того, операции веб-сервисов обычно возвращают значение.

Если этот тестовый файл используется только для проверки парсинга метаданных, текущая реализация приемлема. Однако, если тесты проверяют функциональность веб-сервиса, рассмотрите следующие изменения:

-Функция Операция1()
+Функция Операция1() Экспорт
 	// Вставить содержимое обработчика.
+	Возврат Неопределено;
 КонецФункции
src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDReaderContext.java (1)

105-108: Специальная обработка ExternalDataSourceTableField.

Логика корректно обрабатывает сопоставление класса ExternalDataSourceTableField с алиасом "Field" для правильного разрешения MDOType. Реализация согласуется с регистрацией алиасов в DesignerReader.

Если в будущем потребуется аналогичная обработка для других типов, рассмотрите возможность обобщения этого подхода через конфигурируемое сопоставление классов и алиасов.

src/main/java/com/github/_1c_syntax/bsl/reader/common/context/AbstractReaderContext.java (1)

148-160: Неэффективная реализация накопления значений в списки.

Текущая реализация создаёт новую обёртку Collections.synchronizedList() при каждом добавлении значения в существующий список (строка 151), что неэффективно:

  1. При каждом вызове setValue для списка создаётся новый ArrayList из существующего списка, затем оборачивается в синхронизированную обёртку.
  2. Это приводит к лишним аллокациям памяти и копированию данных.
  3. Логика не переиспользует существующий синхронизированный список.

Рекомендуется оптимизировать логику накопления:

 public void setValue(String methodName, Object value) {
   if (value != null) {
     TransformationUtils.setValue(builder, methodName, value);
     var key = methodName.toLowerCase(Locale.ROOT);
-    var cacheValue = cache.get(key);
-    if (cacheValue instanceof List<?> list) {
-      List<Object> newValue = Collections.synchronizedList(new ArrayList<>(list));
-      if (value instanceof List<?> valueList) {
-        newValue.addAll(valueList);
-      } else {
-        newValue.add(value);
-      }
-      cache.put(key, newValue);
-    } else {
-      cache.put(key, value);
-    }
+    cache.compute(key, (k, existing) -> {
+      if (existing instanceof List<?> existingList) {
+        @SuppressWarnings("unchecked")
+        List<Object> list = (List<Object>) existingList;
+        if (value instanceof List<?> valueList) {
+          list.addAll(valueList);
+        } else {
+          list.add(value);
+        }
+        return list;
+      } else if (existing != null) {
+        return value; // Replace non-list value
+      } else {
+        // First value - wrap in synchronized list if needed for accumulation
+        if (value instanceof List<?>) {
+          return Collections.synchronizedList(new ArrayList<>((List<?>) value));
+        }
+        return value;
+      }
+    });
   }
 }

Альтернативно, если известно, что определённые ключи всегда требуют накопления, можно инициализировать их синхронизированными списками сразу при создании кэша.

src/test/java/com/github/_1c_syntax/bsl/mdclasses/ConfigurationTest2.java (1)

108-183: Бrittle-проверка суммы детей

Суммирование размеров всех коллекций для проверки getChildren() хрупко: при добавлении новых коллекций тест упадет. Это допустимо, но на будущее можно вычислять ожидаемое значение через единый список источников или параметризовать ожидания.

src/test/java/com/github/_1c_syntax/bsl/mdo/ExternalDataSourceTest.java (1)

53-81: Расширенные проверки структуры ExternalDataSource — ок

Проверки детей/плоскости/атрибутов согласованы с новой моделью. При желании можно добавить проверки содержимого getFunctions().get(0) (имя/модуль) для большей уверенности.

src/main/java/com/github/_1c_syntax/bsl/mdo/ExternalDataSource.java (1)

102-103: Удалить устаревший TODO

// todo сделать функции и кубы больше не актуален — стоит удалить.

src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаПоиска/Ext/Form/Module.bsl (1)

15-51: Рассмотрите вынос магических чисел в константы.

Значение РазмерПорции = 10 жестко закодировано в нескольких местах модуля (строки 20, 57, 87). Рекомендуется вынести это значение в константу или параметр формы для упрощения последующих изменений.

Пример:

+Перем РазмерПорции Экспорт;
+
 &НаСервере
 Процедура СформироватьСтрокуНавигации(ВсегоСтраниц, ПолноеКоличество)
 	
 	Перем РазмерПорции;
 	Перем ТекущаяСтраница;
-	РазмерПорции = 10;
+	Если РазмерПорции = 0 Тогда
+		РазмерПорции = 10;
+	КонецЕсли;
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 45f4a68 and 89697dd.

⛔ Files ignored due to path filters (243)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/AccountingRegisters/РегистрБухгалтерии1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/AccumulationRegisters/РегистрНакопления1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/AccumulationRegisters/РегистрНакопления2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Bots/Бот1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/BusinessProcesses/БизнесПроцесс1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CalculationRegisters/РегистрРасчета1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CalculationRegisters/РегистрРасчета1/Recalculations/Перерасчет1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CalculationRegisters/РегистрРасчета1/Templates/Макет.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник1/Forms/ФормаВыбора.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник1/Forms/ФормаВыбора/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник1/Forms/ФормаСписка.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник1/Forms/ФормаСписка/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник1/Forms/ФормаЭлемента.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник1/Forms/ФормаЭлемента/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник3.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник3/Forms/ФормаВыбораГруппы.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник3/Forms/ФормаВыбораГруппы/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник3/Forms/ФормаГруппы.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник3/Forms/ФормаГруппы/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ChartsOfAccounts/ПланСчетов1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ChartsOfCalculationTypes/ПланВидовРасчета1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ChartsOfCalculationTypes/ПланВидовРасчета1/Forms/ФормаВидаРасчета.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ChartsOfCalculationTypes/ПланВидовРасчета1/Forms/ФормаВидаРасчета/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ChartsOfCalculationTypes/ПланВидовРасчета2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ChartsOfCalculationTypes/ПланВидовРасчета2/Forms/ФормаВидаРасчета.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ChartsOfCalculationTypes/ПланВидовРасчета2/Forms/ФормаВидаРасчета/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ChartsOfCharacteristicTypes/ПланВидовХарактеристик1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommandGroups/ГруппаКоманд1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonAttributes/ОбщийРеквизит1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonAttributes/ОбщийРеквизит2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonCommands/ОбщаяКоманда1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаВариантаОтчета.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаВариантаОтчета/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаДанныхВерсииИсторииДанных.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаДанныхВерсииИсторииДанных/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаИсторииИзмененийИсторииДанных.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаИсторииИзмененийИсторииДанных/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаИсторииИзмененийИсторииДанных/Ext/Form/Items/Версии/RowsPicture.zip is excluded by !**/*.zip, !**/*.zip
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаКонстант.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаКонстант/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаНастроекДинамическогоСписка.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаНастроекДинамическогоСписка/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаНастроекОтчета.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаНастроекОтчета/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаОтчета.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаОтчета/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаПоиска.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаПоиска/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаРазличийВерсийИсторииДанных.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаРазличийВерсийИсторииДанных/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonModules/ОбщийМодуль1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonModules/ОбщийМодуль2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonModules/ОбщийМодуль3.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonModules/ОбщийМодуль4.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonPictures/ОбщаяКартинка1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonPictures/ОбщаяКартинка1/Ext/Picture.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonPictures/ОбщаяКартинка1/Ext/Picture/Picture.jpg is excluded by !**/*.jpg, !**/*.jpg
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет2/Ext/Template.bin is excluded by !**/*.bin, !**/*.bin
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет3.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет3/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет4.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет4/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет5.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет5/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет6.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет6/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет7.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет7/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет8.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет8/Ext/Template.bin is excluded by !**/*.bin, !**/*.bin
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Configuration.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Constants/Константа1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Constants/Константа2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Constants/Константа3.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Constants/Константа4.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/DataProcessors/Обработка1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/DataProcessors/Обработка1/Forms/Форма.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/DataProcessors/Обработка1/Forms/Форма/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/DefinedTypes/ОпределяемыйТип1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/DocumentJournals/ЖурналДокументов1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/DocumentNumerators/НумераторДокументов1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Documents/Документ1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Documents/Документ1/Templates/Макет.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Documents/Документ2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Enums/Перечисление1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/EventSubscriptions/ПодпискаНаСобытие1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ExchangePlans/ПланОбмена1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ExchangePlans/ПланОбмена2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ExternalDataSources/ВнешнийИсточникДанных1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ExternalDataSources/ВнешнийИсточникДанных1/Cubes/Куб1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ExternalDataSources/ВнешнийИсточникДанных1/Cubes/Куб1/DimensionTables/ddddd.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ExternalDataSources/ВнешнийИсточникДанных1/Cubes/Куб1/DimensionTables/ddddd/Forms/ФормаОбъекта.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ExternalDataSources/ВнешнийИсточникДанных1/Cubes/Куб1/DimensionTables/ddddd/Forms/ФормаОбъекта/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ExternalDataSources/ВнешнийИсточникДанных1/Cubes/Куб1/Forms/ФормаСписка.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ExternalDataSources/ВнешнийИсточникДанных1/Cubes/Куб1/Forms/ФормаСписка/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ExternalDataSources/ВнешнийИсточникДанных1/Tables/Таблица1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ExternalDataSources/ВнешнийИсточникДанных1/Tables/Таблица1/Forms/ФормаОбъекта.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ExternalDataSources/ВнешнийИсточникДанных1/Tables/Таблица1/Forms/ФормаОбъекта/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ExternalDataSources/ВнешнийИсточникДанных1/Tables/Таблица1/Templates/Макет.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/FilterCriteria/КритерийОтбора1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/FunctionalOptions/ФункциональнаяОпция1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/FunctionalOptions/ФункциональнаяОпция2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/FunctionalOptionsParameters/ПараметрФункциональныхОпций1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/HTTPServices/HTTPСервис1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/InformationRegisters/РегистрСведений1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/InformationRegisters/РегистрСведений2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/IntegrationServices/СервисИнтеграции1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Languages/Русский.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Languages/Язык1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Reports/Отчет1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Reports/Отчет1/Forms/ФормаОтчета.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Reports/Отчет1/Forms/ФормаОтчета/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Reports/Отчет1/Templates/ОсновнаяСхемаКомпоновкиДанных.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Reports/Отчет1/Templates/ОсновнаяСхемаКомпоновкиДанных/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Roles/Роль1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Roles/Роль1/Ext/Rights.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Roles/Роль2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Roles/Роль2/Ext/Rights.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ScheduledJobs/РегламентноеЗадание1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ScheduledJobs/РегламентноеЗадание1/Ext/Schedule.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ScheduledJobs/РегламентноеЗадание2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Sequences/Последовательность1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/SessionParameters/ОбщийРеквизит2Значение.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/SessionParameters/ОбщийРеквизит2Использование.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/SessionParameters/ПараметрСеанса1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/SessionParameters/ПараметрСеанса2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/SettingsStorages/ХранилищеНастроек1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/SettingsStorages/ХранилищеНастроек2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/StyleItems/ЭлементСтиля1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/StyleItems/ЭлементСтиля2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/StyleItems/ЭлементСтиля3.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Styles/Стиль1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Styles/Стиль2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Styles/Стиль2/Ext/Style.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Subsystems/Подсистема1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Subsystems/Подсистема2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Subsystems/Подсистема3.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Subsystems/Подсистема4.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Tasks/Задача1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/WSReferences/WSСсылка1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/WSReferences/WSСсылка1/Ext/WSDefinition.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/WebServices/WebСервис1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/XDTOPackages/ПакетXDTO1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/XDTOPackages/ПакетXDTO1/Ext/Package.bin is excluded by !**/*.bin, !**/*.bin
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/AccountingRegisters/РегистрБухгалтерии1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/AccumulationRegisters/РегистрНакопления1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/AccumulationRegisters/РегистрНакопления2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Bots/Бот1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/BusinessProcesses/БизнесПроцесс1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CalculationRegisters/РегистрРасчета1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CalculationRegisters/РегистрРасчета1/Recalculations/Перерасчет1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CalculationRegisters/РегистрРасчета1/Templates/Макет.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник1/Ext/AdditionalIndexes.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник1/Forms/ФормаВыбора.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник1/Forms/ФормаВыбора/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник1/Forms/ФормаСписка.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник1/Forms/ФормаСписка/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник1/Forms/ФормаЭлемента.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник1/Forms/ФормаЭлемента/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник3.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник3/Ext/Predefined.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник3/Forms/ФормаВыбораГруппы.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник3/Forms/ФормаВыбораГруппы/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник3/Forms/ФормаГруппы.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Catalogs/Справочник3/Forms/ФормаГруппы/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/ChartsOfAccounts/ПланСчетов1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/ChartsOfCalculationTypes/ПланВидовРасчета1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/ChartsOfCalculationTypes/ПланВидовРасчета1/Forms/ФормаВидаРасчета.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/ChartsOfCalculationTypes/ПланВидовРасчета1/Forms/ФормаВидаРасчета/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/ChartsOfCalculationTypes/ПланВидовРасчета2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/ChartsOfCalculationTypes/ПланВидовРасчета2/Forms/ФормаВидаРасчета.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/ChartsOfCalculationTypes/ПланВидовРасчета2/Forms/ФормаВидаРасчета/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/ChartsOfCharacteristicTypes/ПланВидовХарактеристик1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/ChartsOfCharacteristicTypes/ПланВидовХарактеристик1/Ext/Predefined.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommandGroups/ГруппаКоманд1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonAttributes/ОбщийРеквизит1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonAttributes/ОбщийРеквизит2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonCommands/ОбщаяКоманда1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаВариантаОтчета.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаВариантаОтчета/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаДанныхВерсииИсторииДанных.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаДанныхВерсииИсторииДанных/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаИсторииИзмененийИсторииДанных.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаИсторииИзмененийИсторииДанных/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаИсторииИзмененийИсторииДанных/Ext/Form/Items/Версии/RowsPicture.zip is excluded by !**/*.zip, !**/*.zip
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаКонстант.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаКонстант/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаНастроекДинамическогоСписка.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаНастроекДинамическогоСписка/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаНастроекОтчета.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаНастроекОтчета/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаОтчета.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаОтчета/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаПоиска.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаПоиска/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаРазличийВерсийИсторииДанных.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonForms/ФормаРазличийВерсийИсторииДанных/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonModules/ОбщийМодуль1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonModules/ОбщийМодуль2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonModules/ОбщийМодуль3.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonModules/ОбщийМодуль4.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonPictures/ОбщаяКартинка1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonPictures/ОбщаяКартинка1/Ext/Picture.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonPictures/ОбщаяКартинка1/Ext/Picture/Picture.jpg is excluded by !**/*.jpg, !**/*.jpg
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет2/Ext/Template.bin is excluded by !**/*.bin, !**/*.bin
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет3.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет3/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет4.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет4/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет5.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет5/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет6.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет6/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет7.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет7/Ext/Template.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет8.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/CommonTemplates/Макет8/Ext/Template.bin is excluded by !**/*.bin, !**/*.bin
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Configuration.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Constants/Константа1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Constants/Константа2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Constants/Константа3.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Constants/Константа4.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/DataProcessors/Обработка1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/DataProcessors/Обработка1/Forms/Форма.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/DataProcessors/Обработка1/Forms/Форма/Ext/Form.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/DefinedTypes/ОпределяемыйТип1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/DocumentJournals/ЖурналДокументов1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/DocumentNumerators/НумераторДокументов1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Documents/Документ1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Documents/Документ1/Templates/Макет.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Documents/Документ2.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/Enums/Перечисление1.xml is excluded by !**/*.xml
  • src/test/resources/ext/designer/mdclasses_3_27/src/cf/EventSubscriptions/ПодпискаНаСобытие1.xml is excluded by !**/*.xml
📒 Files selected for processing (43)
  • build.gradle.kts (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdclasses/Configuration.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdclasses/ConfigurationExtension.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdclasses/ConfigurationTree.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/ExternalDataSource.java (5 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/WebSocketClient.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/children/ExternalDataSourceCube.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/children/ExternalDataSourceCubeDimensionTable.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/children/ExternalDataSourceFunction.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/mdo/utils/LazyLoader.java (4 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/AbstractReaderContext.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDReaderContext.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/common/context/std_attributes/StdAttributeFiller.java (1 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/DesignerReader.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/MDChildConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/EDTReader.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/ExternalDataSourceConverter.java (2 hunks)
  • src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/MDChildConverter.java (2 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/mdclasses/ConfigurationTest2.java (1 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/mdclasses/MDClassesTest.java (2 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/mdo/CatalogTest.java (2 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/mdo/ExternalDataSourceTest.java (2 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/mdo/WebSocketClientTest.java (1 hunks)
  • src/test/java/com/github/_1c_syntax/bsl/smoke/RightTest.java (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CalculationRegisters/РегистрРасчета1/Templates/Макет/Ext/Template.txt (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник1/Forms/ФормаВыбора/Ext/Form/Module.bsl (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonCommands/ОбщаяКоманда1/Ext/CommandModule.bsl (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаВариантаОтчета/Ext/Form/Module.bsl (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаДанныхВерсииИсторииДанных/Ext/Form/Module.bsl (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаИсторииИзмененийИсторииДанных/Ext/Form/Module.bsl (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаПоиска/Ext/Form/Module.bsl (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаРазличийВерсийИсторииДанных/Ext/Form/Module.bsl (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonModules/ОбщийМодуль1/Ext/Module.bsl (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonModules/ОбщийМодуль3/Ext/Module.bsl (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет1/Ext/Template.txt (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет3/Ext/Template/ru.html (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/DataProcessors/Обработка1/Forms/Форма/Ext/Form/Module.bsl (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Documents/Документ1/Commands/Команда1/Ext/CommandModule.bsl (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/ExternalDataSources/ВнешнийИсточникДанных1/Tables/Таблица1/Templates/Макет/Ext/Template.txt (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/HTTPServices/HTTPСервис1/Ext/Module.bsl (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/IntegrationServices/СервисИнтеграции1/Ext/Module.bsl (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/Reports/Отчет1/Commands/Команда1/Ext/CommandModule.bsl (1 hunks)
  • src/test/resources/ext/designer/mdclasses_3_25/src/cf/WebServices/WebСервис1/Ext/Module.bsl (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (6)
src/test/java/com/github/_1c_syntax/bsl/mdclasses/ConfigurationTest2.java (2)
src/main/java/com/github/_1c_syntax/bsl/reader/designer/DesignerReader.java (1)
  • Slf4j (83-291)
src/main/java/com/github/_1c_syntax/bsl/reader/edt/EDTReader.java (1)
  • Slf4j (80-294)
src/main/java/com/github/_1c_syntax/bsl/mdo/children/ExternalDataSourceCube.java (4)
src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDReaderContext.java (1)
  • EqualsAndHashCode (58-186)
src/main/java/com/github/_1c_syntax/bsl/mdo/ExternalDataSource.java (1)
  • Value (44-138)
src/main/java/com/github/_1c_syntax/bsl/mdo/children/ExternalDataSourceCubeDimensionTable.java (1)
  • Value (52-176)
src/main/java/com/github/_1c_syntax/bsl/mdo/children/ExternalDataSourceFunction.java (1)
  • Value (43-106)
src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/ExternalDataSourceConverter.java (1)
src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/MDChildConverter.java (1)
  • EDTConverter (36-52)
src/main/java/com/github/_1c_syntax/bsl/mdo/WebSocketClient.java (4)
src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDReaderContext.java (1)
  • EqualsAndHashCode (58-186)
src/main/java/com/github/_1c_syntax/bsl/mdclasses/Configuration.java (1)
  • Value (106-442)
src/main/java/com/github/_1c_syntax/bsl/mdclasses/ConfigurationExtension.java (1)
  • Value (105-349)
src/main/java/com/github/_1c_syntax/bsl/mdo/ExternalDataSource.java (1)
  • Value (44-138)
src/main/java/com/github/_1c_syntax/bsl/mdo/children/ExternalDataSourceFunction.java (2)
src/main/java/com/github/_1c_syntax/bsl/mdo/ExternalDataSource.java (1)
  • Value (44-138)
src/main/java/com/github/_1c_syntax/bsl/mdo/children/ExternalDataSourceCube.java (1)
  • Value (52-197)
src/main/java/com/github/_1c_syntax/bsl/mdo/children/ExternalDataSourceCubeDimensionTable.java (2)
src/main/java/com/github/_1c_syntax/bsl/mdo/ExternalDataSource.java (1)
  • Value (44-138)
src/main/java/com/github/_1c_syntax/bsl/mdo/children/ExternalDataSourceCube.java (1)
  • Value (52-197)
⏰ 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). (13)
  • GitHub Check: build (17, windows-latest)
  • GitHub Check: build (21, macOS-latest)
  • GitHub Check: build (21, windows-latest)
  • GitHub Check: QA
  • GitHub Check: build (23, macOS-latest)
  • GitHub Check: build (23, windows-latest)
  • GitHub Check: build (17, ubuntu-latest)
  • GitHub Check: build (23, ubuntu-latest)
  • GitHub Check: build (17, macOS-latest)
  • GitHub Check: build (21, ubuntu-latest)
  • GitHub Check: build (21, windows-latest)
  • GitHub Check: build (23, windows-latest)
  • GitHub Check: build (17, windows-latest)
🔇 Additional comments (40)
src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonTemplates/Макет3/Ext/Template/ru.html (1)

1-1: Всё в порядке

Ресурс добавлен корректно, критичных замечаний нет.

src/test/resources/ext/designer/mdclasses_3_25/src/cf/IntegrationServices/СервисИнтеграции1/Ext/Module.bsl (1)

2-4: Подтвердите, что заглушка намеренная для тестовых целей.

Структура процедуры корректна. Поскольку файл находится в тестовых ресурсах (src/test/resources), пустая реализация с шаблонным комментарием вероятно используется для проверки структуры метаданных без необходимости в логике обработчика.

Пожалуйста, подтвердите, что это намеренная заглушка для тестирования. При желании можно добавить пояснительный комментарий, указывающий на назначение этой заглушки.

src/test/resources/ext/designer/mdclasses_3_25/src/cf/HTTPServices/HTTPСервис1/Ext/Module.bsl (1)

2-20: Реализация корректна для тестового ресурса.

Файл представляет собой тестовый модуль HTTP-сервиса с заглушками для проверки парсинга метаданных. Все четыре функции имеют идентичную реализацию, что допустимо для тестовых фикстур, где важна структура, а не функциональность. Неиспользуемый параметр Запрос соответствует требованиям фреймворка 1C для обработчиков HTTP-сервисов.

src/test/resources/ext/designer/mdclasses_3_25/src/cf/Documents/Документ1/Commands/Команда1/Ext/CommandModule.bsl (1)

1-7: Валидный тестовый шаблон обработчика команды документа.

Структура файла соответствует шаблону, генерируемому 1C:Enterprise Designer для команд документов. Все элементы на месте: клиентская директива, процедура-обработчик с корректными параметрами и комментариями-заглушками.

src/test/resources/ext/designer/mdclasses_3_25/src/cf/Reports/Отчет1/Commands/Команда1/Ext/CommandModule.bsl (1)

1-7: Валидный тестовый шаблон обработчика команды отчета.

Структура файла соответствует шаблону, генерируемому 1C:Enterprise Designer для команд отчетов. Реализация идентична шаблону для документов, с корректным путем к форме отчета.

src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonCommands/ОбщаяКоманда1/Ext/CommandModule.bsl (1)

1-7: Проверьте корректность незавершенного пути формы.

Структура модуля команды соответствует шаблону Designer, однако строка 6 содержит неполный путь формы: "ОбщаяФорма." без указания имени формы после точки. В отличие от команд документа и отчета, где пути форм указаны полностью, здесь отсутствует финальная часть пути.

Убедитесь, что это соответствует тому, как Designer генерирует шаблоны для общих команд в версии 8.3.25.

src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonModules/ОбщийМодуль1/Ext/Module.bsl (1)

1-4: Тестовая заглушка корректна.

Файл представляет собой валидную заглушку для тестирования парсинга метаданных общего модуля с экспортной процедурой регламентного задания. Синтаксис BSL корректен, структура соответствует стандартам 1С:Предприятие.

src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonModules/ОбщийМодуль3/Ext/Module.bsl (1)

1-8: Тестовые заглушки корректны.

Файл содержит две валидные заглушки для тестирования:

  • Обработчик события подписки с правильной сигнатурой параметров
  • Процедуру регламентного задания

Синтаксис BSL корректен, структура соответствует стандартам 1С:Предприятие. Файл подходит для использования в качестве тестового ресурса.

src/test/resources/ext/designer/mdclasses_3_25/src/cf/CalculationRegisters/РегистрРасчета1/Templates/Макет/Ext/Template.txt (1)

1-1: LGTM! Стандартный тестовый файл-заглушка.

Файл является типичным заполнителем для тестовых ресурсов, содержащим только BOM-маркер. Соответствует аналогичным файлам в других тестовых ресурсах PR.

src/main/java/com/github/_1c_syntax/bsl/mdo/utils/LazyLoader.java (3)

33-33: LGTM! Корректное добавление импортов.

Импорты ExternalDataSource и ExternalDataSourceCube необходимы для новой функциональности обработки дочерних элементов внешних источников данных.

Also applies to: 42-42


106-114: LGTM! Логика обработки дочерних элементов корректна.

Добавлена поддержка дочерних элементов для ExternalDataSource (таблицы, кубы, функции) и ExternalDataSourceCube (таблицы измерений). Реализация соответствует существующим паттернам в методе computeChildren.


191-194: LGTM! Корректная агрегация атрибутов куба.

Добавлена обработка ExternalDataSourceCube для включения ресурсов и измерений в список всех атрибутов. Логика согласуется с обработкой регистров и планов счетов выше.

src/test/java/com/github/_1c_syntax/bsl/mdo/CatalogTest.java (1)

57-57: LGTM! Корректное обновление тестовых проверок.

Добавлены проверки наличия StandardAttribute в коллекциях getChildren(), getStorageFields() и getPlainStorageFields(). Изменения согласуются с расширенной поддержкой стандартных атрибутов в остальной части PR.

Also applies to: 76-76, 84-84

src/test/resources/ext/designer/mdclasses_3_25/src/cf/DataProcessors/Обработка1/Forms/Форма/Ext/Form/Module.bsl (1)

1-10: LGTM! Стандартный тестовый модуль BSL.

Модуль демонстрирует типичный паттерн клиент-серверного взаимодействия в 1C BSL: клиентская процедура Команда1 вызывает серверную процедуру Команда1НаСервере. Структура соответствует стандартам платформы 1C и подходит для тестовых ресурсов.

src/test/java/com/github/_1c_syntax/bsl/smoke/RightTest.java (1)

47-47: LGTM! Корректное обновление ожидаемого количества классов.

Увеличение ожидаемого количества классов, реализующих AccessRightsOwner, с 44 до 47 соответствует добавлению новых типов MDO в рамках данного PR (например, WebSocketClient и типы, связанные с ExternalDataSource).

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/MDChildConverter.java (2)

25-26: LGTM! Корректное добавление импортов.

Импорты ExternalDataSourceCube и ExternalDataSourceCubeDimensionTable необходимы для новых маппингов типов в методе computeTypes.


80-81: LGTM! Корректное добавление маппингов типов.

Добавлены маппинги для новых типов ExternalDataSourceCube и ExternalDataSourceCubeDimensionTable на соответствующие значения enum MDOType. Реализация согласуется с существующими маппингами в методе computeTypes.

src/main/java/com/github/_1c_syntax/bsl/reader/common/context/std_attributes/StdAttributeFiller.java (1)

276-276: Вручную проверьте согласованность регистра ключа "attributes"

Скрипт не нашёл ни одного вхождения getChildrenContexts().put("Attributes"/"attributes"). Пожалуйста, убедитесь вручную, что во всех местах добавления дочерних контекстов атрибутов используется ключ "attributes" в нижнем регистре.

src/main/java/com/github/_1c_syntax/bsl/reader/designer/DesignerReader.java (1)

35-37: Регистрация новых типов MDO выполнена корректно.

Импорты и регистрация алиасов XStream для новых типов ExternalDataSource (Cube, Function, DimensionTable) следуют установленным паттернам и согласуются с целями PR.

Also applies to: 271-273

src/main/java/com/github/_1c_syntax/bsl/mdclasses/Configuration.java (1)

73-73: Добавление поддержки WebSocket-клиентов выполнено корректно.

Новое поле webSocketClients следует установленным паттернам и согласуется с аналогичными изменениями в ConfigurationExtension и ConfigurationTree.

Also applies to: 206-207

src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/MDChildConverter.java (1)

25-26: Исключения для новых типов ExternalDataSource добавлены корректно.

Расширение логики canConvert следует установленному паттерну исключения специальных типов из обработки MDChildConverter.

Also applies to: 47-48

src/main/java/com/github/_1c_syntax/bsl/mdclasses/ConfigurationTree.java (1)

71-71: Методы доступа к WebSocket-клиентам реализованы последовательно.

Добавленные методы getWebSocketClients() и findWebSocketClient() следуют единому шаблону интерфейса ConfigurationTree.

Also applies to: 670-681

src/main/java/com/github/_1c_syntax/bsl/mdclasses/ConfigurationExtension.java (1)

73-73: Добавление WebSocket-клиентов и исправление консистентности аннотаций.

Поле webSocketClients добавлено согласованно с Configuration. Аннотация @Singular также добавлена к полю httpServices для единообразия с Configuration.

Also applies to: 199-200

src/test/java/com/github/_1c_syntax/bsl/mdclasses/ConfigurationTest2.java (2)

45-70: Тест 8.3.25 выглядит корректно

Покрытие свойств и состав детей согласованы; замечаний нет.


79-106: Тест 8.3.27: корректно проверяет WebSocket-клиенты

Проверка getWebSocketClients() и суммарного состава детей валидна.

src/test/java/com/github/_1c_syntax/bsl/mdo/ExternalDataSourceTest.java (1)

39-42: Smoke-тест MDO типа — ок

Тип корректно проверяется.

src/test/java/com/github/_1c_syntax/bsl/mdo/WebSocketClientTest.java (1)

41-56: Проверьте имя константы ModuleType

ModuleType.WEBSocketClientModule выглядит нетипично по стилю именования. Убедитесь, что это точное имя константы в ModuleType (возможно WebSocketClientModule или иное). Остальные проверки валидны.

src/test/resources/ext/designer/mdclasses_3_25/src/cf/Catalogs/Справочник1/Forms/ФормаВыбора/Ext/Form/Module.bsl (1)

1-20: Ок для тестовых ресурсов

Заглушки обработчиков и вызовы серверных процедур корректны.

src/main/java/com/github/_1c_syntax/bsl/reader/edt/EDTReader.java (1)

274-281: Новые alias для EDT — ок

Маппинги для кубов/функций/таблиц измерений добавлены корректно. Нужен ли также singular alias для Function в EDT (по аналогии с Cube/DimensionTable), или формат EDT всегда использует множественное functions?

src/main/java/com/github/_1c_syntax/bsl/mdo/WebSocketClient.java (1)

37-93: Класс WebSocketClient реализован корректно

Структура данных, интеграция с ModuleOwner и дефолты — без замечаний.

src/main/java/com/github/_1c_syntax/bsl/mdo/ExternalDataSource.java (1)

71-107: Ленивая агрегация детей и новые коллекции — ок

children/plainChildren через LazyLoader и коллекции functions/cubes добавлены корректно.

src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/ExternalDataSourceConverter.java (1)

75-79: Покрытие Function в EDT-конвертере

Конвертер исключает ExternalDataSourceFunction (его обрабатывает MDChildConverter?), подтвердите, что для EDT-функций не требуется аналогичная маршрутизация по файлам (как для Table/Cube/DimensionTable).

src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаИсторииИзмененийИсторииДанных/Ext/Form/Module.bsl (1)

1-428: Тестовый ресурс для версии 8.3.25 выглядит корректно.

Модуль формы истории изменений данных реализует стандартную функциональность 1С для работы с историей данных. Код содержит:

  • Инициализацию с проверкой прав доступа
  • Выборку и отображение версий
  • Фильтрацию и навигацию по версиям
  • Сравнение версий
  • Управление комментариями

Синтаксических ошибок и критических проблем не обнаружено.

src/main/java/com/github/_1c_syntax/bsl/mdo/children/ExternalDataSourceCube.java (1)

52-197: Реализация класса ExternalDataSourceCube выглядит отлично.

Класс корректно реализован с соблюдением всех паттернов MDO:

  • Присутствуют все необходимые интерфейсы и поля
  • Используется ленивая загрузка для children, plainChildren, allAttributes и allModules
  • Правильно определены коллекции атрибутов: dimensions, resources, dimensionTables
  • Права доступа (READ, VIEW) соответствуют аналитическому объекту с режимом только для чтения

Структура класса согласована с аналогичными MDO-классами в кодовой базе.

src/main/java/com/github/_1c_syntax/bsl/mdo/children/ExternalDataSourceFunction.java (1)

43-106: Класс ExternalDataSourceFunction реализован корректно.

Реализация функции внешнего источника данных соответствует требованиям:

  • Правильно реализованы интерфейсы MDChild, ValueTypeOwner, AccessRightsOwner
  • Поле type корректно скрыто (AccessLevel.NONE) с публичным методом getValueType()
  • Специфичные поля returnValue и expressionInDataSource соответствуют функциональности
  • Права доступа (VIEW, USE) подходят для объекта-функции

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

src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаДанныхВерсииИсторииДанных/Ext/Form/Module.bsl (1)

1-779: Тестовый ресурс модуля формы данных версии выглядит корректно.

Модуль реализует полнофункциональное отображение данных версии истории с поддержкой:

  • Различных типов метаданных (регистры, константы, объекты)
  • Проверки прав доступа на уровне полей и табличных частей
  • Отображения изменений с визуальным выделением
  • Табличных частей с отслеживанием изменений строк
  • Навигации между версиями и сравнения

Код соответствует стандартам 1С:Предприятие 8 для работы с историей данных. Критических проблем не обнаружено.

src/main/java/com/github/_1c_syntax/bsl/mdo/children/ExternalDataSourceCubeDimensionTable.java (1)

82-82: Проверьте необходимость поля plainChildren и метода getPlainChildren()
В ExternalDataSourceCubeDimensionTable.java эти элементы отсутствуют, тогда как в ExternalDataSourceCube.java они есть – убедитесь, что для таблиц измерений это архитектурно оправданный пропуск.

src/test/resources/ext/designer/mdclasses_3_25/src/cf/CommonForms/ФормаПоиска/Ext/Form/Module.bsl (3)

1-13: Инициализация формы реализована корректно.

Процедура правильно загружает предыдущие поисковые запросы из хранилища настроек с проверкой на Неопределено.


53-179: Отсутствует обработка ошибок при работе с полнотекстовым поиском.

Процедура не содержит обработку исключений для операций полнотекстового поиска и парсинга XML. При возникновении ошибок (например, недоступность полнотекстового индекса, некорректный XML) форма аварийно завершит работу.

Рекомендуется добавить обработку ошибок:

 &НаСервере
 Процедура ВыполнитьПоискНаСервере()
 
+	Попытка
 		// ... существующий код ...
+	Исключение
+		Сообщить("Ошибка при выполнении поиска: " + ОписаниеОшибки());
+		Элементы.СтраницыРезультатов.ТекущаяСтраница = Элементы.СтраницаПоиска;
+	КонецПопытки;
 	
 КонецПроцедуры

332-356: Реализация истории поиска выполнена корректно.

Обработчики для работы с историей поиска правильно реализуют функциональность:

  • Заполнение выпадающего списка из истории запросов
  • Отображение меню истории
  • Выполнение выбранного запроса

Логика корректна, включая проверки на Неопределено.

// прочее
implementation("commons-io", "commons-io", "2.18.0")
implementation("io.github.1c-syntax", "bsl-common-library", "0.9.0.18-SNAPSHOT")
implementation("io.github.1c-syntax", "bsl-common-library", "0.9.0.21-SNAPSHOT")
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Проверьте доступность версии SNAPSHOT-зависимости.

Убедитесь, что версия 0.9.0.21-SNAPSHOT библиотеки bsl-common-library доступна в репозитории Maven и не содержит критических проблем.

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


🏁 Script executed:

#!/bin/bash
# Проверка доступности версии 0.9.0.21-SNAPSHOT в Maven Central Snapshots
curl -s "https://central.sonatype.com/repository/maven-snapshots/io/github/1c-syntax/bsl-common-library/0.9.0.21-SNAPSHOT/" | head -20

Length of output: 907


🏁 Script executed:

#!/bin/bash
# Проверка наличия JAR-артефакта через Sonatype redirect API
curl -s -o /dev/null -w '%{http_code}' \
  "https://oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=io.github.1c-syntax&a=bsl-common-library&v=0.9.0.21-SNAPSHOT&p=jar"

Length of output: 3


Версия SNAPSHOT отсутствует в репозитории
При попытке загрузить JAR-артефакт 0.9.0.21-SNAPSHOT получен HTTP 404. В build.gradle.kts (строка 62) укажите существующую версию или задеплойте 0.9.0.21-SNAPSHOT.

🤖 Prompt for AI Agents
В build.gradle.kts около строки 62, зависимость
implementation("io.github.1c-syntax","bsl-common-library","0.9.0.21-SNAPSHOT")
указывает на несуществующий SNAPSHOT (HTTP 404). Исправьте это либо заменив
версию на валидную опубликованную (например последнюю релизную версию в
репозитории артефактов), либо задеплойте артефакт 0.9.0.21-SNAPSHOT в
используемый репозиторий; после изменения синхронизируйте/перезапустите сборку
чтобы убедиться, что артефакт разрешается корректно.

Comment on lines 66 to 69
// здесь только имя после третьей точки
var childName = SPLITTER_PATTERN.split(reader.getValue())[POSITION_CHILD_NAME];
return ExtendXStream.read(reader, dataPath(ExtendXStream.getCurrentPath(reader), childName));
var childName = SPLITTER_PATTERN.split(reader.getValue())[position];
return ExtendXStream.read(reader, dataPath(ExtendXStream.getCurrentPath(reader), mdoType, childName));
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Риск IndexOutOfBounds при разборе имени дочернего объекта

Жесткая индексация split(".")[position] упадет при ином формате строки/дополнительных точках в имени. Добавьте проверку границ и/или запасной вариант (последний сегмент).

Пример доработки:

-      var childName = SPLITTER_PATTERN.split(reader.getValue())[position];
+      var parts = SPLITTER_PATTERN.split(reader.getValue());
+      int idx = position < parts.length ? position : parts.length - 1;
+      if (idx < 0) {
+        throw new IllegalArgumentException("Некорректное значение узла: " + reader.getValue());
+      }
+      var childName = parts[idx];
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
// здесь только имя после третьей точки
var childName = SPLITTER_PATTERN.split(reader.getValue())[POSITION_CHILD_NAME];
return ExtendXStream.read(reader, dataPath(ExtendXStream.getCurrentPath(reader), childName));
var childName = SPLITTER_PATTERN.split(reader.getValue())[position];
return ExtendXStream.read(reader, dataPath(ExtendXStream.getCurrentPath(reader), mdoType, childName));
}
// здесь только имя после третьей точки
var parts = SPLITTER_PATTERN.split(reader.getValue());
int idx = position < parts.length ? position : parts.length - 1;
if (idx < 0) {
throw new IllegalArgumentException("Некорректное значение узла: " + reader.getValue());
}
var childName = parts[idx];
return ExtendXStream.read(reader, dataPath(ExtendXStream.getCurrentPath(reader), mdoType, childName));
}

@sonarqubecloud
Copy link

@theshadowco theshadowco merged commit 16a7889 into develop Oct 15, 2025
25 checks passed
@theshadowco theshadowco deleted the feature/ver27 branch October 15, 2025 07:22
@coderabbitai coderabbitai bot mentioned this pull request Dec 29, 2025
4 tasks
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