diff --git a/src/cfe/CommonModules/СЗ_ЗапросТест/Ext/Module.bsl b/src/cfe/CommonModules/СЗ_ЗапросТест/Ext/Module.bsl
index c4e5c19..56ab3d9 100644
--- a/src/cfe/CommonModules/СЗ_ЗапросТест/Ext/Module.bsl
+++ b/src/cfe/CommonModules/СЗ_ЗапросТест/Ext/Module.bsl
@@ -3,42 +3,50 @@
Процедура ИсполняемыеСценарии() Экспорт
ЮТТесты.УдалениеТестовыхДанных()
- .ДобавитьТест("ИсключениеИсточникОтсутствует")
- .ДобавитьТест("ИсключениеИсточникПустаяСтрока")
- .ДобавитьТест("ЗапросВТаблицуЗначений")
- .ДобавитьТест("ЗапросВМассив")
- .ДобавитьТест("Первые")
- .ДобавитьТест("Различные")
- .ДобавитьТест("Разрешенные")
- .ДобавитьТест("ИсключениеПолеОтсутствует")
- .ДобавитьТест("ДобавитьПоляССинонимами")
- .ДобавитьТест("ДобавитьНесколькоПолей")
- .ДобавитьТест("ДобавитьНесколькоПолейСПереносомСтроки")
- .ДобавитьТест("ДобавитьПоляССинонимамиИСписком")
- .ДобавитьТест("ВсеПоляДляНеСсылочногоТипа")
- .ДобавитьТест("ВсеПоляДляСсылочногоТипа")
- .ДобавитьТест("ЗапросСУсловиемРавно")
- .ДобавитьТест("ЗапросСУсловиемНеРавно")
- .ДобавитьТест("ЗапросСУсловиемПодобно")
- .ДобавитьТест("ЗапросСУсловиемНеПодобно")
- .ДобавитьТест("ЗапросСУсловиемМежду")
- .ДобавитьТест("ЗапросСУсловиемВСписке")
- .Перед("Перед_ЗапросСУсловиемВСписке")
- .ДобавитьТест("ЗапросСУсловиемНеВСписке")
- .Перед("Перед_ЗапросСУсловиемНеВСписке")
- .ДобавитьТест("ЛевоеСоединениеПоИсточникуСтроке")
- .ДобавитьТест("ЛевоеСоединениеПоИсточникуЗапросу")
- .ДобавитьТест("ЛевоеСоединениеБезПредиката")
- .ДобавитьТест("ЛевоеСоединениеНесколькоУсловийВПредикате")
- .ДобавитьТест("ЛевоеСоединениеПредикатЭтоПараметр")
- .ДобавитьТест("ЛевоеСоединениеБезПсевдонимовВСоединении")
- .ДобавитьТест("НесколькоЛевыхСоединений")
- .ДобавитьТест("ВложенныйЗапрос")
- .ДобавитьТест("Порядок")
- .ДобавитьТест("ПорядокУбывания")
- .ДобавитьТест("Итоги")
- .ДобавитьТест("АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений")
- .Перед("Перед_АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений")
+ .ДобавитьТестовыйНабор("СЗ: Базовые")
+ .ДобавитьТест("ИсключениеИсточникОтсутствует")
+ .ДобавитьТест("ИсключениеИсточникПустаяСтрока")
+ .ДобавитьТест("ЗапросВТаблицуЗначений")
+ .ДобавитьТест("ЗапросВМассив")
+ .ДобавитьТест("Первые")
+ .ДобавитьТест("Различные")
+ .ДобавитьТест("Разрешенные")
+ .ДобавитьТестовыйНабор("СЗ: Поля")
+ .ДобавитьТест("ИсключениеПолеОтсутствует")
+ .ДобавитьТест("ДобавитьПоляССинонимами")
+ .ДобавитьТест("ДобавитьНесколькоПолей")
+ .ДобавитьТест("ДобавитьНесколькоПолейСПереносомСтроки")
+ .ДобавитьТест("ДобавитьПоляССинонимамиИСписком")
+ .ДобавитьТест("ВсеПоляДляНеСсылочногоТипа")
+ .ДобавитьТест("ВсеПоляДляСсылочногоТипа")
+ .ДобавитьТестовыйНабор("СЗ: Условия")
+ .ДобавитьТест("ЗапросСУсловиемРавно")
+ .ДобавитьТест("ЗапросСУсловиемНеРавно")
+ .ДобавитьТест("ЗапросСУсловиемПодобно")
+ .ДобавитьТест("ЗапросСУсловиемНеПодобно")
+ .ДобавитьТест("ЗапросСУсловиемМежду")
+ .ДобавитьТест("ЗапросСУсловиемВСписке")
+ .Перед("Перед_ЗапросСУсловиемВСписке")
+ .ДобавитьТест("ЗапросСУсловиемНеВСписке")
+ .Перед("Перед_ЗапросСУсловиемНеВСписке")
+ .ДобавитьТестовыйНабор("СЗ: Соединения")
+ .ДобавитьТест("ЛевоеСоединениеПоИсточникуСтроке")
+ .ДобавитьТест("ЛевоеСоединениеПоИсточникуЗапросу")
+ .ДобавитьТест("ЛевоеСоединениеБезПредиката")
+ .ДобавитьТест("ЛевоеСоединениеНесколькоУсловийВПредикате")
+ .ДобавитьТест("ЛевоеСоединениеПредикатЭтоПараметр")
+ .ДобавитьТест("ЛевоеСоединениеБезПсевдонимовВСоединении")
+ .ДобавитьТест("НесколькоЛевыхСоединений")
+ .ДобавитьТестовыйНабор("СЗ: Вложенный запрос")
+ .ДобавитьТест("ИсключениеВложенныйЗапросБезПсевдонима")
+ .ДобавитьТест("ВложенныйЗапрос")
+ .ДобавитьТестовыйНабор("СЗ: Прочее")
+ .ДобавитьТест("Порядок")
+ .ДобавитьТест("ПорядокУбывания")
+ .ДобавитьТест("Итоги")
+ .ДобавитьТестовыйНабор("СЗ: Реальные запросы")
+ .ДобавитьТест("АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений")
+ .Перед("Перед_АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений")
;
КонецПроцедуры
@@ -101,11 +109,6 @@
Процедура ИсключениеИсточникОтсутствует() Экспорт
- Предикат = СЗ_Запрос.Предикат()
- .Реквизит("ЭтоГруппа").Равно(Ложь)
- .Получить()
- ;
-
Обработка = Обработки.СЗ_ПроцессорСхемЗапроса.Создать();
ЮТест.ОжидаетЧто(Обработка)
@@ -116,14 +119,7 @@
Процедура ИсключениеИсточникПустаяСтрока() Экспорт
- Предикат = СЗ_Запрос.Предикат()
- .Реквизит("ЭтоГруппа").Равно(Ложь)
- .Получить()
- ;
-
- Запрос = СЗ_Запрос.НовыйЗапрос("")
- .Где(Предикат)
- ;
+ Запрос = СЗ_Запрос.НовыйЗапрос("");
ЮТест.ОжидаетЧто(Запрос)
.Метод("ВТаблицуЗначений")
@@ -179,6 +175,13 @@
.ВТаблицуЗначений()
;
+ ЮТест.ОжидаетЧто(ТаблицаЗначений)
+ .ИмеетТип("ТаблицаЗначений")
+ ;
+ ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
+ .Больше(0)
+ ;
+
КонецПроцедуры
Процедура Разрешенные() Экспорт
@@ -187,6 +190,13 @@
.ВТаблицуЗначений()
;
+ ЮТест.ОжидаетЧто(ТаблицаЗначений)
+ .ИмеетТип("ТаблицаЗначений")
+ ;
+ ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
+ .Больше(0)
+ ;
+
КонецПроцедуры
#КонецОбласти
@@ -486,7 +496,7 @@
ЮТест.ОжидаетЧто(ТаблицаЗначений)
.ИмеетТип("ТаблицаЗначений")
.ИмеетДлинуБольше(0)
- .ЛюбойЭлементСоответствуетПредикату(ЮТест.Предикат()
+ .КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
.Реквизит("Ссылка").ВСписке(Контекст.МассивНоменклатурыНеВСписке))
;
@@ -689,16 +699,36 @@
#КонецОбласти
-Процедура ВложенныйЗапрос() Экспорт
+#Область ВложенныеЗапросы
+
+Процедура ИсключениеВложенныйЗапросБезПсевдонима() Экспорт
ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура");
+ Запрос = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос);
+
+ ЮТест.ОжидаетЧто(Запрос)
+ .Метод("ВТаблицуЗначений")
+ .ВыбрасываетИсключение("У вложенного запроса обязательно должен быть псевдоним");
+
+КонецПроцедуры
+
+Процедура ВложенныйЗапрос() Экспорт
+
+ ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
+ .Псевдоним("ВложенныйЗапрос")
+ ;
+
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос)
.ВТаблицуЗначений()
;
КонецПроцедуры
+#КонецОбласти
+
+#Область Прочее
+
Процедура Порядок() Экспорт
// Выполнение
@@ -770,13 +800,20 @@
Процедура Итоги() Экспорт
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
- // TODO:
- .Итоги()
+ .Итоги("ЭтоГруппа")
.ВТаблицуЗначений()
;
+ ЮТест.ОжидаетЧто(ТаблицаЗначений)
+ .ИмеетТип("ТаблицаЗначений")
+ .ИмеетДлинуБольше(0)
+ .ЛюбойЭлементСодержитСвойство("ссылка", Null)
+ ;
+
КонецПроцедуры
+#КонецОбласти
+
#Область РеальныеЗапросы
Процедура АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений() Экспорт
diff --git a/src/cfe/CommonModules/СЗ_ПроцессорыСхемЗапросаСлужебный/Ext/Module.bsl b/src/cfe/CommonModules/СЗ_ПроцессорыСхемЗапросаСлужебный/Ext/Module.bsl
index 7fbcfdf..b0936aa 100644
--- a/src/cfe/CommonModules/СЗ_ПроцессорыСхемЗапросаСлужебный/Ext/Module.bsl
+++ b/src/cfe/CommonModules/СЗ_ПроцессорыСхемЗапросаСлужебный/Ext/Module.bsl
@@ -49,6 +49,7 @@
ДобавитьУсловия(Оператор, Запрос, СтруктураСхемыЗапроса);
ДобавитьГруппировку(Оператор, СтруктураСхемыЗапроса);
ДобавитьПорядок(ЗапросПакета, СтруктураСхемыЗапроса);
+ ДобавитьИтоги(ЗапросПакета, СтруктураСхемыЗапроса);
ТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса();
Возврат ТекстЗапроса;
@@ -95,7 +96,26 @@
Оператор.ВыбиратьРазличные = Истина;
КонецЕсли;
- Оператор.Источники.Добавить(СтруктураСхемыЗапроса.ИсточникДанных);
+ Если ТипЗнч(СтруктураСхемыЗапроса.ИсточникДанных) = Тип("Строка") Тогда
+ Оператор.Источники.Добавить(СтруктураСхемыЗапроса.ИсточникДанных);
+ Иначе
+ Если ТипЗнч(СтруктураСхемыЗапроса.ИсточникДанных) = Тип("ОбработкаОбъект.СЗ_ПроцессорСхемЗапроса") Тогда
+ СтруктураСхемыВложенногоЗапроса = СтруктураСхемыЗапроса.ИсточникДанных.Получить();
+ Иначе
+ СтруктураСхемыВложенногоЗапроса = СтруктураСхемыЗапроса.ИсточникДанных;
+ КонецЕсли;
+
+ ВложенныйЗапрос = ПолучитьЗапрос(СтруктураСхемыВложенногоЗапроса);
+ Если Не СтруктураСхемыВложенногоЗапроса.Свойство("ПсевдонимИсточника") Или
+ ПустаяСтрока(СтруктураСхемыВложенногоЗапроса.ПсевдонимИсточника) Тогда
+
+ ВызватьИсключение "У вложенного запроса обязательно должен быть псевдоним";
+ КонецЕсли;
+
+ ИсточникСхемыЗапроса = Оператор.Источники.Добавить(Тип("ВложенныйЗапросСхемыЗапроса"),
+ СтруктураСхемыВложенногоЗапроса.ПсевдонимИсточника);
+ ИсточникСхемыЗапроса.Источник.Запрос.УстановитьТекстЗапроса(ВложенныйЗапрос);
+ КонецЕсли;
Возврат Оператор;
@@ -114,14 +134,16 @@
ИсточникПоля = Оператор.Источники[0];
КонецЕсли;
- ДоступноеПоле = ИсточникПоля.Источник.ДоступныеПоля.Найти(Поле.ИмяПоля);
- Если Не ДоступноеПоле = Неопределено Тогда
- НовоеПоле = Оператор.ВыбираемыеПоля.Добавить(ДоступноеПоле);
- Если Не Поле.Псевдоним = Неопределено Тогда
- ЗапросПакета.Колонки[ЗапросПакета.Колонки.Количество() - 1].Псевдоним = Поле.Псевдоним;
+ Если Не ИсточникПоля = Неопределено Тогда
+ ДоступноеПоле = ИсточникПоля.Источник.ДоступныеПоля.Найти(Поле.ИмяПоля);
+ Если Не ДоступноеПоле = Неопределено Тогда
+ НовоеПоле = Оператор.ВыбираемыеПоля.Добавить(ДоступноеПоле);
+ Если Не Поле.Псевдоним = Неопределено Тогда
+ ЗапросПакета.Колонки[ЗапросПакета.Колонки.Количество() - 1].Псевдоним = Поле.Псевдоним;
+ КонецЕсли;
+ Иначе
+ ВызватьИсключение СтрШаблон("Поле %1 в источнике не определено", Поле.ИмяПоля);
КонецЕсли;
- Иначе
- ВызватьИсключение СтрШаблон("Поле %1 в источнике не определено", Поле.ИмяПоля);
КонецЕсли;
КонецЦикла;
Иначе
@@ -248,6 +270,12 @@
КонецФункции
+Процедура ДобавитьИтоги(ЗапросПакета, СтруктураСхемыЗапроса)
+
+ ТочкаОстанова = 1;
+
+КонецПроцедуры
+
Процедура ДобавитьПараметрыЗапроса(СтруктураСхемыЗапроса, Запрос)
Если СтруктураСхемыЗапроса.Свойство("Параметры") И ТипЗнч(СтруктураСхемыЗапроса.Параметры) = Тип("Массив") Тогда
@@ -258,4 +286,11 @@
КонецПроцедуры
+Функция ПолучитьЗапрос(СтруктураСхемыЗапроса)
+
+ Запрос = Новый Запрос;
+ Возврат ПолучитьТекстЗапроса(СтруктураСхемыЗапроса, Запрос);
+
+КонецФункции
+
#КонецОбласти
diff --git a/src/cfe/CommonModules/СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер/Ext/Module.bsl b/src/cfe/CommonModules/СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер/Ext/Module.bsl
index c3a279d..81f4301 100644
--- a/src/cfe/CommonModules/СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер/Ext/Module.bsl
+++ b/src/cfe/CommonModules/СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер/Ext/Module.bsl
@@ -15,6 +15,12 @@
КонецПроцедуры
+Процедура УстановитьПсевдонимИсточника(СхемаЗапроса, Псевдоним) Экспорт
+
+ СхемаЗапроса.Вставить("ПсевдонимИсточника", Псевдоним);
+
+КонецПроцедуры
+
Процедура УстановитьПервые(СхемаЗапроса, Количество) Экспорт
СхемаЗапроса.Вставить("Первые", Количество);
@@ -99,7 +105,7 @@
Иначе // Структура = вложенный запрос
- // TODO:
+ ВызватьИсключение "Не реализовано!";
КонецЕсли;
@@ -139,7 +145,7 @@
МассивПолей = Новый Массив;
Если СхемаЗапроса.Свойство("Порядок") И ТипЗнч(СхемаЗапроса.Поля) = Тип("Массив") Тогда
- МассивПолей = СхемаЗапроса.Поля;
+ МассивПолей = СхемаЗапроса.Порядок;
КонецЕсли;
Для каждого НовоеПоле Из НовыеПоля Цикл
МассивПолей.Добавить(ПолучитьЭлементПорядка(НовоеПоле));
@@ -149,6 +155,28 @@
КонецПроцедуры
+Процедура УстановитьИтоги(СхемаЗапроса, Поля) Экспорт
+
+ Если ТипЗнч(Поля) = Тип("Строка") Тогда
+ НовыеПоля = ПолучитьПоляИзСтроки(Поля);
+ ИначеЕсли ТипЗнч(Поля) = Тип("Массив") Тогда
+ НовыеПоля = Поля;
+ Иначе
+ ВызватьИсключение "УстановитьИтоги: неподдерживаемый тип данных в параметре ""Поля""";
+ КонецЕсли;
+
+ МассивПолей = Новый Массив;
+ Если СхемаЗапроса.Свойство("Итоги") И ТипЗнч(СхемаЗапроса.Поля) = Тип("Массив") Тогда
+ МассивПолей = СхемаЗапроса.Итоги;
+ КонецЕсли;
+ Для каждого НовоеПоле Из НовыеПоля Цикл
+ МассивПолей.Добавить(НовоеПоле);
+ КонецЦикла;
+
+ СхемаЗапроса.Вставить("Итоги", МассивПолей);
+
+КонецПроцедуры
+
Процедура УстановитьПараметры(СхемаЗапроса, Параметры) Экспорт
СхемаЗапроса.Вставить("Параметры", Параметры);
diff --git a/src/cfe/ConfigDumpInfo.xml b/src/cfe/ConfigDumpInfo.xml
index 1a797e3..83555dd 100644
--- a/src/cfe/ConfigDumpInfo.xml
+++ b/src/cfe/ConfigDumpInfo.xml
@@ -4,7 +4,7 @@
-
+
@@ -12,23 +12,23 @@
-
+
-
+
-
+
-
+
diff --git a/src/cfe/DataProcessors/СЗ_КонсольФункциональныхЗапросов/Forms/Форма/Ext/Form/Module.bsl b/src/cfe/DataProcessors/СЗ_КонсольФункциональныхЗапросов/Forms/Форма/Ext/Form/Module.bsl
index b1cfb52..7c3ef97 100644
--- a/src/cfe/DataProcessors/СЗ_КонсольФункциональныхЗапросов/Forms/Форма/Ext/Form/Module.bsl
+++ b/src/cfe/DataProcessors/СЗ_КонсольФункциональныхЗапросов/Forms/Форма/Ext/Form/Module.bsl
@@ -96,6 +96,11 @@
Если Не ПустаяСтрока(СтрокаПорядка) Тогда
МассивСтрокЗапроса.Добавить(СтрШаблон(Символы.Таб + ".Упорядочить(""%1"")", СтрокаПорядка));
КонецЕсли;
+
+ СтрокаИтогов = ПолучитьИтоги(ПакетЗапроса);
+ Если Не ПустаяСтрока(СтрокаИтогов) Тогда
+ МассивСтрокЗапроса.Добавить(СтрШаблон(Символы.Таб + ".Итоги(""%1"")", СтрокаИтогов));
+ КонецЕсли;
МассивСтрокЗапроса.Добавить(Символы.Таб + ".ВТаблицуЗначений()");
МассивСтрокЗапроса.Добавить(";");
@@ -196,4 +201,19 @@
КонецФункции
+Функция ПолучитьИтоги(ПакетЗапроса)
+
+ СтрокаИтогов = "";
+ Для каждого ЭлементИтогов Из ПакетЗапроса.КонтрольныеТочкиИтогов Цикл
+ Если Не ПустаяСтрока(СтрокаИтогов) Тогда
+ СтрокаИтогов = СтрокаИтогов + ", ";
+ КонецЕсли;
+
+ СтрокаИтогов = СтрокаИтогов + ЭлементИтогов.ИмяКолонки;
+ КонецЦикла;
+
+ Возврат СтрокаИтогов;
+
+КонецФункции
+
#КонецОбласти
diff --git a/src/cfe/DataProcessors/СЗ_ПроцессорСхемЗапроса/Ext/ObjectModule.bsl b/src/cfe/DataProcessors/СЗ_ПроцессорСхемЗапроса/Ext/ObjectModule.bsl
index 7677031..7582da9 100644
--- a/src/cfe/DataProcessors/СЗ_ПроцессорСхемЗапроса/Ext/ObjectModule.bsl
+++ b/src/cfe/DataProcessors/СЗ_ПроцессорСхемЗапроса/Ext/ObjectModule.bsl
@@ -6,56 +6,87 @@
#Область ПрограммныйИнтерфейс
+//
+//
Процедура УстановитьИсточникДанных(ИсточникДанных, Первые = -1, Различные = Ложь, Разрешенные = Ложь) Экспорт
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьИсточникДанных(СхемаЗапроса,
ИсточникДанных, Первые, Различные, Разрешенные);
КонецПроцедуры
+//
+//
+Функция Псевдоним(ИмяПсевдонима) Экспорт
+ СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
+ .УстановитьПсевдонимИсточника(СхемаЗапроса, ИмяПсевдонима);
+ Возврат ЭтотОбъект;
+КонецФункции
+
+//
+//
Функция ВТаблицуЗначений() Экспорт
ТаблицаЗначений = СЗ_ПроцессорыСхемЗапросаСлужебный
.ПолучитьРезультатЗапроса(СхемаЗапроса).Выгрузить();
Возврат ТаблицаЗначений;
КонецФункции
+//
+//
Функция ВМассив(ИмяКолонки) Экспорт
ТаблицаЗначений = СЗ_ПроцессорыСхемЗапросаСлужебный
.ПолучитьРезультатЗапроса(СхемаЗапроса).Выгрузить();
Возврат ТаблицаЗначений.ВыгрузитьКолонку(ИмяКолонки);
КонецФункции
+//
+//
Функция Первые(Количество) Экспорт
- // TODO:
+ СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
+ .УстановитьПервые(СхемаЗапроса, Количество);
Возврат ЭтотОбъект;
КонецФункции
+//
+//
Функция Различные() Экспорт
- // TODO:
+ СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
+ .УстановитьРазличные(СхемаЗапроса);
Возврат ЭтотОбъект;
КонецФункции
+//
+//
Функция Разрешенные() Экспорт
- // TODO:
+ СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
+ .УстановитьРазрешенные(СхемаЗапроса);
Возврат ЭтотОбъект;
КонецФункции
+//
+//
Функция Выбрать(Поля) Экспорт
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
.УстановитьПоляВыборки(СхемаЗапроса, Поля);
Возврат ЭтотОбъект;
КонецФункции
+//
+//
Функция ВыбратьВсе() Экспорт
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
.УстановитьВыборВсехПолей(СхемаЗапроса);
Возврат ЭтотОбъект;
КонецФункции
+//
+//
Функция Поместить(ИмяВременнойТаблицы) Экспорт
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
.УстановитьИмяВременнойТаблицы(СхемаЗапроса, ИмяВременнойТаблицы);
Возврат ЭтотОбъект;
КонецФункции
+//
+//
Функция Где(Предикат) Экспорт
Если ТипЗнч(Предикат) = Тип("Структура") Тогда
@@ -70,6 +101,8 @@
Возврат ЭтотОбъект;
КонецФункции
+//
+//
Функция ЛевоеСоединение(ИсточникДанных, Предикат = Неопределено) Экспорт
// TODO: ИсточникДанных может быть структурой? Что делать в этом случае?
@@ -90,32 +123,43 @@
КонецЕсли;
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.ДобавитьСоединение(
- СхемаЗапроса, "Левое", ИсточникДанных, _Предикат);
+ СхемаЗапроса, "Левое", _ИсточникДанных, _Предикат);
Возврат ЭтотОбъект;
КонецФункции
+//
+//
Функция Сгруппировать(Поля) Экспорт
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
.УстановитьГруппировку(СхемаЗапроса, Поля);
Возврат ЭтотОбъект;
КонецФункции
+//
+//
Функция Упорядочить(Поля) Экспорт
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
.УстановитьПорядок(СхемаЗапроса, Поля);
Возврат ЭтотОбъект;
КонецФункции
-Функция Итоги() Экспорт
- // TODO:
+//
+//
+Функция Итоги(Поля) Экспорт
+ СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
+ .УстановитьИтоги(СхемаЗапроса, Поля);
Возврат ЭтотОбъект;
КонецФункции
+//
+//
Функция Параметры(Параметры) Экспорт
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьПараметры(СхемаЗапроса, Параметры);
Возврат ЭтотОбъект;
КонецФункции
+//
+//
Функция Получить() Экспорт
Возврат СхемаЗапроса;