You've already forked fluent-request-schema-1c
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:
@@ -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)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РеальныеЗапросы
|
||||
|
||||
Процедура АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений() Экспорт
|
||||
|
@@ -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 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьЗапрос(СтруктураСхемыЗапроса)
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Возврат ПолучитьТекстЗапроса(СтруктураСхемыЗапроса, Запрос);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@@ -15,6 +15,12 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьПсевдонимИсточника(СхемаЗапроса, Псевдоним) Экспорт
|
||||
|
||||
СхемаЗапроса.Вставить("ПсевдонимИсточника", Псевдоним);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьПервые(СхемаЗапроса, Количество) Экспорт
|
||||
|
||||
СхемаЗапроса.Вставить("Первые", Количество);
|
||||
@@ -99,7 +105,7 @@
|
||||
|
||||
Иначе // Структура = вложенный запрос
|
||||
|
||||
// TODO:
|
||||
ВызватьИсключение "Не реализовано!";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -139,7 +145,7 @@
|
||||
|
||||
МассивПолей = Новый Массив;
|
||||
Если СхемаЗапроса.Свойство("Порядок") И ТипЗнч(СхемаЗапроса.Поля) = Тип("Массив") Тогда
|
||||
МассивПолей = СхемаЗапроса.Поля;
|
||||
МассивПолей = СхемаЗапроса.Порядок;
|
||||
КонецЕсли;
|
||||
Для каждого НовоеПоле Из НовыеПоля Цикл
|
||||
МассивПолей.Добавить(ПолучитьЭлементПорядка(НовоеПоле));
|
||||
@@ -149,6 +155,28 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьИтоги(СхемаЗапроса, Поля) Экспорт
|
||||
|
||||
Если ТипЗнч(Поля) = Тип("Строка") Тогда
|
||||
НовыеПоля = ПолучитьПоляИзСтроки(Поля);
|
||||
ИначеЕсли ТипЗнч(Поля) = Тип("Массив") Тогда
|
||||
НовыеПоля = Поля;
|
||||
Иначе
|
||||
ВызватьИсключение "УстановитьИтоги: неподдерживаемый тип данных в параметре ""Поля""";
|
||||
КонецЕсли;
|
||||
|
||||
МассивПолей = Новый Массив;
|
||||
Если СхемаЗапроса.Свойство("Итоги") И ТипЗнч(СхемаЗапроса.Поля) = Тип("Массив") Тогда
|
||||
МассивПолей = СхемаЗапроса.Итоги;
|
||||
КонецЕсли;
|
||||
Для каждого НовоеПоле Из НовыеПоля Цикл
|
||||
МассивПолей.Добавить(НовоеПоле);
|
||||
КонецЦикла;
|
||||
|
||||
СхемаЗапроса.Вставить("Итоги", МассивПолей);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьПараметры(СхемаЗапроса, Параметры) Экспорт
|
||||
|
||||
СхемаЗапроса.Вставить("Параметры", Параметры);
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<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.СЗ_ЗапросТест" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314" configVersion="01955255914f2f02da26b7a05ec1ffe713f168e1"/>
|
||||
<Metadata name="CommonModule.СЗ_ЗапросТест.Module" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314.0" configVersion="4bb2eb8264a01fa63289f72ff96e7d1d69ceecc8"/>
|
||||
<Metadata name="CommonModule.СЗ_ЗапросТест.Module" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314.0" configVersion="f5029ad2a148bd504f40bd79fde92ba57c17f10f"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыПредикатовКлиентСервер" id="407489b2-2f4b-467b-9594-621de146e468" configVersion="d0e776fe2161eadb117e389e6d86e40d8f7927fc"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыПредикатовКлиентСервер.Module" id="407489b2-2f4b-467b-9594-621de146e468.0" configVersion="fb94599ea596770fca7e3dd00307a498b92e68e6"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер" id="19b0625e-9f74-4fba-9350-914066ae1034" configVersion="97824f99f8fe96dacf2d8271e35b6b11a89a7f4f"/>
|
||||
@@ -12,23 +12,23 @@
|
||||
<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.СЗ_ПроцессорыСхемЗапросаСлужебный" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c" configVersion="77f2ed6a2d9924e64f836b9a16c0664b4a5a38e8"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебный.Module" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c.0" configVersion="b06bf7b83c331bf94b05cf9ddca10eaae2b88caa"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебный.Module" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c.0" configVersion="849b2ce9024133933142e0b4b2daa77b6009ab6e"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера" id="64cc4f13-8ea3-43e0-b530-031a569bfcd0" configVersion="de76e252360ff40f9368c1eec2d95d3aa03b14e7"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера.Module" id="64cc4f13-8ea3-43e0-b530-031a569bfcd0.0" configVersion="d4f200f2ea8b67ded00e960c104825a34bc28fb9"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc" configVersion="8a27beba3300dacb51abfc0f6b4c8711bb7b0b06"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.Module" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc.0" configVersion="04a2a8b8e2104202ded1702d1b4c5c677c0aded1"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.Module" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc.0" configVersion="68eed8852766199b3cb4b6b05c10ca2ad2c8afdd"/>
|
||||
<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="86103f9c55eaeaecaa0bba3938f24a8f2bcae22e"/>
|
||||
<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.Форма.Form" id="1f613bcb-34f1-4755-8c5b-734e99a89a03.0" configVersion="c68a1059bef88189935e4b8f7f2920126d22b4e4"/>
|
||||
<Metadata name="DataProcessor.СЗ_КонсольФункциональныхЗапросов.Form.Форма.Form" id="1f613bcb-34f1-4755-8c5b-734e99a89a03.0" configVersion="ed93a31df2cc47c65da51be82b3b052f1f6b94e2"/>
|
||||
<Metadata name="DataProcessor.СЗ_ПроцессорПредикатов" id="12d6eb41-70d9-4802-8fde-b6464e23bf0b" configVersion="7bd25841e01d3196cd731359775f0af93ddbd0d1"/>
|
||||
<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.СЗ_ПроцессорСхемЗапроса.Form.Форма" id="04cd8a25-c99d-4da9-ac0f-5703574d079f" configVersion="f910d6e757792c7cdd2137a7213495bba1da1300"/>
|
||||
<Metadata name="DataProcessor.СЗ_ПроцессорСхемЗапроса.Form.Форма.Form" id="04cd8a25-c99d-4da9-ac0f-5703574d079f.0" configVersion="d88eaff63e6be43cc7189ed79c45ec45ccb8b4fe"/>
|
||||
<Metadata name="DataProcessor.СЗ_ПроцессорСхемЗапроса.ObjectModule" id="7008c53a-3e8a-4432-bff6-500c4145bab5.0" configVersion="ed88bf3b3c4913de67c94a07f43f4d9e14a77255"/>
|
||||
<Metadata name="DataProcessor.СЗ_ПроцессорСхемЗапроса.ObjectModule" id="7008c53a-3e8a-4432-bff6-500c4145bab5.0" configVersion="d16220520ab962c474afa1a8a90054cd0577c32f"/>
|
||||
<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="a09dece7-9d83-44cb-8463-270875de13d2" configVersion="9c0d5ea3be648246d696789b6fbcc298d59ca152"/>
|
||||
|
@@ -96,6 +96,11 @@
|
||||
Если Не ПустаяСтрока(СтрокаПорядка) Тогда
|
||||
МассивСтрокЗапроса.Добавить(СтрШаблон(Символы.Таб + ".Упорядочить(""%1"")", СтрокаПорядка));
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаИтогов = ПолучитьИтоги(ПакетЗапроса);
|
||||
Если Не ПустаяСтрока(СтрокаИтогов) Тогда
|
||||
МассивСтрокЗапроса.Добавить(СтрШаблон(Символы.Таб + ".Итоги(""%1"")", СтрокаИтогов));
|
||||
КонецЕсли;
|
||||
|
||||
МассивСтрокЗапроса.Добавить(Символы.Таб + ".ВТаблицуЗначений()");
|
||||
МассивСтрокЗапроса.Добавить(";");
|
||||
@@ -196,4 +201,19 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьИтоги(ПакетЗапроса)
|
||||
|
||||
СтрокаИтогов = "";
|
||||
Для каждого ЭлементИтогов Из ПакетЗапроса.КонтрольныеТочкиИтогов Цикл
|
||||
Если Не ПустаяСтрока(СтрокаИтогов) Тогда
|
||||
СтрокаИтогов = СтрокаИтогов + ", ";
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаИтогов = СтрокаИтогов + ЭлементИтогов.ИмяКолонки;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат СтрокаИтогов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@@ -6,56 +6,87 @@
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
//
|
||||
//
|
||||
Процедура УстановитьИсточникДанных(ИсточникДанных, Первые = -1, Различные = Ложь, Разрешенные = Ложь) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьИсточникДанных(СхемаЗапроса,
|
||||
ИсточникДанных, Первые, Различные, Разрешенные);
|
||||
КонецПроцедуры
|
||||
|
||||
//
|
||||
//
|
||||
Функция Псевдоним(ИмяПсевдонима) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьПсевдонимИсточника(СхемаЗапроса, ИмяПсевдонима);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция ВТаблицуЗначений() Экспорт
|
||||
ТаблицаЗначений = СЗ_ПроцессорыСхемЗапросаСлужебный
|
||||
.ПолучитьРезультатЗапроса(СхемаЗапроса).Выгрузить();
|
||||
Возврат ТаблицаЗначений;
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция ВМассив(ИмяКолонки) Экспорт
|
||||
ТаблицаЗначений = СЗ_ПроцессорыСхемЗапросаСлужебный
|
||||
.ПолучитьРезультатЗапроса(СхемаЗапроса).Выгрузить();
|
||||
Возврат ТаблицаЗначений.ВыгрузитьКолонку(ИмяКолонки);
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция Первые(Количество) Экспорт
|
||||
// TODO:
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьПервые(СхемаЗапроса, Количество);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция Различные() Экспорт
|
||||
// TODO:
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьРазличные(СхемаЗапроса);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция Разрешенные() Экспорт
|
||||
// TODO:
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьРазрешенные(СхемаЗапроса);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция Выбрать(Поля) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьПоляВыборки(СхемаЗапроса, Поля);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция ВыбратьВсе() Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьВыборВсехПолей(СхемаЗапроса);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция Поместить(ИмяВременнойТаблицы) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьИмяВременнойТаблицы(СхемаЗапроса, ИмяВременнойТаблицы);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция Где(Предикат) Экспорт
|
||||
|
||||
Если ТипЗнч(Предикат) = Тип("Структура") Тогда
|
||||
@@ -70,6 +101,8 @@
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция ЛевоеСоединение(ИсточникДанных, Предикат = Неопределено) Экспорт
|
||||
|
||||
// TODO: ИсточникДанных может быть структурой? Что делать в этом случае?
|
||||
@@ -90,32 +123,43 @@
|
||||
КонецЕсли;
|
||||
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.ДобавитьСоединение(
|
||||
СхемаЗапроса, "Левое", ИсточникДанных, _Предикат);
|
||||
СхемаЗапроса, "Левое", _ИсточникДанных, _Предикат);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция Сгруппировать(Поля) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьГруппировку(СхемаЗапроса, Поля);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция Упорядочить(Поля) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьПорядок(СхемаЗапроса, Поля);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция Итоги() Экспорт
|
||||
// TODO:
|
||||
//
|
||||
//
|
||||
Функция Итоги(Поля) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьИтоги(СхемаЗапроса, Поля);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция Параметры(Параметры) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьПараметры(СхемаЗапроса, Параметры);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция Получить() Экспорт
|
||||
|
||||
Возврат СхемаЗапроса;
|
||||
|
Reference in New Issue
Block a user