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
2024-10-20 15:23:53 +03:00
parent b4cabb75c3
commit 2124cc5e12
8 changed files with 630 additions and 45 deletions

View File

@@ -35,6 +35,7 @@
.СПараметрами("Правое") .СПараметрами("Правое")
.СПараметрами("Внутреннее") .СПараметрами("Внутреннее")
.ДобавитьТест("ЛевоеСоединениеПоИсточникуЗапросу") .ДобавитьТест("ЛевоеСоединениеПоИсточникуЗапросу")
.ДобавитьТест("ЛевоеСоединениеСГлубокоВложеннымЗапросом")
.ДобавитьТест("ЛевоеСоединениеБезПредиката") .ДобавитьТест("ЛевоеСоединениеБезПредиката")
.ДобавитьТест("ЛевоеСоединениеНесколькоУсловийВПредикате") .ДобавитьТест("ЛевоеСоединениеНесколькоУсловийВПредикате")
.ДобавитьТест("ЛевоеСоединениеПредикатЭтоПараметр") .ДобавитьТест("ЛевоеСоединениеПредикатЭтоПараметр")
@@ -43,6 +44,14 @@
.ДобавитьТестовыйНабор("СЗ: Вложенный запрос") .ДобавитьТестовыйНабор("СЗ: Вложенный запрос")
.ДобавитьТест("ИсключениеВложенныйЗапросБезПсевдонима") .ДобавитьТест("ИсключениеВложенныйЗапросБезПсевдонима")
.ДобавитьТест("ВложенныйЗапрос") .ДобавитьТест("ВложенныйЗапрос")
.ДобавитьТест("ОченьГлубокоВложенныйЗапрос")
.ДобавитьТестовыйНабор("СЗ: Объединить")
.ДобавитьТест("Объединить")
.ДобавитьТест("ОбъединитьВсе")
.ДобавитьТест("ОбъединитьВсеНаЧетыреИсточника")
.ДобавитьТест("ОбъединитьВсеСПолями")
.ДобавитьТест("ОбъединитьВсеСРазнымКоличествомПолей")
.ДобавитьТест("ОбъединитьВсеСВложеннымЗапросом")
.ДобавитьТестовыйНабор("СЗ: Прочее") .ДобавитьТестовыйНабор("СЗ: Прочее")
.ДобавитьТест("Порядок") .ДобавитьТест("Порядок")
.ДобавитьТест("ПорядокУбывания") .ДобавитьТест("ПорядокУбывания")
@@ -116,7 +125,7 @@
ЮТест.ОжидаетЧто(Обработка) ЮТест.ОжидаетЧто(Обработка)
.Метод("ВТаблицуЗначений") .Метод("ВТаблицуЗначений")
.ВыбрасываетИсключение("Источник данных запроса не определен"); .ВыбрасываетИсключение("ПолучитьТекстЗапроса: источник данных запроса не определен");
КонецПроцедуры КонецПроцедуры
@@ -126,7 +135,7 @@
ЮТест.ОжидаетЧто(Запрос) ЮТест.ОжидаетЧто(Запрос)
.Метод("ВТаблицуЗначений") .Метод("ВТаблицуЗначений")
.ВыбрасываетИсключение("Источник данных запроса не определен"); .ВыбрасываетИсключение("ПолучитьТекстЗапроса: источник данных запроса не определен");
КонецПроцедуры КонецПроцедуры
@@ -577,6 +586,42 @@
КонецПроцедуры КонецПроцедуры
Процедура ЛевоеСоединениеСГлубокоВложеннымЗапросом() Экспорт
ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
.Выбрать("Ссылка, Родитель")
.Псевдоним("ВложенныйЗапрос_0")
;
Для Сч = 1 По 9 Цикл
ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос)
.Выбрать("Ссылка, Родитель")
.Псевдоним("ВложенныйЗапрос_" + Сч)
;
КонецЦикла;
ПредикатДляСоединения = СЗ_Запрос.Предикат()
.Реквизит("Ссылка").Равно("Родитель")
;
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
.Выбрать("Номенклатура.Ссылка,
|ВложенныйЗапрос_9.Ссылка КАК ВложенныйЗапрос_9Ссылка")
.ЛевоеСоединение(ВложенныйЗапрос, ПредикатДляСоединения)
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("ТаблицаЗначений")
.ИмеетДлинуБольше(0)
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").Заполнено())
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("ВложенныйЗапрос_9Ссылка").Заполнено())
;
КонецПроцедуры
Процедура ЛевоеСоединениеБезПредиката() Экспорт Процедура ЛевоеСоединениеБезПредиката() Экспорт
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("РегистрСведений.ПримененияЕНВД") ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("РегистрСведений.ПримененияЕНВД")
@@ -740,6 +785,174 @@
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос) ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос)
.ВТаблицуЗначений() .ВТаблицуЗначений()
; ;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("ТаблицаЗначений")
.ИмеетДлинуБольше(0)
;
КонецПроцедуры
Процедура ОченьГлубокоВложенныйЗапрос() Экспорт
ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
.Псевдоним("ВложенныйЗапрос_0")
;
Для Сч = 1 По 9 Цикл
ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос)
.Псевдоним("ВложенныйЗапрос_" + Сч)
;
КонецЦикла;
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос)
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("ТаблицаЗначений")
.ИмеетДлинуБольше(0)
;
КонецПроцедуры
#КонецОбласти
#Область Объединить
Процедура Объединить() Экспорт
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Документ.ПриобретениеТоваровУслуг")
.Объединить("Документ.РеализацияТоваровУслуг")
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("ТаблицаЗначений")
.ИмеетДлинуБольше(0)
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ПриобретениеТоваровУслуг"))
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.РеализацияТоваровУслуг"))
;
КонецПроцедуры
Процедура ОбъединитьВсе() Экспорт
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Документ.ПриобретениеТоваровУслуг")
.ОбъединитьВсе("Документ.РеализацияТоваровУслуг")
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("ТаблицаЗначений")
.ИмеетДлинуБольше(0)
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ПриобретениеТоваровУслуг"))
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.РеализацияТоваровУслуг"))
;
КонецПроцедуры
Процедура ОбъединитьВсеНаЧетыреИсточника() Экспорт
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Документ.ПриобретениеТоваровУслуг")
.ОбъединитьВсе("Документ.РеализацияТоваровУслуг")
.ОбъединитьВсе("Документ.ВозвратТоваровОтКлиента")
.ОбъединитьВсе("Документ.ВозвратТоваровПоставщику")
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("ТаблицаЗначений")
.ИмеетДлинуБольше(0)
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ПриобретениеТоваровУслуг"))
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.РеализацияТоваровУслуг"))
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ВозвратТоваровОтКлиента"))
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ВозвратТоваровПоставщику"))
;
КонецПроцедуры
Процедура ОбъединитьВсеСПолями() Экспорт
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Документ.ПриобретениеТоваровУслуг")
.Выбрать("Ссылка, Дата, Номер")
.ОбъединитьВсе(СЗ_Запрос.НовыйЗапрос("Документ.РеализацияТоваровУслуг")
.Выбрать("Ссылка, Дата, Номер"))
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("ТаблицаЗначений")
.ИмеетДлинуБольше(0)
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ПриобретениеТоваровУслуг"))
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.РеализацияТоваровУслуг"))
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Дата").Заполнено()
.Реквизит("Номер").Заполнено())
;
КонецПроцедуры
Процедура ОбъединитьВсеСРазнымКоличествомПолей() Экспорт
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Документ.ПриобретениеТоваровУслуг")
.Выбрать("Ссылка, Дата, Номер")
.ОбъединитьВсе(СЗ_Запрос.НовыйЗапрос("Документ.РеализацияТоваровУслуг")
.Выбрать("Ссылка, Дата, Номер, Партнер"))
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("ТаблицаЗначений")
.ИмеетДлинуБольше(0)
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ПриобретениеТоваровУслуг")
.Реквизит("Партнер").Пусто())
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.РеализацияТоваровУслуг")
.Реквизит("Партнер").Заполнено())
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Дата").Заполнено()
.Реквизит("Номер").Заполнено())
;
КонецПроцедуры
Процедура ОбъединитьВсеСВложеннымЗапросом() Экспорт
ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос("Документ.РеализацияТоваровУслуг")
.Псевдоним("ВложенныйЗапрос")
.Выбрать("Ссылка, Дата, Номер, Партнер")
;
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Документ.ПриобретениеТоваровУслуг")
.Выбрать("Ссылка, Дата, Номер")
.ОбъединитьВсе(СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос)
.Выбрать("Ссылка, Дата, Номер"))
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("ТаблицаЗначений")
.ИмеетДлинуБольше(0)
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ПриобретениеТоваровУслуг"))
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.РеализацияТоваровУслуг"))
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Дата").Заполнено()
.Реквизит("Номер").Заполнено())
;
КонецПроцедуры КонецПроцедуры
@@ -822,10 +1035,11 @@
.ВТаблицуЗначений() .ВТаблицуЗначений()
; ;
// TODO: Проверки теста сработал некорректно?
ЮТест.ОжидаетЧто(ТаблицаЗначений) ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("ТаблицаЗначений") .ИмеетТип("ТаблицаЗначений")
.ИмеетДлинуБольше(0) .ИмеетДлинуБольше(0)
.ЛюбойЭлементСодержитСвойство("ссылка", Null) .ЛюбойЭлементСодержитСвойство("Ссылка", Null)
; ;
КонецПроцедуры КонецПроцедуры

