1
0
mirror of https://github.com/zerobig/fluent-request-schema-1c.git synced 2025-08-09 21:27:11 +02:00

Псевдоним основной таблицы

This commit is contained in:
Ilya Bushin
2025-08-03 14:11:16 +03:00
parent ed29e990cf
commit f79868ab34
6 changed files with 87 additions and 53 deletions

1
.gitignore vendored
View File

@@ -1,4 +1,5 @@
*.log *.log
*.ConfigDumpInfo.xml
# compiled output # compiled output
dist dist

View File

@@ -98,6 +98,10 @@
.ДобавитьТестовыйНабор("СЗ: Реальные запросы") .ДобавитьТестовыйНабор("СЗ: Реальные запросы")
.ДобавитьТест("АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений") .ДобавитьТест("АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений")
.Перед("Перед_АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений") .Перед("Перед_АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений")
.ДобавитьТестовыйНабор("СЗ: Тест с гитхаб")
.ДобавитьТест("ТестСГитхаб_Проблема1_Вариант1")
.ДобавитьТест("ТестСГитхаб_Проблема1_Вариант2")
.ДобавитьТест("ТестСГитхаб_Проблема1_Вариант3")
; ;
КонецПроцедуры КонецПроцедуры
@@ -1708,6 +1712,55 @@
#КонецОбласти #КонецОбласти
Процедура ТестСГитхаб_Проблема1_Вариант1() Экспорт
МаксимальноеКоличествоЭлементов = 10000;
// Выполнение
Запрос = СхЗапрос.НовыйЗапрос("РегистрСведений.ИерархияПартнеров")
.Псевдоним("ИерархПарт")
.Первые(МаксимальноеКоличествоЭлементов)
.Выбрать("СправочникПартнеры.Ссылка КАК Ссылка")
.ЛевоеСоединение("Справочник.Партнеры КАК СправочникПартнеры", СхЗапрос.Предикат()
.Реквизит("ИерархПарт.Родитель")
.Равно("СправочникПартнеры.Ссылка"));
Результат = Запрос.ВТаблицуЗначений();
КонецПроцедуры
Процедура ТестСГитхаб_Проблема1_Вариант2() Экспорт
МаксимальноеКоличествоЭлементов = 10000;
// Выполнение
Запрос = СхЗапрос.НовыйЗапрос("РегистрСведений.ИерархияПартнеров")
.Первые(МаксимальноеКоличествоЭлементов)
.Выбрать("СправочникПартнеры.Ссылка КАК Ссылка")
.ЛевоеСоединение("Справочник.Партнеры КАК СправочникПартнеры", СхЗапрос.Предикат()
.Реквизит("Родитель")
.Равно("СправочникПартнеры.Ссылка"));
Результат = Запрос.ВТаблицуЗначений();
КонецПроцедуры
Процедура ТестСГитхаб_Проблема1_Вариант3() Экспорт
МаксимальноеКоличествоЭлементов = 10000;
// Выполнение
Запрос = СхЗапрос.НовыйЗапрос("РегистрСведений.ИерархияПартнеров КАК ИерархПарт")
.Первые(МаксимальноеКоличествоЭлементов)
.Выбрать("СправочникПартнеры.Ссылка КАК Ссылка")
.ЛевоеСоединение("Справочник.Партнеры КАК СправочникПартнеры", СхЗапрос.Предикат()
.Реквизит("ИерархПарт.Родитель")
.Равно("СправочникПартнеры.Ссылка"));
Результат = Запрос.ВТаблицуЗначений();
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции

View File

