From 52459f2f4eb4970024906a717b0bac85b16afdd5 Mon Sep 17 00:00:00 2001 From: Dima Date: Mon, 5 Dec 2022 11:47:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=80=D0=B0=D0=B7=D0=B1=D0=BE=D1=80?= =?UTF-8?q?=D0=B0=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=BA=20=D0=92=D0=98=D0=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 2 +- .../QueryToMissingMetadataDiagnosticTest.java | 6 +- .../QueryToMissingMetadataDiagnostic.bsl | 29 +++++ .../metadata/designer/Configuration.xml | 1 + ...\260\320\275\320\275\321\213\321\2051.xml" | 28 ++++ ...\261\320\273\320\270\321\206\320\2601.xml" | 121 ++++++++++++++++++ 6 files changed, 185 insertions(+), 2 deletions(-) create mode 100644 "src/test/resources/metadata/designer/ExternalDataSources/\320\222\320\275\320\265\321\210\320\275\320\270\320\271\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\2051.xml" create mode 100644 "src/test/resources/metadata/designer/ExternalDataSources/\320\222\320\275\320\265\321\210\320\275\320\270\320\271\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\2051/Tables/\320\242\320\260\320\261\320\273\320\270\321\206\320\2601.xml" diff --git a/build.gradle.kts b/build.gradle.kts index 2aa1a6016ed..978e463ab56 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -73,7 +73,7 @@ dependencies { api("org.eclipse.lsp4j", "org.eclipse.lsp4j.websocket", "0.17.0") // 1c-syntax - api("com.github.1c-syntax", "bsl-parser", "167aaad827322e09ccde4658a71152dad234de4b") { + api("com.github.ovcharenko-di", "bsl-parser", "feature~externalSource-SNAPSHOT") { exclude("com.tunnelvisionlabs", "antlr4-annotations") exclude("com.ibm.icu", "*") exclude("org.antlr", "ST4") diff --git a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/QueryToMissingMetadataDiagnosticTest.java b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/QueryToMissingMetadataDiagnosticTest.java index 72352cd4404..441557602c9 100644 --- a/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/QueryToMissingMetadataDiagnosticTest.java +++ b/src/test/java/com/github/_1c_syntax/bsl/languageserver/diagnostics/QueryToMissingMetadataDiagnosticTest.java @@ -49,8 +49,12 @@ void test() { 4, 18, 55) .hasMessageOnRange("Исправьте обращение к несуществующему метаданному \"РегистрСведений.УдалитьИмяРегистра\" в запросе", 19, 40, 74) + .hasMessageOnRange("Исправьте обращение к несуществующему метаданному \"ВнешнийИсточникДанных.ВнешнийИсточникДанных2\" в запросе", + 50, 18, 62) + .hasMessageOnRange("Исправьте обращение к несуществующему метаданному \"ВнешнийИсточникДанных.ВнешнийИсточникДанных2\" в запросе", + 66, 18, 62) - .hasSize(2); + .hasSize(4); } diff --git a/src/test/resources/diagnostics/QueryToMissingMetadataDiagnostic.bsl b/src/test/resources/diagnostics/QueryToMissingMetadataDiagnostic.bsl index 4633a42f133..de6c053997a 100644 --- a/src/test/resources/diagnostics/QueryToMissingMetadataDiagnostic.bsl +++ b/src/test/resources/diagnostics/QueryToMissingMetadataDiagnostic.bsl @@ -37,3 +37,32 @@ | РегистрСведений.рЕГИСТРСведений1 КАК Таблица"; // не ошибка Запрос2.Выполнить(); +Запрос1 = Новый Запрос; +Запрос1.Текст = "ВЫБРАТЬ + | Таблица1.Поле1 КАК Поле1 + |ИЗ + | ВнешнийИсточникДанных.ВнешнийИсточникДанных1.Таблица.Таблица1 КАК Таблица1"; // не ошибка +Запрос1.Выполнить(); + +Запрос2 = Новый Запрос; +Запрос2.Текст = "ВЫБРАТЬ + | Таблица1.Поле1 КАК Поле1 + |ИЗ + | ВнешнийИсточникДанных.ВнешнийИсточникДанных2.Таблица.Таблица1 КАК Таблица1"; // ошибка +Запрос2.Выполнить(); + +ИмяТаблицы = "Таблица10"; +Запрос3 = Новый Запрос; +Запрос3.Текст = "ВЫБРАТЬ + | Таблица1.Поле1 КАК Поле1 + |ИЗ + | ВнешнийИсточникДанных.ВнешнийИсточникДанных1.Таблица." + ИмяТаблицы + " КАК Таблица1"; // не ошибка +Запрос3.Выполнить(); + +ИмяТаблицы = "Таблица10"; +Запрос4 = Новый Запрос; +Запрос4.Текст = "ВЫБРАТЬ + | Таблица1.Поле1 КАК Поле1 + |ИЗ + | ВнешнийИсточникДанных.ВнешнийИсточникДанных2.Таблица." + ИмяТаблицы + " КАК Таблица1"; // ошибка +Запрос4.Выполнить(); diff --git a/src/test/resources/metadata/designer/Configuration.xml b/src/test/resources/metadata/designer/Configuration.xml index 1e14bdca9c8..ce5d5aaa993 100644 --- a/src/test/resources/metadata/designer/Configuration.xml +++ b/src/test/resources/metadata/designer/Configuration.xml @@ -208,6 +208,7 @@ РегламентноеЗаданиеНесуществующийМетод РегламентноеЗаданиеПриватныйМетод РегламентноеЗаданиеПредопределенноеНесколькоПараметров + ВнешнийИсточникДанных1 \ No newline at end of file diff --git "a/src/test/resources/metadata/designer/ExternalDataSources/\320\222\320\275\320\265\321\210\320\275\320\270\320\271\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\2051.xml" "b/src/test/resources/metadata/designer/ExternalDataSources/\320\222\320\275\320\265\321\210\320\275\320\270\320\271\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\2051.xml" new file mode 100644 index 00000000000..9a76c5c5a7d --- /dev/null +++ "b/src/test/resources/metadata/designer/ExternalDataSources/\320\222\320\275\320\265\321\210\320\275\320\270\320\271\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\2051.xml" @@ -0,0 +1,28 @@ + + + + + + 1af090bf-8bc3-43d6-abf7-0f7185073f81 + 3c3a22d1-7a71-4fab-93d5-373d807ce245 + + + 4184dd6b-60b5-4353-afe9-476050c8207a + aa4ec83e-cecb-4abe-b314-8a279f3b8730 + + + f1a6fe6f-90ac-4e17-86d0-9a700091d95a + 16a8e401-e884-41d8-857a-7fa4456315f7 + + + + ВнешнийИсточникДанных1 + + + Automatic + + + Таблица1
+
+
+
\ No newline at end of file diff --git "a/src/test/resources/metadata/designer/ExternalDataSources/\320\222\320\275\320\265\321\210\320\275\320\270\320\271\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\2051/Tables/\320\242\320\260\320\261\320\273\320\270\321\206\320\2601.xml" "b/src/test/resources/metadata/designer/ExternalDataSources/\320\222\320\275\320\265\321\210\320\275\320\270\320\271\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\2051/Tables/\320\242\320\260\320\261\320\273\320\270\321\206\320\2601.xml" new file mode 100644 index 00000000000..b3bd207fdbb --- /dev/null +++ "b/src/test/resources/metadata/designer/ExternalDataSources/\320\222\320\275\320\265\321\210\320\275\320\270\320\271\320\230\321\201\321\202\320\276\321\207\320\275\320\270\320\272\320\224\320\260\320\275\320\275\321\213\321\2051/Tables/\320\242\320\260\320\261\320\273\320\270\321\206\320\2601.xml" @@ -0,0 +1,121 @@ + + + + + + f293cd9a-813b-4871-b1e7-5219e98cc704 + 3b51e46e-d56b-489e-a480-2c6a40e61c7f + + + 45681edf-cf03-457a-91ec-900dcaf93300 + a1a09e26-2a36-4025-b5cf-4584c6a2cb13 + + + 46034421-e7c6-473e-a719-7d83872ca163 + 6cd2a74a-68a2-4ae0-a868-8f30c483568d + + + 0fa79f74-4bbd-4656-b60c-37f7d59bce79 + ba936a9a-d60a-4f7a-8478-e7725727e77d + + + c947c4fd-75cf-4b61-9202-12e3e22f4c1b + 22aab3a5-a132-40a7-aa20-42ecad0184eb + + + c498636f-11f4-40f4-bddf-498f85534a1c + 42911c5b-d9a1-4197-9b32-95e57d930c01 + + + e6512286-f03c-4e75-86a1-5ab626774f61 + c8e6130a-8a0c-4755-9fb1-7a21bb2da092 + + + dd315100-5cfd-4a58-9326-11829b89d62e + 3296cfea-a9c6-45cf-8b32-8e48e2b1fe4b + + + + Таблица1 + + + Table + + + ObjectData + + ExternalDataSource.ВнешнийИсточникДанных1.Table.Таблица1.Field.Поле1 + + + + + + true + false + + ExternalDataSource.ВнешнийИсточникДанных1.Table.Таблица1.Field.Поле1 + + Auto + Begin + Directly + Auto + + + + + + + + + + + + false + false + Auto + + InDialog + + + Automatic + + + + + Поле1 + + + + xs:string + + 10 + Variable + + + false + + + + false + + false + false + + + false + + DontCheck + + + Auto + Auto + Auto + + + false + false + + + +
+
\ No newline at end of file