View File

@@ -35,6 +35,7 @@
.СПараметрами("Правое") .СПараметрами("Правое")
.СПараметрами("Внутреннее") .СПараметрами("Внутреннее")
.ДобавитьТест("ЛевоеСоединениеПоИсточникуЗапросу") .ДобавитьТест("ЛевоеСоединениеПоИсточникуЗапросу")
.ДобавитьТест("ЛевоеСоединениеСГлубокоВложеннымЗапросом")
.ДобавитьТест("ЛевоеСоединениеБезПредиката") .ДобавитьТест("ЛевоеСоединениеБезПредиката")
.ДобавитьТест("ЛевоеСоединениеНесколькоУсловийВПредикате") .ДобавитьТест("ЛевоеСоединениеНесколькоУсловийВПредикате")
.ДобавитьТест("ЛевоеСоединениеПредикатЭтоПараметр") .ДобавитьТест("ЛевоеСоединениеПредикатЭтоПараметр")
@@ -43,6 +44,14 @@
.ДобавитьТестовыйНабор("СЗ: Вложенный запрос") .ДобавитьТестовыйНабор("СЗ: Вложенный запрос")
.ДобавитьТест("ИсключениеВложенныйЗапросБезПсевдонима") .ДобавитьТест("ИсключениеВложенныйЗапросБезПсевдонима")
.ДобавитьТест("ВложенныйЗапрос") .ДобавитьТест("ВложенныйЗапрос")
.ДобавитьТест("ОченьГлубокоВложенныйЗапрос")
.ДобавитьТестовыйНабор("СЗ: Объединить")
.ДобавитьТест("Объединить")
.ДобавитьТест("ОбъединитьВсе")
.ДобавитьТест("ОбъединитьВсеНаЧетыреИсточника")
.ДобавитьТест("ОбъединитьВсеСПолями")
.ДобавитьТест("ОбъединитьВсеСРазнымКоличествомПолей")
.ДобавитьТест("ОбъединитьВсеСВложеннымЗапросом")
.ДобавитьТестовыйНабор("СЗ: Прочее") .ДобавитьТестовыйНабор("СЗ: Прочее")
.ДобавитьТест("Порядок") .ДобавитьТест("Порядок")
.ДобавитьТест("ПорядокУбывания") .ДобавитьТест("ПорядокУбывания")
@@ -107,7 +116,7 @@
ЮТест.ОжидаетЧто(Обработка) ЮТест.ОжидаетЧто(Обработка)
.Метод("ВТаблицуЗначений") .Метод("ВТаблицуЗначений")
.ВыбрасываетИсключение("Источник данных запроса не определен"); .ВыбрасываетИсключение("ПолучитьТекстЗапроса: источник данных запроса не определен");
КонецПроцедуры КонецПроцедуры
@@ -117,7 +126,7 @@
ЮТест.ОжидаетЧто(Запрос) ЮТест.ОжидаетЧто(Запрос)
.Метод("ВТаблицуЗначений") .Метод("ВТаблицуЗначений")
.ВыбрасываетИсключение("Источник данных запроса не определен"); .ВыбрасываетИсключение("ПолучитьТекстЗапроса: источник данных запроса не определен");
КонецПроцедуры КонецПроцедуры
@@ -568,6 +577,42 @@
КонецПроцедуры КонецПроцедуры
Процедура ЛевоеСоединениеСГлубокоВложеннымЗапросом() Экспорт
ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
.Выбрать("Ссылка, Родитель")
.Псевдоним("ВложенныйЗапрос_0")
;
Для Сч = 1 По 9 Цикл
ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос)
.Выбрать("Ссылка, Родитель")
.Псевдоним("ВложенныйЗапрос_" + Сч)
;
КонецЦикла;
ПредикатДляСоединения = СЗ_Запрос.Предикат()
.Реквизит("Ссылка").Равно("Родитель")
;
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
.Выбрать("Номенклатура.Ссылка,
|ВложенныйЗапрос_9.Ссылка КАК ВложенныйЗапрос_9Ссылка")
.ЛевоеСоединение(ВложенныйЗапрос, ПредикатДляСоединения)
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("Массив")
.ИмеетДлинуБольше(0)
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").Заполнено())
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("ВложенныйЗапрос_9Ссылка").Заполнено())
;
КонецПроцедуры
Процедура ЛевоеСоединениеБезПредиката() Экспорт Процедура ЛевоеСоединениеБезПредиката() Экспорт
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("РегистрСведений.ПримененияЕНВД") ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("РегистрСведений.ПримененияЕНВД")
@@ -720,6 +765,174 @@
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос) ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос)
.ВТаблицуЗначений() .ВТаблицуЗначений()
; ;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("Массив")
.ИмеетДлинуБольше(0)
;
КонецПроцедуры
Процедура ОченьГлубокоВложенныйЗапрос() Экспорт
ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
.Псевдоним("ВложенныйЗапрос_0")
;
Для Сч = 1 По 9 Цикл
ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос)
.Псевдоним("ВложенныйЗапрос_" + Сч)
;
КонецЦикла;
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос)
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("Массив")
.ИмеетДлинуБольше(0)
;
КонецПроцедуры
#КонецОбласти
#Область Объединить
Процедура Объединить() Экспорт
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Документ.ПриобретениеТоваровУслуг")
.Объединить("Документ.РеализацияТоваровУслуг")
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("Массив")
.ИмеетДлинуБольше(0)
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ПриобретениеТоваровУслуг"))
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.РеализацияТоваровУслуг"))
;
КонецПроцедуры
Процедура ОбъединитьВсе() Экспорт
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Документ.ПриобретениеТоваровУслуг")
.ОбъединитьВсе("Документ.РеализацияТоваровУслуг")
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("Массив")
.ИмеетДлинуБольше(0)
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ПриобретениеТоваровУслуг"))
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.РеализацияТоваровУслуг"))
;
КонецПроцедуры
Процедура ОбъединитьВсеНаЧетыреИсточника() Экспорт
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Документ.ПриобретениеТоваровУслуг")
.ОбъединитьВсе("Документ.РеализацияТоваровУслуг")
.ОбъединитьВсе("Документ.ВозвратТоваровОтКлиента")
.ОбъединитьВсе("Документ.ВозвратТоваровПоставщику")
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("Массив")
.ИмеетДлинуБольше(0)
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ПриобретениеТоваровУслуг"))
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.РеализацияТоваровУслуг"))
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ВозвратТоваровОтКлиента"))
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ВозвратТоваровПоставщику"))
;
КонецПроцедуры
Процедура ОбъединитьВсеСПолями() Экспорт
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Документ.ПриобретениеТоваровУслуг")
.Выбрать("Ссылка, Дата, Номер")
.ОбъединитьВсе(СЗ_Запрос.НовыйЗапрос("Документ.РеализацияТоваровУслуг")
.Выбрать("Ссылка, Дата, Номер"))
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("Массив")
.ИмеетДлинуБольше(0)
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ПриобретениеТоваровУслуг"))
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.РеализацияТоваровУслуг"))
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Дата").Заполнено()
.Реквизит("Номер").Заполнено())
;
КонецПроцедуры
Процедура ОбъединитьВсеСРазнымКоличествомПолей() Экспорт
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Документ.ПриобретениеТоваровУслуг")
.Выбрать("Ссылка, Дата, Номер")
.ОбъединитьВсе(СЗ_Запрос.НовыйЗапрос("Документ.РеализацияТоваровУслуг")
.Выбрать("Ссылка, Дата, Номер, Партнер"))
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("Массив")
.ИмеетДлинуБольше(0)
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ПриобретениеТоваровУслуг")
.Реквизит("Партнер").Пусто())
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.РеализацияТоваровУслуг")
.Реквизит("Партнер").Заполнено())
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Дата").Заполнено()
.Реквизит("Номер").Заполнено())
;
КонецПроцедуры
Процедура ОбъединитьВсеСВложеннымЗапросом() Экспорт
ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос("Документ.РеализацияТоваровУслуг")
.Псевдоним("ВложенныйЗапрос")
.Выбрать("Ссылка, Дата, Номер, Партнер")
;
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Документ.ПриобретениеТоваровУслуг")
.Выбрать("Ссылка, Дата, Номер")
.ОбъединитьВсе(СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос)
.Выбрать("Ссылка, Дата, Номер"))
.ВТаблицуЗначений()
;
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("Массив")
.ИмеетДлинуБольше(0)
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.ПриобретениеТоваровУслуг"))
.ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ИмеетТип("ДокументСсылка.РеализацияТоваровУслуг"))
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Дата").Заполнено()
.Реквизит("Номер").Заполнено())
;
КонецПроцедуры КонецПроцедуры