@@ -104,7 +104,14 @@
КонецЕсли; КонецЕсли;
Если ТипЗнч(СтруктураСхемыЗапроса.ИсточникДанных) = Тип("Строка") Тогда Если ТипЗнч(СтруктураСхемыЗапроса.ИсточникДанных) = Тип("Строка") Тогда
ИсточникСхемыЗапроса = Оператор.Источники.Добавить(СтруктураСхемыЗапроса.ИсточникДанных); Если Не СтруктураСхемыЗапроса.Свойство("ПсевдонимИсточника") Или
ПустаяСтрока(СтруктураСхемыЗапроса.ПсевдонимИсточника) Тогда
ИсточникСхемыЗапроса = Оператор.Источники.Добавить(СтруктураСхемыЗапроса.ИсточникДанных);
Иначе
ИсточникСхемыЗапроса = Оператор.Источники.Добавить(СтруктураСхемыЗапроса.ИсточникДанных,
СтруктураСхемыЗапроса.ПсевдонимИсточника);
КонецЕсли;
Иначе Иначе
СтруктураСхемыВложенногоЗапроса = СтруктураСхемыЗапроса.ИсточникДанных; СтруктураСхемыВложенногоЗапроса = СтруктураСхемыЗапроса.ИсточникДанных;
Если Не СтруктураСхемыВложенногоЗапроса.Свойство("ПсевдонимИсточника") Или Если Не СтруктураСхемыВложенногоЗапроса.Свойство("ПсевдонимИсточника") Или
@@ -222,15 +229,24 @@
СтруктураСоединения.Псевдоним); СтруктураСоединения.Псевдоним);
ИсточникСоединения.Источник.Запрос.УстановитьТекстЗапроса(ВложенныйЗапрос); ИсточникСоединения.Источник.Запрос.УстановитьТекстЗапроса(ВложенныйЗапрос);
КонецЕсли; КонецЕсли;
Если Оператор.Источники[0].Соединения.Количество() = 0 Тогда
Оператор.Источники[0].Соединения.Добавить(ИсточникСоединения);
КонецЕсли;
Условия = ПроверитьНаНеоднозначностьПолей(СтруктураСоединения.Условие, Условия = ПроверитьНаНеоднозначностьПолей(СтруктураСоединения.Условие,
Оператор.Источники[0].Источник, ИсточникСоединения.Источник); Оператор.Источники[0].Источник, ИсточникСоединения.Источник);
Оператор.Источники[0].Соединения.Очистить();
Оператор.Источники[0].Соединения.Добавить(ИсточникСоединения, СтрСоединить(Условия, " И "));
Соединение = Оператор.Источники[0].Соединения[Оператор.Источники[0].Соединения.Количество() - 1]; Соединение = Оператор.Источники[0].Соединения[Оператор.Источники[0].Соединения.Количество() - 1];
Соединение.Условие = Новый ВыражениеСхемыЗапроса(СтрСоединить(Условия, " И "));
//Если Оператор.Источники[0].Соединения.Количество() = 0 Тогда
// Оператор.Источники[0].Соединения.Добавить(ИсточникСоединения);
//КонецЕсли;
//Условия = ПроверитьНаНеоднозначностьПолей(СтруктураСоединения.Условие,
// Оператор.Источники[0].Источник, ИсточникСоединения.Источник);
//
//Соединение = Оператор.Источники[0].Соединения[Оператор.Источники[0].Соединения.Количество() - 1];
//Соединение.Условие = Новый ВыражениеСхемыЗапроса(СтрСоединить(Условия, " И "));
// TODO: Строки заменить на функцию? // TODO: Строки заменить на функцию?
Если СтруктураСоединения.ТипСоединения = "Левое" Тогда Если СтруктураСоединения.ТипСоединения = "Левое" Тогда
Соединение.ТипСоединения = ТипСоединенияСхемыЗапроса.ЛевоеВнешнее; Соединение.ТипСоединения = ТипСоединенияСхемыЗапроса.ЛевоеВнешнее;

View File

@@ -6,7 +6,16 @@
СхемаЗапроса = Новый Структура; СхемаЗапроса = Новый Структура;
КонецЕсли; КонецЕсли;
Если СтрНайти(ИсточникДанных, " КАК ") > 0 Тогда
ИнформацияОбИсточникеДанных = СтрЗаменить(ИсточникДанных, " КАК ", Символы.ПС);
ИсточникДанных = СтрПолучитьСтроку(ИнформацияОбИсточникеДанных, 1);
Псевдоним = СтрПолучитьСтроку(ИнформацияОбИсточникеДанных, 2);
КонецЕсли;
СхемаЗапроса.Вставить("ИсточникДанных", ИсточникДанных); СхемаЗапроса.Вставить("ИсточникДанных", ИсточникДанных);
Если ЗначениеЗаполнено(Псевдоним) Тогда
СхемаЗапроса.Вставить("ПсевдонимИсточника", Псевдоним);
КонецЕсли;
Если Первые >= 0 Тогда Если Первые >= 0 Тогда
СхемаЗапроса.Вставить("Первые", Первые); СхемаЗапроса.Вставить("Первые", Первые);
КонецЕсли; КонецЕсли;

View File