View File

@@ -34,22 +34,16 @@
Не СтруктураСхемыЗапроса.Свойство("ИсточникДанных") Или Не СтруктураСхемыЗапроса.Свойство("ИсточникДанных") Или
ПустаяСтрока(СтруктураСхемыЗапроса.ИсточникДанных) Тогда ПустаяСтрока(СтруктураСхемыЗапроса.ИсточникДанных) Тогда
ВызватьИсключение "Источник данных запроса не определен"; ВызватьИсключение "ПолучитьТекстЗапроса: источник данных запроса не определен";
КонецЕсли; КонецЕсли;
СхемаЗапроса = Новый СхемаЗапроса; СхемаЗапроса = Новый СхемаЗапроса;
ЗапросПакета = ДобавитьПолучитьПакет(СхемаЗапроса, СтруктураСхемыЗапроса); ЗапросПакета = ДобавитьПолучитьПакет(СхемаЗапроса, СтруктураСхемыЗапроса);
Оператор = ДобавитьПолучитьОператор(ЗапросПакета, СтруктураСхемыЗапроса); Оператор = ДобавитьПолучитьОператор(ЗапросПакета, Запрос, СтруктураСхемыЗапроса);
// Соединения добавляются раньше всех чтобы к моменту добавления полей у нас ДобавитьДанныеЗапроса(ЗапросПакета, Оператор, Запрос, СтруктураСхемыЗапроса);
// уже были все возможные источники данных ДобавитьОбъединения(ЗапросПакета, Запрос, СтруктураСхемыЗапроса);
ДобавитьСоединения(Оператор, СтруктураСхемыЗапроса);
ДобавитьПоля(ЗапросПакета, Оператор, СтруктураСхемыЗапроса);
ДобавитьУсловия(Оператор, Запрос, СтруктураСхемыЗапроса);
ДобавитьГруппировку(Оператор, СтруктураСхемыЗапроса);
ДобавитьПорядок(ЗапросПакета, СтруктураСхемыЗапроса);
ДобавитьИтоги(ЗапросПакета, СтруктураСхемыЗапроса);
ТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса(); ТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса();
Возврат ТекстЗапроса; Возврат ТекстЗапроса;
@@ -60,6 +54,19 @@
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
Процедура ДобавитьДанныеЗапроса(ЗапросПакета, Оператор, Запрос, СтруктураСхемыЗапроса, ЭтоПоляИзВложенногоЗапроса = Ложь)
// Соединения добавляются раньше всех чтобы к моменту добавления полей у нас
// уже были все возможные источники данных
ДобавитьСоединения(Оператор, Запрос, СтруктураСхемыЗапроса);
ДобавитьПоля(ЗапросПакета, Оператор, СтруктураСхемыЗапроса, ЭтоПоляИзВложенногоЗапроса);
ДобавитьУсловия(Оператор, Запрос, СтруктураСхемыЗапроса);
ДобавитьГруппировку(Оператор, СтруктураСхемыЗапроса);
ДобавитьПорядок(ЗапросПакета, СтруктураСхемыЗапроса);
ДобавитьИтоги(ЗапросПакета, СтруктураСхемыЗапроса);
КонецПроцедуры
Функция ДобавитьПолучитьПакет(СхемаЗапроса, СтруктураСхемыЗапроса) Функция ДобавитьПолучитьПакет(СхемаЗапроса, СтруктураСхемыЗапроса)
ПакетЗапросов = СхемаЗапроса.ПакетЗапросов; ПакетЗапросов = СхемаЗапроса.ПакетЗапросов;
@@ -77,7 +84,7 @@
КонецФункции КонецФункции
Функция ДобавитьПолучитьОператор(ЗапросПакета, СтруктураСхемыЗапроса) Функция ДобавитьПолучитьОператор(ЗапросПакета, Запрос, СтруктураСхемыЗапроса)
Если ЗапросПакета.Операторы.Количество() = 1 Тогда Если ЗапросПакета.Операторы.Количество() = 1 Тогда
Оператор = ЗапросПакета.Операторы[0]; Оператор = ЗапросПакета.Операторы[0];
@@ -99,19 +106,15 @@
Если ТипЗнч(СтруктураСхемыЗапроса.ИсточникДанных) = Тип("Строка") Тогда Если ТипЗнч(СтруктураСхемыЗапроса.ИсточникДанных) = Тип("Строка") Тогда
Оператор.Источники.Добавить(СтруктураСхемыЗапроса.ИсточникДанных); Оператор.Источники.Добавить(СтруктураСхемыЗапроса.ИсточникДанных);
Иначе Иначе
Если ТипЗнч(СтруктураСхемыЗапроса.ИсточникДанных) = Тип("ОбработкаОбъект.СЗ_ПроцессорСхемЗапроса") Тогда СтруктураСхемыВложенногоЗапроса = СтруктураСхемыЗапроса.ИсточникДанных;
СтруктураСхемыВложенногоЗапроса = СтруктураСхемыЗапроса.ИсточникДанных.Получить();
Иначе
СтруктураСхемыВложенногоЗапроса = СтруктураСхемыЗапроса.ИсточникДанных;
КонецЕсли;
ВложенныйЗапрос = ПолучитьЗапрос(СтруктураСхемыВложенногоЗапроса);
Если Не СтруктураСхемыВложенногоЗапроса.Свойство("ПсевдонимИсточника") Или Если Не СтруктураСхемыВложенногоЗапроса.Свойство("ПсевдонимИсточника") Или
ПустаяСтрока(СтруктураСхемыВложенногоЗапроса.ПсевдонимИсточника) Тогда ПустаяСтрока(СтруктураСхемыВложенногоЗапроса.ПсевдонимИсточника) Тогда
ВызватьИсключение "У вложенного запроса обязательно должен быть псевдоним"; ВызватьИсключение "У вложенного запроса обязательно должен быть псевдоним";
КонецЕсли; КонецЕсли;
ВложенныйЗапрос = ПолучитьТекстЗапроса(СтруктураСхемыВложенногоЗапроса, Запрос);
ИсточникСхемыЗапроса = Оператор.Источники.Добавить(Тип("ВложенныйЗапросСхемыЗапроса"), ИсточникСхемыЗапроса = Оператор.Источники.Добавить(Тип("ВложенныйЗапросСхемыЗапроса"),
СтруктураСхемыВложенногоЗапроса.ПсевдонимИсточника); СтруктураСхемыВложенногоЗапроса.ПсевдонимИсточника);
ИсточникСхемыЗапроса.Источник.Запрос.УстановитьТекстЗапроса(ВложенныйЗапрос); ИсточникСхемыЗапроса.Источник.Запрос.УстановитьТекстЗапроса(ВложенныйЗапрос);
@@ -121,7 +124,7 @@
КонецФункции КонецФункции
Процедура ДобавитьПоля(ЗапросПакета, Оператор, СтруктураСхемыЗапроса) Процедура ДобавитьПоля(ЗапросПакета, Оператор, СтруктураСхемыЗапроса, ЭтоПоляИзВложенногоЗапроса = Ложь)
Если СтруктураСхемыЗапроса.Свойство("Поля") И Если СтруктураСхемыЗапроса.Свойство("Поля") И
ТипЗнч(СтруктураСхемыЗапроса.Поля) = Тип("Массив") И ТипЗнч(СтруктураСхемыЗапроса.Поля) = Тип("Массив") И
@@ -137,7 +140,12 @@
Если Не ИсточникПоля = Неопределено Тогда Если Не ИсточникПоля = Неопределено Тогда
ДоступноеПоле = ИсточникПоля.Источник.ДоступныеПоля.Найти(Поле.ИмяПоля); ДоступноеПоле = ИсточникПоля.Источник.ДоступныеПоля.Найти(Поле.ИмяПоля);
Если Не ДоступноеПоле = Неопределено Тогда Если Не ДоступноеПоле = Неопределено Тогда
НовоеПоле = Оператор.ВыбираемыеПоля.Добавить(ДоступноеПоле); Если Не ЭтоПоляИзВложенногоЗапроса Тогда
НовоеПоле = Оператор.ВыбираемыеПоля.Добавить(ДоступноеПоле);
Иначе
НовоеПоле = Оператор.ВыбираемыеПоля.Добавить(ДоступноеПоле,
ИсточникПоля.Источник.ДоступныеПоля.Индекс(ДоступноеПоле));
КонецЕсли;
Если Не Поле.Псевдоним = Неопределено Тогда Если Не Поле.Псевдоним = Неопределено Тогда
ЗапросПакета.Колонки[ЗапросПакета.Колонки.Количество() - 1].Псевдоним = Поле.Псевдоним; ЗапросПакета.Колонки[ЗапросПакета.Колонки.Количество() - 1].Псевдоним = Поле.Псевдоним;
КонецЕсли; КонецЕсли;
@@ -181,7 +189,7 @@
КонецПроцедуры КонецПроцедуры
Процедура ДобавитьСоединения(Оператор, СтруктураСхемыЗапроса) Процедура ДобавитьСоединения(Оператор, Запрос, СтруктураСхемыЗапроса)
Если СтруктураСхемыЗапроса.Свойство("Соединения") И ТипЗнч(СтруктураСхемыЗапроса.Соединения) = Тип("Массив") Тогда Если СтруктураСхемыЗапроса.Свойство("Соединения") И ТипЗнч(СтруктураСхемыЗапроса.Соединения) = Тип("Массив") Тогда
Для каждого СтруктураСоединения Из СтруктураСхемыЗапроса.Соединения Цикл Для каждого СтруктураСоединения Из СтруктураСхемыЗапроса.Соединения Цикл
@@ -189,7 +197,7 @@
ИсточникСоединения = Оператор.Источники.Добавить(СтруктураСоединения.ИсточникДанных, ИсточникСоединения = Оператор.Источники.Добавить(СтруктураСоединения.ИсточникДанных,
СтруктураСоединения.Псевдоним); СтруктураСоединения.Псевдоним);
Иначе Иначе
ВложенныйЗапрос = ПолучитьЗапрос(СтруктураСоединения.ИсточникДанных); ВложенныйЗапрос = ПолучитьТекстЗапроса(СтруктураСоединения.ИсточникДанных, Запрос);
ИсточникСоединения = Оператор.Источники.Добавить(Тип("ВложенныйЗапросСхемыЗапроса"), ИсточникСоединения = Оператор.Источники.Добавить(Тип("ВложенныйЗапросСхемыЗапроса"),
СтруктураСоединения.Псевдоним); СтруктураСоединения.Псевдоним);
ИсточникСоединения.Источник.Запрос.УстановитьТекстЗапроса(ВложенныйЗапрос); ИсточникСоединения.Источник.Запрос.УстановитьТекстЗапроса(ВложенныйЗапрос);
@@ -279,7 +287,52 @@
Процедура ДобавитьИтоги(ЗапросПакета, СтруктураСхемыЗапроса) Процедура ДобавитьИтоги(ЗапросПакета, СтруктураСхемыЗапроса)
ТочкаОстанова = 1; Если СтруктураСхемыЗапроса.Свойство("Итоги") И ТипЗнч(СтруктураСхемыЗапроса.Итоги) = Тип("Массив") Тогда
// TODO:
КонецЕсли;
КонецПроцедуры
Процедура ДобавитьОбъединения(ЗапросПакета, Запрос, СтруктураСхемыЗапроса)
Если СтруктураСхемыЗапроса.Свойство("Объединения") И ТипЗнч(СтруктураСхемыЗапроса.Объединения) = Тип("Массив") Тогда
Для каждого ЭлементОбъединения Из СтруктураСхемыЗапроса.Объединения Цикл
Оператор = ЗапросПакета.Операторы.Добавить();
Если ЭлементОбъединения.ТипОбъединения Тогда
Оператор.ТипОбъединения = ТипОбъединенияСхемыЗапроса.ОбъединитьВсе;
Иначе
Оператор.ТипОбъединения = ТипОбъединенияСхемыЗапроса.Объединить;
КонецЕсли;
Если ТипЗнч(ЭлементОбъединения.СтруктураСхемыЗапроса.ИсточникДанных) = Тип("Строка") Тогда
Оператор.Источники.Добавить(ЭлементОбъединения.СтруктураСхемыЗапроса.ИсточникДанных);
ДобавитьДанныеЗапроса(ЗапросПакета, Оператор, Запрос,
ЭлементОбъединения.СтруктураСхемыЗапроса);
ИначеЕсли ТипЗнч(ЭлементОбъединения.СтруктураСхемыЗапроса.ИсточникДанных.ИсточникДанных) = Тип("Строка") Тогда
Оператор.Источники.Добавить(ЭлементОбъединения.СтруктураСхемыЗапроса.ИсточникДанных.ИсточникДанных);
ДобавитьДанныеЗапроса(ЗапросПакета, Оператор, Запрос,
ЭлементОбъединения.СтруктураСхемыЗапроса.ИсточникДанных);
Иначе
СтруктураСхемыВложенногоЗапроса = ЭлементОбъединения.СтруктураСхемыЗапроса.ИсточникДанных.ИсточникДанных;
Если Не СтруктураСхемыВложенногоЗапроса.Свойство("ПсевдонимИсточника") Или
ПустаяСтрока(СтруктураСхемыВложенногоЗапроса.ПсевдонимИсточника) Тогда
ВызватьИсключение "ДобавитьОбъединения: у вложенного запроса обязательно должен быть псевдоним";
КонецЕсли;
ВложенныйЗапрос = ПолучитьТекстЗапроса(СтруктураСхемыВложенногоЗапроса, Запрос);
ИсточникСхемыЗапроса = Оператор.Источники.Добавить(Тип("ВложенныйЗапросСхемыЗапроса"),
СтруктураСхемыВложенногоЗапроса.ПсевдонимИсточника);
ИсточникСхемыЗапроса.Источник.Запрос.УстановитьТекстЗапроса(ВложенныйЗапрос);
ДобавитьДанныеЗапроса(ЗапросПакета, Оператор, Запрос,
ЭлементОбъединения.СтруктураСхемыЗапроса.ИсточникДанных, Истина);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -293,11 +346,4 @@
КонецПроцедуры КонецПроцедуры
Функция ПолучитьЗапрос(СтруктураСхемыЗапроса)
Запрос = Новый Запрос;
Возврат ПолучитьТекстЗапроса(СтруктураСхемыЗапроса, Запрос);
КонецФункции
#КонецОбласти #КонецОбласти

View File

@@ -179,6 +179,38 @@
КонецПроцедуры КонецПроцедуры
Процедура УстановитьОбъединение(СхемаЗапроса, ИсточникДанных) Экспорт
МассивОбъединений = Новый Массив;
Если СхемаЗапроса.Свойство("Объединения") И ТипЗнч(СхемаЗапроса.Объединения) = Тип("Массив") Тогда
МассивОбъединений = СхемаЗапроса.Объединения;
КонецЕсли;
СхемаЗапросаОбъединения = Новый Структура;
СхемаЗапросаОбъединения.Вставить("ИсточникДанных", ИсточникДанных);
МассивОбъединений.Добавить(Новый Структура("СтруктураСхемыЗапроса, ТипОбъединения",
СхемаЗапросаОбъединения, Ложь));
СхемаЗапроса.Вставить("Объединения", МассивОбъединений);
КонецПроцедуры
Процедура УстановитьОбъединениеВсе(СхемаЗапроса, ИсточникДанных) Экспорт
МассивОбъединений = Новый Массив;
Если СхемаЗапроса.Свойство("Объединения") И ТипЗнч(СхемаЗапроса.Объединения) = Тип("Массив") Тогда
МассивОбъединений = СхемаЗапроса.Объединения;
КонецЕсли;
СхемаЗапросаОбъединения = Новый Структура;
СхемаЗапросаОбъединения.Вставить("ИсточникДанных", ИсточникДанных);
МассивОбъединений.Добавить(Новый Структура("СтруктураСхемыЗапроса, ТипОбъединения",
СхемаЗапросаОбъединения, Истина));
СхемаЗапроса.Вставить("Объединения", МассивОбъединений);
КонецПроцедуры
Процедура УстановитьПараметры(СхемаЗапроса, Параметры) Экспорт Процедура УстановитьПараметры(СхемаЗапроса, Параметры) Экспорт
СхемаЗапроса.Вставить("Параметры", Параметры); СхемаЗапроса.Вставить("Параметры", Параметры);