@@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ConfigDumpInfo xmlns="http://v8.1c.ru/8.3/xcf/dumpinfo" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" format="Hierarchical" version="2.18">
<ConfigVersions>
<Metadata name="CommonModule.СхЗапрос" id="5f1605a0-4e63-4339-b2cc-44e115be6ed7" configVersion="0f166080406b4803d2bed7934bfc40812f1abe1b"/>
<Metadata name="CommonModule.СхЗапрос.Module" id="5f1605a0-4e63-4339-b2cc-44e115be6ed7.0" configVersion="01f7d66cc88798fa8490fec1eee001bda436f894"/>
<Metadata name="CommonModule.СхЗапросТест" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314" configVersion="e4cd1d3ae5b3dfc796a93963e27ac1808ac21bcc"/>
<Metadata name="CommonModule.СхЗапросТест.Module" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314.0" configVersion="2ff8449badb02424fd4c5d9ae4d0bd7039517b96"/>
<Metadata name="CommonModule.СхЗапросТестКлиент" id="b37c9dfc-97f9-419e-aef2-d1598bd7f793" configVersion="abddeb6317bbb90599f5d3a6800d916974d522b9"/>
<Metadata name="CommonModule.СхЗапросТестКлиент.Module" id="b37c9dfc-97f9-419e-aef2-d1598bd7f793.0" configVersion="0cf16f4b019969d51c827533f42c6077afd22d7a"/>
<Metadata name="CommonModule.СхЗапросТестСлужебныйВызовСервера" id="fd18e525-b216-4cbe-9e5b-3f44fcf6fcf2" configVersion="eb43fe5ee123d7869a0578d44bd110f4e29ed798"/>
<Metadata name="CommonModule.СхЗапросТестСлужебныйВызовСервера.Module" id="fd18e525-b216-4cbe-9e5b-3f44fcf6fcf2.0" configVersion="e8af97ee25e58839bdbc25ce8b47734cc9f0dafa"/>
<Metadata name="CommonModule.СхОбщегоНазначенийКлиентСервер" id="54eb4132-1b61-4d01-ba96-ff4bfe65f6f8" configVersion="f0ddd8cc8c3ab867a2416783d887754c13bd55fc"/>
<Metadata name="CommonModule.СхОбщегоНазначенийКлиентСервер.Module" id="54eb4132-1b61-4d01-ba96-ff4bfe65f6f8.0" configVersion="100c0eff1f02587e1592196aa90869423843d302"/>
<Metadata name="CommonModule.СхПроцессорыПредикатовКлиентСервер" id="407489b2-2f4b-467b-9594-621de146e468" configVersion="375a4cad162b05500d054bbc6a6b2eb5c3c17a89"/>
<Metadata name="CommonModule.СхПроцессорыПредикатовКлиентСервер.Module" id="407489b2-2f4b-467b-9594-621de146e468.0" configVersion="b9148099348169f75ac880beef1cf6f94c80150e"/>
<Metadata name="CommonModule.СхПроцессорыПредикатовСлужебныйКлиентСервер" id="19b0625e-9f74-4fba-9350-914066ae1034" configVersion="cea811bfa991650b7bd13624fbc5b68375f054c1"/>
<Metadata name="CommonModule.СхПроцессорыПредикатовСлужебныйКлиентСервер.Module" id="19b0625e-9f74-4fba-9350-914066ae1034.0" configVersion="7da4e4a3855959ef4fcd3a66cae12bc887e0f33f"/>
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаКлиентСервер" id="a3e5bf50-2154-477f-9355-29b0930a73c5" configVersion="d5dc79a29726742dd44754fd1200ed961e5eb47b"/>
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаКлиентСервер.Module" id="a3e5bf50-2154-477f-9355-29b0930a73c5.0" configVersion="76de541c6025c8a4a6d6ec7907e2c4f08552fe66"/>
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебный" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c" configVersion="f8a3be5d8b2e88a3c91aef9302812d9a7843318c"/>
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебный.Module" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c.0" configVersion="196072be4c421b069557dd889b266ace00bb5076"/>
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебныйВызовСервера" id="64cc4f13-8ea3-43e0-b530-031a569bfcd0" configVersion="8b8a36d52a3c70f6411516282dff44b50709d582"/>
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебныйВызовСервера.Module" id="64cc4f13-8ea3-43e0-b530-031a569bfcd0.0" configVersion="73a825cc2be8a3efb9e744a4eb0a542081028180"/>
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебныйКлиентСервер" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc" configVersion="9ce268ec45c272677facf5c52c5cb09d018d6089"/>
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебныйКлиентСервер.Module" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc.0" configVersion="4bcec7767f7b96306bb8ba377a30a05e815a2035"/>
<Metadata name="CommonPicture.СЗ_Логотип" id="1f46f9f5-7948-4684-80f5-f809aace3848" configVersion="1cd842efa6dbeed87c4bd770ba9fdfea3ffc73c0"/>
<Metadata name="CommonPicture.СЗ_Логотип.Picture" id="1f46f9f5-7948-4684-80f5-f809aace3848.0" configVersion="09958a054a92dc27b186eb0ab627d11bade1f015"/>
<Metadata name="Configuration.СхемаЗапроса" id="727bc241-bb6d-418f-b908-1102fbf1bc00" configVersion="3ff15ae99b006940a3d718ecf86f9c166f1ff52a"/>
<Metadata name="DataProcessor.СхКонсольФункциональныхЗапросов" id="67397753-24bc-416c-9dc1-5fe9545ad4b2" configVersion="d1a6eb3b0f8a2146c0b618c5edcc7ee007a7e801"/>
<Metadata name="DataProcessor.СхКонсольФункциональныхЗапросов.Form.Форма" id="1f613bcb-34f1-4755-8c5b-734e99a89a03" configVersion="aedcf955fb9b922c1fd72335bb59d9b931015e58"/>
<Metadata name="DataProcessor.СхКонсольФункциональныхЗапросов.Form.Форма.Form" id="1f613bcb-34f1-4755-8c5b-734e99a89a03.0" configVersion="ea9a566744db145c41dd5d08a95cae584a5973b7"/>
<Metadata name="DataProcessor.СхПроцессорПредикатов" id="12d6eb41-70d9-4802-8fde-b6464e23bf0b" configVersion="4954bfbfc6b8922ac7373146041de0e8311b766a"/>
<Metadata name="DataProcessor.СхПроцессорПредикатов.Form.Форма" id="9ab75485-6c0a-4548-b3cb-fab32ccd351d" configVersion="12570426f46bd4a3dbb5f4c3b28a92c6db858ede"/>
<Metadata name="DataProcessor.СхПроцессорПредикатов.Form.Форма.Form" id="9ab75485-6c0a-4548-b3cb-fab32ccd351d.0" configVersion="97cb3acdc4dd75d2de2f3b80e4da371bdf72a6d7"/>
<Metadata name="DataProcessor.СхПроцессорПредикатов.ObjectModule" id="12d6eb41-70d9-4802-8fde-b6464e23bf0b.0" configVersion="ccdb4171211476fbe7b589b9f3e00927ec37e0e8"/>
<Metadata name="DataProcessor.СхПроцессорСхемЗапроса" id="7008c53a-3e8a-4432-bff6-500c4145bab5" configVersion="78983226bff2a80bc78dd6a1c83023079ccf2a1a"/>
<Metadata name="DataProcessor.СхПроцессорСхемЗапроса.Form.Форма" id="04cd8a25-c99d-4da9-ac0f-5703574d079f" configVersion="f910d6e757792c7cdd2137a7213495bba1da1300"/>
<Metadata name="DataProcessor.СхПроцессорСхемЗапроса.Form.Форма.Form" id="04cd8a25-c99d-4da9-ac0f-5703574d079f.0" configVersion="7cef18b5ae35bad253692098d7bcdefb1ba376a9"/>
<Metadata name="DataProcessor.СхПроцессорСхемЗапроса.ObjectModule" id="7008c53a-3e8a-4432-bff6-500c4145bab5.0" configVersion="930c0f7ca6c0c76a3ea5ead60862bda886b70a51"/>
<Metadata name="Language.Русский" id="390892dc-e75e-45a4-b708-a02f7f2dee5a" configVersion="d36425ed50ec1003a922942173f639c4f459684c"/>
<Metadata name="Subsystem.СхОбработки" id="d4e271af-1ead-4743-afb5-9c2aa77055ae" configVersion="f110e9f462bd7349a8a18b57db698a5cb4198d4e"/>
<Metadata name="Subsystem.СхОсновная" id="a09dece7-9d83-44cb-8463-270875de13d2" configVersion="03c18be8084556de42a54ad0474bdd4db01862e8"/>
<Metadata name="Subsystem.СхТестирование" id="7f3d60db-f984-4399-8d25-86d89b3d3c96" configVersion="c63518a40af40746734185a227b92268f04de507"/>
</ConfigVersions>
</ConfigDumpInfo>

View File

@@ -47,7 +47,7 @@
<ConfigurationExtensionCompatibilityMode>Version8_3_9</ConfigurationExtensionCompatibilityMode> <ConfigurationExtensionCompatibilityMode>Version8_3_9</ConfigurationExtensionCompatibilityMode>
<ScriptVariant>Russian</ScriptVariant> <ScriptVariant>Russian</ScriptVariant>
<Vendor/> <Vendor/>
<Version>0.0.4</Version> <Version>0.0.5</Version>
<BriefInformation/> <BriefInformation/>
<DetailedInformation/> <DetailedInformation/>
<Copyright/> <Copyright/>