View File

@@ -2,11 +2,11 @@
<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"> <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> <ConfigVersions>
<Metadata name="CommonModule.СЗ_Запрос" id="5f1605a0-4e63-4339-b2cc-44e115be6ed7" configVersion="e2743c37ca1c317bbd7deb62473bdb9c92ce4b3b"/> <Metadata name="CommonModule.СЗ_Запрос" id="5f1605a0-4e63-4339-b2cc-44e115be6ed7" configVersion="e2743c37ca1c317bbd7deb62473bdb9c92ce4b3b"/>
<Metadata name="CommonModule.СЗ_Запрос.Module" id="5f1605a0-4e63-4339-b2cc-44e115be6ed7.0" configVersion="b9f7c1a23ceb56b2cfb817a51d9c8fc91f12d4c2"/> <Metadata name="CommonModule.СЗ_Запрос.Module" id="5f1605a0-4e63-4339-b2cc-44e115be6ed7.0" configVersion="2d2c622caa84ff141251af599ce106105240ac02"/>
<Metadata name="CommonModule.СЗ_ЗапросТест" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314" configVersion="01955255914f2f02da26b7a05ec1ffe713f168e1"/> <Metadata name="CommonModule.СЗ_ЗапросТест" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314" configVersion="01955255914f2f02da26b7a05ec1ffe713f168e1"/>
<Metadata name="CommonModule.СЗ_ЗапросТест.Module" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314.0" configVersion="f4e8ff494307f6fad7b6f05cfc617d4260e068bd"/> <Metadata name="CommonModule.СЗ_ЗапросТест.Module" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314.0" configVersion="90970161bc2ad87328b3dab31879b1a1934655a9"/>
<Metadata name="CommonModule.СЗ_ЗапросТестКлиент" id="b37c9dfc-97f9-419e-aef2-d1598bd7f793" configVersion="5359322a8c19378b2e3c1b14d2a9391855efe7df"/> <Metadata name="CommonModule.СЗ_ЗапросТестКлиент" id="b37c9dfc-97f9-419e-aef2-d1598bd7f793" configVersion="5359322a8c19378b2e3c1b14d2a9391855efe7df"/>
<Metadata name="CommonModule.СЗ_ЗапросТестКлиент.Module" id="b37c9dfc-97f9-419e-aef2-d1598bd7f793.0" configVersion="fe7ea798ca9297828818477ab38354e0cc05dd01"/> <Metadata name="CommonModule.СЗ_ЗапросТестКлиент.Module" id="b37c9dfc-97f9-419e-aef2-d1598bd7f793.0" configVersion="9effdd33214bfa0c3b4416e435ed56e6bebeaa5a"/>
<Metadata name="CommonModule.СЗ_ЗапросТестСлужебныйВызовСервера" id="fd18e525-b216-4cbe-9e5b-3f44fcf6fcf2" configVersion="e712d7406cf41efebb6cb460b71efc934d7fda79"/> <Metadata name="CommonModule.СЗ_ЗапросТестСлужебныйВызовСервера" id="fd18e525-b216-4cbe-9e5b-3f44fcf6fcf2" configVersion="e712d7406cf41efebb6cb460b71efc934d7fda79"/>
<Metadata name="CommonModule.СЗ_ЗапросТестСлужебныйВызовСервера.Module" id="fd18e525-b216-4cbe-9e5b-3f44fcf6fcf2.0" configVersion="2996bad07721c51263093d0143fd261dacf6a7e8"/> <Metadata name="CommonModule.СЗ_ЗапросТестСлужебныйВызовСервера.Module" id="fd18e525-b216-4cbe-9e5b-3f44fcf6fcf2.0" configVersion="2996bad07721c51263093d0143fd261dacf6a7e8"/>
<Metadata name="CommonModule.СЗ_ПроцессорыПредикатовКлиентСервер" id="407489b2-2f4b-467b-9594-621de146e468" configVersion="d0e776fe2161eadb117e389e6d86e40d8f7927fc"/> <Metadata name="CommonModule.СЗ_ПроцессорыПредикатовКлиентСервер" id="407489b2-2f4b-467b-9594-621de146e468" configVersion="d0e776fe2161eadb117e389e6d86e40d8f7927fc"/>
@@ -16,14 +16,14 @@
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаКлиентСервер" id="a3e5bf50-2154-477f-9355-29b0930a73c5" configVersion="0a1d47680d6c53bcec9c7b566903a863ce26bf77"/> <Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаКлиентСервер" id="a3e5bf50-2154-477f-9355-29b0930a73c5" configVersion="0a1d47680d6c53bcec9c7b566903a863ce26bf77"/>
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаКлиентСервер.Module" id="a3e5bf50-2154-477f-9355-29b0930a73c5.0" configVersion="549fad0d337d4f6e1888453356a6baefa249ed3b"/> <Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаКлиентСервер.Module" id="a3e5bf50-2154-477f-9355-29b0930a73c5.0" configVersion="549fad0d337d4f6e1888453356a6baefa249ed3b"/>
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебный" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c" configVersion="77f2ed6a2d9924e64f836b9a16c0664b4a5a38e8"/> <Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебный" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c" configVersion="77f2ed6a2d9924e64f836b9a16c0664b4a5a38e8"/>
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебный.Module" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c.0" configVersion="4f3900cb2dafbf4a589e4ff8d2025432c660f1d7"/> <Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебный.Module" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c.0" configVersion="f790a5b56fc31af89af7965da9647d753c06893d"/>
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера" id="64cc4f13-8ea3-43e0-b530-031a569bfcd0" configVersion="de76e252360ff40f9368c1eec2d95d3aa03b14e7"/> <Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера" id="64cc4f13-8ea3-43e0-b530-031a569bfcd0" configVersion="de76e252360ff40f9368c1eec2d95d3aa03b14e7"/>
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера.Module" id="64cc4f13-8ea3-43e0-b530-031a569bfcd0.0" configVersion="d1a3621279ecd64374af1122b787e190dbc22c00"/> <Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера.Module" id="64cc4f13-8ea3-43e0-b530-031a569bfcd0.0" configVersion="d1a3621279ecd64374af1122b787e190dbc22c00"/>
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc" configVersion="8a27beba3300dacb51abfc0f6b4c8711bb7b0b06"/> <Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc" configVersion="8a27beba3300dacb51abfc0f6b4c8711bb7b0b06"/>
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.Module" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc.0" configVersion="ad147bc139300d286ab5b65727b8a96e03f89370"/> <Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.Module" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc.0" configVersion="020919068a3ae0c75c8f2505ae82fb4d144c6b9e"/>
<Metadata name="CommonPicture.СЗ_Логотип" id="1f46f9f5-7948-4684-80f5-f809aace3848" configVersion="1cd842efa6dbeed87c4bd770ba9fdfea3ffc73c0"/> <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="CommonPicture.СЗ_Логотип.Picture" id="1f46f9f5-7948-4684-80f5-f809aace3848.0" configVersion="09958a054a92dc27b186eb0ab627d11bade1f015"/>
<Metadata name="Configuration.СхемаЗапроса" id="727bc241-bb6d-418f-b908-1102fbf1bc00" configVersion="4dd0f6fff3c4507ca269683d93ce6fa75b40356c"/> <Metadata name="Configuration.СхемаЗапроса" id="727bc241-bb6d-418f-b908-1102fbf1bc00" configVersion="cdeb55e8bf69553cdbd1cbf6ab2ab4c2cc585136"/>
<Metadata name="DataProcessor.СЗ_КонсольФункциональныхЗапросов" id="67397753-24bc-416c-9dc1-5fe9545ad4b2" configVersion="171dea8f1f823da789fdb06cae08e40365231b49"/> <Metadata name="DataProcessor.СЗ_КонсольФункциональныхЗапросов" id="67397753-24bc-416c-9dc1-5fe9545ad4b2" configVersion="171dea8f1f823da789fdb06cae08e40365231b49"/>
<Metadata name="DataProcessor.СЗ_КонсольФункциональныхЗапросов.Form.Форма" id="1f613bcb-34f1-4755-8c5b-734e99a89a03" configVersion="aedcf955fb9b922c1fd72335bb59d9b931015e58"/> <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="ed93a31df2cc47c65da51be82b3b052f1f6b94e2"/> <Metadata name="DataProcessor.СЗ_КонсольФункциональныхЗапросов.Form.Форма.Form" id="1f613bcb-34f1-4755-8c5b-734e99a89a03.0" configVersion="ed93a31df2cc47c65da51be82b3b052f1f6b94e2"/>
@@ -33,8 +33,8 @@
<Metadata name="DataProcessor.СЗ_ПроцессорПредикатов.ObjectModule" id="12d6eb41-70d9-4802-8fde-b6464e23bf0b.0" configVersion="1516d1c432d0edc4aaa776e1bea67d3a47f6523f"/> <Metadata name="DataProcessor.СЗ_ПроцессорПредикатов.ObjectModule" id="12d6eb41-70d9-4802-8fde-b6464e23bf0b.0" configVersion="1516d1c432d0edc4aaa776e1bea67d3a47f6523f"/>
<Metadata name="DataProcessor.СЗ_ПроцессорСхемЗапроса" id="7008c53a-3e8a-4432-bff6-500c4145bab5" configVersion="dd57e1686ab74914b294900633b6e9245facc435"/> <Metadata name="DataProcessor.СЗ_ПроцессорСхемЗапроса" id="7008c53a-3e8a-4432-bff6-500c4145bab5" configVersion="dd57e1686ab74914b294900633b6e9245facc435"/>
<Metadata name="DataProcessor.СЗ_ПроцессорСхемЗапроса.Form.Форма" id="04cd8a25-c99d-4da9-ac0f-5703574d079f" configVersion="f910d6e757792c7cdd2137a7213495bba1da1300"/> <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="2604eee1201c8910f82770c627590af9e28a4704"/> <Metadata name="DataProcessor.СЗ_ПроцессорСхемЗапроса.Form.Форма.Form" id="04cd8a25-c99d-4da9-ac0f-5703574d079f.0" configVersion="ceba4f9abadf6c05af769406280f0ed87132ceb4"/>
<Metadata name="DataProcessor.СЗ_ПроцессорСхемЗапроса.ObjectModule" id="7008c53a-3e8a-4432-bff6-500c4145bab5.0" configVersion="b161dc00d93c568e6b15dffb531b4c549538682f"/> <Metadata name="DataProcessor.СЗ_ПроцессорСхемЗапроса.ObjectModule" id="7008c53a-3e8a-4432-bff6-500c4145bab5.0" configVersion="dfa31660d4a70cc120454a237f9ee21b37d835d9"/>
<Metadata name="Language.Русский" id="390892dc-e75e-45a4-b708-a02f7f2dee5a" configVersion="d36425ed50ec1003a922942173f639c4f459684c"/> <Metadata name="Language.Русский" id="390892dc-e75e-45a4-b708-a02f7f2dee5a" configVersion="d36425ed50ec1003a922942173f639c4f459684c"/>
<Metadata name="Subsystem.СЗ_Обработки" id="d4e271af-1ead-4743-afb5-9c2aa77055ae" configVersion="4706428f4c44e863ecd0652dc681dab80258cd41"/> <Metadata name="Subsystem.СЗ_Обработки" id="d4e271af-1ead-4743-afb5-9c2aa77055ae" configVersion="4706428f4c44e863ecd0652dc681dab80258cd41"/>
<Metadata name="Subsystem.СЗ_Основная" id="a09dece7-9d83-44cb-8463-270875de13d2" configVersion="9c0d5ea3be648246d696789b6fbcc298d59ca152"/> <Metadata name="Subsystem.СЗ_Основная" id="a09dece7-9d83-44cb-8463-270875de13d2" configVersion="9c0d5ea3be648246d696789b6fbcc298d59ca152"/>

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.1</Version> <Version>0.0.2</Version>
<BriefInformation/> <BriefInformation/>
<DetailedInformation/> <DetailedInformation/>
<Copyright/> <Copyright/>

View File

@@ -9,8 +9,18 @@
// //
// //
Процедура УстановитьИсточникДанных(ИсточникДанных, Первые = -1, Различные = Ложь, Разрешенные = Ложь) Экспорт Процедура УстановитьИсточникДанных(ИсточникДанных, Первые = -1, Различные = Ложь, Разрешенные = Ложь) Экспорт
Если ТипЗнч(ИсточникДанных) = Тип("Строка") Тогда
_ИсточникДанных = ИсточникДанных;
ИначеЕсли ТипЗнч(ИсточникДанных) = Тип("ОбработкаОбъект.СЗ_ПроцессорСхемЗапроса") Тогда
_ИсточникДанных = ИсточникДанных.Получить();
Иначе
ВызватьИсключение "Объединить: неверный тип источника данных";
КонецЕсли;
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьИсточникДанных(СхемаЗапроса, СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьИсточникДанных(СхемаЗапроса,
ИсточникДанных, Первые, Различные, Разрешенные); _ИсточникДанных, Первые, Различные, Разрешенные);
КонецПроцедуры КонецПроцедуры
// //
@@ -146,6 +156,42 @@
Возврат ЭтотОбъект; Возврат ЭтотОбъект;
КонецФункции КонецФункции
//
//
Функция Объединить(ИсточникДанных) Экспорт
Если ТипЗнч(ИсточникДанных) = Тип("Строка") Тогда
_ИсточникДанных = ИсточникДанных;
ИначеЕсли ТипЗнч(ИсточникДанных) = Тип("ОбработкаОбъект.СЗ_ПроцессорСхемЗапроса") Тогда
_ИсточникДанных = ИсточникДанных.Получить();
Иначе
ВызватьИсключение "Объединить: неверный тип источника данных";
КонецЕсли;
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
.УстановитьОбъединение(СхемаЗапроса, _ИсточникДанных);
Возврат ЭтотОбъект;
КонецФункции
//
//
Функция ОбъединитьВсе(ИсточникДанных) Экспорт
Если ТипЗнч(ИсточникДанных) = Тип("Строка") Тогда
_ИсточникДанных = ИсточникДанных;
ИначеЕсли ТипЗнч(ИсточникДанных) = Тип("ОбработкаОбъект.СЗ_ПроцессорСхемЗапроса") Тогда
_ИсточникДанных = ИсточникДанных.Получить();
Иначе
ВызватьИсключение "Объединить: неверный тип источника данных";
КонецЕсли;
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
.УстановитьОбъединениеВсе(СхемаЗапроса, _ИсточникДанных);
Возврат ЭтотОбъект;
КонецФункции
// //
// //
Функция Параметры(Параметры) Экспорт Функция Параметры(Параметры) Экспорт

View File

@@ -130,6 +130,40 @@
Возврат ЭтотОбъект; Возврат ЭтотОбъект;
КонецФункции КонецФункции
&НаКлиенте
Функция Объединить(ИсточникДанных) Экспорт
Если ТипЗнч(ИсточникДанных) = Тип("Строка") Тогда
_ИсточникДанных = ИсточникДанных;
ИначеЕсли ТипЗнч(ИсточникДанных) = Тип("ФормаКлиентскогоПриложения") Тогда
_ИсточникДанных = ИсточникДанных.Получить();
Иначе
ВызватьИсключение "Объединить: неверный тип источника данных";
КонецЕсли;
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
.УстановитьОбъединение(СхемаЗапроса, _ИсточникДанных);
Возврат ЭтотОбъект;
КонецФункции
&НаКлиенте
Функция ОбъединитьВсе(ИсточникДанных) Экспорт
Если ТипЗнч(ИсточникДанных) = Тип("Строка") Тогда
_ИсточникДанных = ИсточникДанных;
ИначеЕсли ТипЗнч(ИсточникДанных) = Тип("ФормаКлиентскогоПриложения") Тогда
_ИсточникДанных = ИсточникДанных.Получить();
Иначе
ВызватьИсключение "Объединить: неверный тип источника данных";
КонецЕсли;
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
.УстановитьОбъединениеВсе(СхемаЗапроса, _ИсточникДанных);
Возврат ЭтотОбъект;
КонецФункции
&НаКлиенте &НаКлиенте
Функция Параметры(Параметры) Экспорт Функция Параметры(Параметры) Экспорт
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьПараметры(СхемаЗапроса, Параметры); СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьПараметры(СхемаЗапроса, Параметры);