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
extension 0.0.1
This commit is contained in:
23
src/cfe/CommonModules/СЗ_Запрос.xml
Normal file
23
src/cfe/CommonModules/СЗ_Запрос.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.18">
|
||||
<CommonModule uuid="5f1605a0-4e63-4339-b2cc-44e115be6ed7">
|
||||
<Properties>
|
||||
<Name>СЗ_Запрос</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Схема запроса: запрос</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>true</ClientManagedApplication>
|
||||
<Server>true</Server>
|
||||
<ExternalConnection>false</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>false</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
27
src/cfe/CommonModules/СЗ_Запрос/Ext/Module.bsl
Normal file
27
src/cfe/CommonModules/СЗ_Запрос/Ext/Module.bsl
Normal file
@@ -0,0 +1,27 @@
|
||||
|
||||
Функция НовыйЗапрос(ИсточникДанных, Первые = 0, Различные = Ложь, Разрешенные = Ложь) Экспорт
|
||||
|
||||
ПроцессорСхемЗапроса = СЗ_ПроцессорыСхемЗапросаКлиентСервер
|
||||
.НовыйПроцессорСхемЗапроса(ИсточникДанных, Первые, Различные, Разрешенные);
|
||||
|
||||
Возврат ПроцессорСхемЗапроса;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Предикат() Экспорт
|
||||
|
||||
ПроцессорПредикатов = СЗ_ПроцессорыПредикатовКлиентСервер
|
||||
.НовыйПроцессорПредикатов();
|
||||
|
||||
Возврат ПроцессорПредикатов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// TODO: В модуле СЗ_ПроцессорыСхемЗапросаКлиентСерверСлужебный так же регулярно требуетс
|
||||
// такая структура. Рефакторинг!
|
||||
Функция НовоеПоле(ИмяПоля, Источник, Псевдоним) Экспорт
|
||||
|
||||
Возврат Новый Структура("ИмяПоля, Источник, Псевдоним",
|
||||
ИмяПоля, Источник, Псевдоним);
|
||||
|
||||
КонецФункции
|
23
src/cfe/CommonModules/СЗ_ЗапросТест.xml
Normal file
23
src/cfe/CommonModules/СЗ_ЗапросТест.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.18">
|
||||
<CommonModule uuid="52ab0c6f-4fa1-4913-b37e-460ab1e44314">
|
||||
<Properties>
|
||||
<Name>СЗ_ЗапросТест</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Схема запроса: запрос тест</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>false</ClientManagedApplication>
|
||||
<Server>true</Server>
|
||||
<ExternalConnection>false</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>false</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
566
src/cfe/CommonModules/СЗ_ЗапросТест/Ext/Module.bsl
Normal file
566
src/cfe/CommonModules/СЗ_ЗапросТест/Ext/Module.bsl
Normal file
@@ -0,0 +1,566 @@
|
||||
#Область ОбъявлениеТестов
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты
|
||||
.ДобавитьТест("ИсключениеИсточникОтсутствует")
|
||||
.ДобавитьТест("ИсключениеИсточникПустаяСтрока")
|
||||
.ДобавитьТест("ЗапросВТаблицуЗначений")
|
||||
.ДобавитьТест("ЗапросВМассив")
|
||||
.ДобавитьТест("Первые")
|
||||
.ДобавитьТест("Различные")
|
||||
.ДобавитьТест("Разрешенные")
|
||||
.ДобавитьТест("ИсключениеПолеОтсутствует")
|
||||
.ДобавитьТест("ДобавитьПоляССинонимами")
|
||||
.ДобавитьТест("ДобавитьНесколькоПолей")
|
||||
.ДобавитьТест("ДобавитьНесколькоПолейСПереносомСтроки")
|
||||
.ДобавитьТест("ДобавитьПоляССинонимамиИСписком")
|
||||
.ДобавитьТест("ВсеПоляДляНеСсылочногоТипа")
|
||||
.ДобавитьТест("ВсеПоляДляСсылочногоТипа")
|
||||
.ДобавитьТест("ЗапросСУсловием")
|
||||
.ДобавитьТест("ЛевоеСоединениеПоИсточникуСтроке")
|
||||
.ДобавитьТест("ЛевоеСоединениеПоИсточникуЗапросу")
|
||||
.ДобавитьТест("ЛевоеСоединениеБезПредиката")
|
||||
.ДобавитьТест("ЛевоеСоединениеНесколькоУсловийВПредикате")
|
||||
.ДобавитьТест("ЛевоеСоединениеПредикатЭтоПараметр")
|
||||
.ДобавитьТест("ЛевоеСоединениеБезПсевдонимовВСоединении")
|
||||
.ДобавитьТест("НесколькоЛевыхСоединений")
|
||||
.ДобавитьТест("ВложенныйЗапрос")
|
||||
.ДобавитьТест("Порядок")
|
||||
.ДобавитьТест("Итоги")
|
||||
.ДобавитьТест("АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Тесты
|
||||
|
||||
#Область Базовые
|
||||
|
||||
Процедура ИсключениеИсточникОтсутствует() Экспорт
|
||||
|
||||
Предикат = СЗ_Запрос.Предикат()
|
||||
.Реквизит("ЭтоГруппа").Равно(Ложь)
|
||||
.Получить()
|
||||
;
|
||||
|
||||
Обработка = Обработки.СЗ_ПроцессорСхемЗапроса.Создать();
|
||||
|
||||
ЮТест.ОжидаетЧто(Обработка)
|
||||
.Метод("ВТаблицуЗначений")
|
||||
.ВыбрасываетИсключение("Источник данных запроса не определен");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ИсключениеИсточникПустаяСтрока() Экспорт
|
||||
|
||||
Предикат = СЗ_Запрос.Предикат()
|
||||
.Реквизит("ЭтоГруппа").Равно(Ложь)
|
||||
.Получить()
|
||||
;
|
||||
|
||||
Запрос = СЗ_Запрос.НовыйЗапрос("")
|
||||
.Где(Предикат)
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(Запрос)
|
||||
.Метод("ВТаблицуЗначений")
|
||||
.ВыбрасываетИсключение("Источник данных запроса не определен");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗапросВТаблицуЗначений() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗапросВМассив() Экспорт
|
||||
|
||||
Массив = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.ВМассив("Ссылка")
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(Массив)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(Массив.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Первые() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура", 10)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Равно(10)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Различные() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура",, Истина)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Разрешенные() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура",,, Истина)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Поля
|
||||
|
||||
// TODO: Поля могут быть выражениями
|
||||
|
||||
Процедура ИсключениеПолеОтсутствует() Экспорт
|
||||
|
||||
НеправильноеНаименованиеПоля = "йцукен";
|
||||
|
||||
Запрос = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать(НеправильноеНаименованиеПоля)
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(Запрос)
|
||||
.Метод("ВТаблицуЗначений")
|
||||
.ВыбрасываетИсключение(
|
||||
СтрШаблон("Поле %1 в источнике не определено", НеправильноеНаименованиеПоля));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьПоляССинонимами() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать(СЗ_Запрос.НовоеПоле("Ссылка",, "СсылкаНоменклатуры"))
|
||||
.Выбрать(СЗ_Запрос.НовоеПоле("Наименование",, "НаименованиеНоменклатуры"))
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("СсылкаНоменклатуры")
|
||||
.ИмеетСвойство("НаименованиеНоменклатуры")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьНесколькоПолей() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Ссылка, Наименование, ЭтоГруппа")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("Наименование")
|
||||
.ИмеетСвойство("ЭтоГруппа")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьНесколькоПолейСПереносомСтроки() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Ссылка, Наименование,
|
||||
|ЭтоГруппа")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("Наименование")
|
||||
.ИмеетСвойство("ЭтоГруппа")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьПоляССинонимамиИСписком() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать(СЗ_Запрос.НовоеПоле("Ссылка",, "СсылкаНоменклатуры"))
|
||||
.Выбрать("Наименование КАК НаименованиеНоменклатуры, ЭтоГруппа")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("СсылкаНоменклатуры")
|
||||
.ИмеетСвойство("НаименованиеНоменклатуры")
|
||||
.ИмеетСвойство("ЭтоГруппа")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВсеПоляДляНеСсылочногоТипа() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("РегистрСведений.КурсыВалют")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Валюта")
|
||||
.ИмеетСвойство("Курс")
|
||||
.ИмеетСвойство("Кратность")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВсеПоляДляСсылочногоТипа() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.ВыбратьВсе()
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("Наименование")
|
||||
.ИмеетСвойство("ЭтоГруппа")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Условия
|
||||
|
||||
Процедура ЗапросСУсловием() Экспорт
|
||||
|
||||
Предикат = СЗ_Запрос.Предикат()
|
||||
.Реквизит("ЭтоГруппа").Равно(Ложь)
|
||||
;
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Где(Предикат)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Соединения
|
||||
|
||||
Процедура ЛевоеСоединениеПоИсточникуСтроке() Экспорт
|
||||
|
||||
ПредикатДляСоединения = СЗ_Запрос.Предикат()
|
||||
.Реквизит("НоменклатураСоединение.Ссылка").Равно("Номенклатура.Родитель")
|
||||
;
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Номенклатура.Ссылка,
|
||||
|НоменклатураСоединение.Ссылка КАК НоменклатураСоединениеСсылка")
|
||||
.ЛевоеСоединение("Справочник.Номенклатура КАК НоменклатураСоединение", ПредикатДляСоединения)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("НоменклатураСоединениеСсылка")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЛевоеСоединениеПоИсточникуЗапросу() Экспорт
|
||||
|
||||
ЗапросДляСоединения = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура");
|
||||
ПредикатДляСоединения = СЗ_Запрос.Предикат()
|
||||
.Реквизит("Ссылка").Равно("Родитель")
|
||||
;
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Номенклатура.Ссылка,
|
||||
|НоменклатураСоединение.Ссылка КАК НоменклатураСоединениеСсылка")
|
||||
.ЛевоеСоединение(ЗапросДляСоединения, ПредикатДляСоединения)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("НоменклатураСоединениеСсылка")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЛевоеСоединениеБезПредиката() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("РегистрСведений.ПримененияЕНВД")
|
||||
.Выбрать("ПримененияЕНВД.Организация КАК Организация,
|
||||
|ПримененияЕНВДСоединение.Склад КАК Склад")
|
||||
.ЛевоеСоединение("РегистрСведений.ПримененияЕНВД КАК ПримененияЕНВДСоединение")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Организация")
|
||||
.ИмеетСвойство("Склад")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЛевоеСоединениеНесколькоУсловийВПредикате() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Номенклатура.Ссылка,
|
||||
|НоменклатураСоединение.Ссылка КАК НоменклатураСоединениеСсылка")
|
||||
.ЛевоеСоединение("Справочник.Номенклатура КАК НоменклатураСоединение", СЗ_Запрос.Предикат()
|
||||
.Реквизит("НоменклатураСоединение.Ссылка").Равно("Номенклатура.Родитель")
|
||||
.Реквизит("НоменклатураСоединение.ЭтоГруппа").Равно("ИСТИНА"))
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("НоменклатураСоединениеСсылка")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЛевоеСоединениеПредикатЭтоПараметр() Экспорт
|
||||
|
||||
// Подготовка
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
|
||||
| Номенклатура.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| Справочник.Номенклатура КАК Номенклатура
|
||||
|ГДЕ
|
||||
| Номенклатура.ЭтоГруппа";
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Выборка.Следующий();
|
||||
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"Родитель", Выборка.Ссылка));
|
||||
|
||||
// Выполнение
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Номенклатура.Ссылка,
|
||||
|НоменклатураСоединение.Ссылка КАК НоменклатураСоединениеСсылка")
|
||||
.ЛевоеСоединение("Справочник.Номенклатура КАК НоменклатураСоединение", СЗ_Запрос.Предикат()
|
||||
.Реквизит("НоменклатураСоединение.Родитель").Равно("&Родитель"))
|
||||
.Параметры(МассивПараметров)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
// Проверки
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("НоменклатураСоединениеСсылка")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЛевоеСоединениеБезПсевдонимовВСоединении() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Номенклатура.Ссылка, Номенклатура1.Ссылка")
|
||||
.ЛевоеСоединение("Справочник.Номенклатура", СЗ_Запрос.Предикат()
|
||||
.Реквизит("Ссылка").Равно("Родитель")
|
||||
.Реквизит("ЭтоГруппа").Равно("ИСТИНА"))
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("Ссылка1")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура НесколькоЛевыхСоединений() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Номенклатура.Ссылка, Номенклатура1.Ссылка, Номенклатура2.Ссылка")
|
||||
.ЛевоеСоединение("Справочник.Номенклатура", СЗ_Запрос.Предикат()
|
||||
.Реквизит("Ссылка").Равно("Родитель")
|
||||
.Реквизит("ЭтоГруппа").Равно("ИСТИНА"))
|
||||
.ЛевоеСоединение("Справочник.Номенклатура", СЗ_Запрос.Предикат()
|
||||
.Реквизит("Ссылка").Равно("Родитель")
|
||||
.Реквизит("ЭтоГруппа").Равно("ИСТИНА"))
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("Ссылка1")
|
||||
.ИмеетСвойство("Ссылка2")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
Процедура ВложенныйЗапрос() Экспорт
|
||||
|
||||
ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура");
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Порядок() Экспорт
|
||||
|
||||
// Выполнение
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Упорядочить("ЭтоГруппа, Наименование")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
// Проверки
|
||||
// TODO:
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Итоги() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
// TODO:
|
||||
.Итоги()
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область РеальныеЗапросы
|
||||
|
||||
Процедура АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений() Экспорт
|
||||
|
||||
// Подготовка
|
||||
НаименованияАдресныхОбъектов = Новый Массив;
|
||||
НаименованияАдресныхОбъектов.Добавить("Абонентский Ящик");
|
||||
|
||||
// Выполнение
|
||||
Запрос = СЗ_Запрос.НовыйЗапрос("РегистрСведений.УровниСокращенийАдресныхСведений")
|
||||
.Выбрать("Значение КАК Наименование, Сокращение")
|
||||
.Сгруппировать("Значение, Сокращение")
|
||||
.Упорядочить("Наименование");
|
||||
|
||||
Если ТипЗнч(НаименованияАдресныхОбъектов) = Тип("Массив") И НаименованияАдресныхОбъектов.Количество() > 0 Тогда
|
||||
Запрос = Запрос
|
||||
.Где(СЗ_Запрос.Предикат()
|
||||
.Реквизит("Значение").В(НаименованияАдресныхОбъектов));
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Запрос.ВТаблицуЗначений();
|
||||
|
||||
// Проверки
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
;
|
||||
// TODO:
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.18">
|
||||
<CommonModule uuid="407489b2-2f4b-467b-9594-621de146e468">
|
||||
<Properties>
|
||||
<Name>СЗ_ПроцессорыПредикатовКлиентСервер</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Схема запроса: процессоры предикатов клиент сервер</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>true</ClientManagedApplication>
|
||||
<Server>true</Server>
|
||||
<ExternalConnection>false</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>false</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
@@ -0,0 +1,27 @@
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Функция НовыйПроцессорПредикатов() Экспорт
|
||||
|
||||
#Если Клиент Тогда
|
||||
ПроцессорПредикатов = ПолучитьФорму("Обработка.СЗ_ПроцессорПредикатов.Форма.Форма");
|
||||
#Иначе
|
||||
ПроцессорПредикатов = Обработки.СЗ_ПроцессорПредикатов.Создать();
|
||||
#КонецЕсли
|
||||
|
||||
Возврат ПроцессорПредикатов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Выражения() Экспорт
|
||||
|
||||
Выражения = Новый Структура;
|
||||
Выражения.Вставить("Равно", "Равно");
|
||||
Выражения.Вставить("Больше", "Больше");
|
||||
Выражения.Вставить("Меньше", "Меньше");
|
||||
Выражения.Вставить("В", "В");
|
||||
|
||||
Возврат Новый ФиксированнаяСтруктура(Выражения);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.18">
|
||||
<CommonModule uuid="19b0625e-9f74-4fba-9350-914066ae1034">
|
||||
<Properties>
|
||||
<Name>СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Схема запроса: процессоры предикатов служебный клиент сервер</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>true</ClientManagedApplication>
|
||||
<Server>true</Server>
|
||||
<ExternalConnection>false</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>false</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
@@ -0,0 +1,27 @@
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Процедура УстановитьИмяРеквизита(Предикат, ИмяРеквизита) Экспорт
|
||||
|
||||
Если Предикат = Неопределено Тогда
|
||||
Предикат = Новый Структура("ИмяРеквизита, Условия",
|
||||
"", Новый Массив);
|
||||
КонецЕсли;
|
||||
|
||||
Предикат.ИмяРеквизита = ИмяРеквизита;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьПредикат(Предикат, ВидСравнения, Значение) Экспорт
|
||||
|
||||
Если Предикат = Неопределено Или ПустаяСтрока(Предикат.ИмяРеквизита) Тогда
|
||||
ВызватьИсключение "Ошибочный порядок вызова функций формирования предиката";
|
||||
КонецЕсли;
|
||||
|
||||
Условие = Новый Структура("ИмяРеквизита, ВидСравнения, Значение",
|
||||
Предикат.ИмяРеквизита, ВидСравнения, Значение);
|
||||
|
||||
Предикат.Условия.Добавить(Условие);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.18">
|
||||
<CommonModule uuid="a3e5bf50-2154-477f-9355-29b0930a73c5">
|
||||
<Properties>
|
||||
<Name>СЗ_ПроцессорыСхемЗапросаКлиентСервер</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Схема запроса: процессоры схем запроса</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>true</ClientManagedApplication>
|
||||
<Server>true</Server>
|
||||
<ExternalConnection>false</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>false</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
@@ -0,0 +1,17 @@
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Функция НовыйПроцессорСхемЗапроса(ИсточникДанных, Первые = 0, Различные = Ложь, Разрешенные = Ложь) Экспорт
|
||||
|
||||
#Если Клиент Тогда
|
||||
ПроцессорСхемЗапроса = ПолучитьФорму("Обработка.СЗ_ПроцессорСхемЗапроса.Форма.Форма");
|
||||
#Иначе
|
||||
ПроцессорСхемЗапроса = Обработки.СЗ_ПроцессорСхемЗапроса.Создать();
|
||||
#КонецЕсли
|
||||
|
||||
ПроцессорСхемЗапроса.УстановитьИсточникДанных(ИсточникДанных, Первые, Различные, Разрешенные);
|
||||
|
||||
Возврат ПроцессорСхемЗапроса;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
23
src/cfe/CommonModules/СЗ_ПроцессорыСхемЗапросаСлужебный.xml
Normal file
23
src/cfe/CommonModules/СЗ_ПроцессорыСхемЗапросаСлужебный.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.18">
|
||||
<CommonModule uuid="fd5aeea0-9a03-452d-ba1e-81c816846c6c">
|
||||
<Properties>
|
||||
<Name>СЗ_ПроцессорыСхемЗапросаСлужебный</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Схема запроса: процессоры схем запроса служебный</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>false</ClientManagedApplication>
|
||||
<Server>true</Server>
|
||||
<ExternalConnection>false</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>false</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
@@ -0,0 +1,237 @@
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Функция ПолучитьРезультатЗапроса(СтруктураСхемыЗапроса) Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = ПолучитьТекстЗапроса(СтруктураСхемыЗапроса, Запрос);
|
||||
ДобавитьПараметрыЗапроса(СтруктураСхемыЗапроса, Запрос);
|
||||
|
||||
Возврат Запрос.Выполнить();
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьТекстЗапроса(СтруктураСхемыЗапроса, Запрос) Экспорт
|
||||
|
||||
Если Не ТипЗнч(СтруктураСхемыЗапроса) = Тип("Структура") Или
|
||||
Не СтруктураСхемыЗапроса.Свойство("ИсточникДанных") Или
|
||||
ПустаяСтрока(СтруктураСхемыЗапроса.ИсточникДанных) Тогда
|
||||
|
||||
ВызватьИсключение "Источник данных запроса не определен";
|
||||
КонецЕсли;
|
||||
|
||||
СхемаЗапроса = Новый СхемаЗапроса;
|
||||
|
||||
ЗапросПакета = ДобавитьПолучитьПакет(СхемаЗапроса, СтруктураСхемыЗапроса);
|
||||
Оператор = ДобавитьПолучитьОператор(ЗапросПакета, СтруктураСхемыЗапроса);
|
||||
|
||||
// Соединения добавляются раньше всех чтобы к моменту добавления полей у нас
|
||||
// уже были все возможные источники данных
|
||||
ДобавитьСоединения(Оператор, СтруктураСхемыЗапроса);
|
||||
ДобавитьПоля(ЗапросПакета, Оператор, СтруктураСхемыЗапроса);
|
||||
ДобавитьУсловия(Оператор, Запрос, СтруктураСхемыЗапроса);
|
||||
ДобавитьГруппировку(Оператор, СтруктураСхемыЗапроса);
|
||||
ДобавитьПорядок(ЗапросПакета, СтруктураСхемыЗапроса);
|
||||
|
||||
ТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса();
|
||||
Возврат ТекстЗапроса;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ДобавитьПолучитьПакет(СхемаЗапроса, СтруктураСхемыЗапроса)
|
||||
|
||||
ПакетЗапросов = СхемаЗапроса.ПакетЗапросов;
|
||||
Если ПакетЗапросов.Количество() = 1 И СхемаЗапроса.ПолучитьТекстЗапроса() = "" Тогда
|
||||
ЗапросПакета = ПакетЗапросов[0];
|
||||
Иначе
|
||||
ЗапросПакета = СхемаЗапроса.ПакетЗапросов.Добавить(Тип("ЗапросВыбораСхемыЗапроса"));
|
||||
КонецЕсли;
|
||||
|
||||
Если СтруктураСхемыЗапроса.Свойство("Разрешенные") И СтруктураСхемыЗапроса.Разрешенные Тогда
|
||||
ЗапросПакета.ВыбиратьРазрешенные = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЗапросПакета;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДобавитьПолучитьОператор(ЗапросПакета, СтруктураСхемыЗапроса)
|
||||
|
||||
Если ЗапросПакета.Операторы.Количество() = 1 Тогда
|
||||
Оператор = ЗапросПакета.Операторы[0];
|
||||
Если НЕ Оператор.Источники.Количество() = 0 ИЛИ НЕ Оператор.ВыбираемыеПоля.Количество() = 0 Тогда
|
||||
Оператор = Неопределено;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Если Оператор = Неопределено Тогда
|
||||
Оператор = ЗапросПакета.Операторы.Добавить();
|
||||
КонецЕсли;
|
||||
|
||||
Если СтруктураСхемыЗапроса.Свойство("Первые") И СтруктураСхемыЗапроса.Первые > 0 Тогда
|
||||
Оператор.КоличествоПолучаемыхЗаписей = СтруктураСхемыЗапроса.Первые;
|
||||
КонецЕсли;
|
||||
Если СтруктураСхемыЗапроса.Свойство("Различные") И СтруктураСхемыЗапроса.Различные Тогда
|
||||
Оператор.ВыбиратьРазличные = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Оператор.Источники.Добавить(СтруктураСхемыЗапроса.ИсточникДанных);
|
||||
|
||||
Возврат Оператор;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДобавитьПоля(ЗапросПакета, Оператор, СтруктураСхемыЗапроса)
|
||||
|
||||
Если СтруктураСхемыЗапроса.Свойство("Поля") И
|
||||
ТипЗнч(СтруктураСхемыЗапроса.Поля) = Тип("Массив") И
|
||||
СтруктураСхемыЗапроса.Поля.Количество() > 0 Тогда
|
||||
|
||||
Для каждого Поле Из СтруктураСхемыЗапроса.Поля Цикл
|
||||
Если Не Поле.Источник = Неопределено Тогда
|
||||
ИсточникПоля = Оператор.Источники.НайтиПоПсевдониму(Поле.Источник);
|
||||
Иначе
|
||||
ИсточникПоля = Оператор.Источники[0];
|
||||
КонецЕсли;
|
||||
|
||||
ДоступноеПоле = ИсточникПоля.Источник.ДоступныеПоля.Найти(Поле.ИмяПоля);
|
||||
Если Не ДоступноеПоле = Неопределено Тогда
|
||||
НовоеПоле = Оператор.ВыбираемыеПоля.Добавить(ДоступноеПоле);
|
||||
Если Не Поле.Псевдоним = Неопределено Тогда
|
||||
ЗапросПакета.Колонки[ЗапросПакета.Колонки.Количество() - 1].Псевдоним = Поле.Псевдоним;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ВызватьИсключение СтрШаблон("Поле %1 в источнике не определено", Поле.ИмяПоля);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
ЕстьСсылка = Ложь;
|
||||
Для каждого Источник Из Оператор.Источники Цикл
|
||||
Если Не Источник.Источник.ДоступныеПоля.Найти("Ссылка") = Неопределено Тогда
|
||||
ЕстьСсылка = Истина;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Если Не ЕстьСсылка Или (СтруктураСхемыЗапроса.Свойство("ВсеПоля") И СтруктураСхемыЗапроса.ВсеПоля) Тогда
|
||||
Для каждого Источник Из Оператор.Источники Цикл
|
||||
Для каждого Поле Из Источник.Источник.ДоступныеПоля Цикл
|
||||
Оператор.ВыбираемыеПоля.Добавить(Поле);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
Оператор.ВыбираемыеПоля.Добавить(Оператор.Источники[0].Источник.ДоступныеПоля.Найти("Ссылка"));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьУсловия(Оператор, Запрос, СтруктураСхемыЗапроса)
|
||||
|
||||
Если СтруктураСхемыЗапроса.Свойство("Условия") И ТипЗнч(СтруктураСхемыЗапроса.Условия) = Тип("Массив") Тогда
|
||||
Для каждого Условие Из СтруктураСхемыЗапроса.Условия Цикл
|
||||
Оператор.Отбор.Добавить(Условие.УсловиеСтрокой);
|
||||
Запрос.УстановитьПараметр(Условие.ИмяПараметра, Условие.Значение);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьСоединения(Оператор, СтруктураСхемыЗапроса)
|
||||
|
||||
Если СтруктураСхемыЗапроса.Свойство("Соединения") И ТипЗнч(СтруктураСхемыЗапроса.Соединения) = Тип("Массив") Тогда
|
||||
Для каждого СтруктураСоединения Из СтруктураСхемыЗапроса.Соединения Цикл
|
||||
ИсточникСоединения = Оператор.Источники.Добавить(СтруктураСоединения.ИсточникДанных,
|
||||
СтруктураСоединения.Псевдоним);
|
||||
Если Оператор.Источники[0].Соединения.Количество() = 0 Тогда
|
||||
Оператор.Источники[0].Соединения.Добавить(ИсточникСоединения);
|
||||
КонецЕсли;
|
||||
|
||||
Условия = ПроверитьНаНеоднозначностьПолей(СтруктураСоединения.Условие,
|
||||
Оператор.Источники[0].Источник, ИсточникСоединения.Источник);
|
||||
|
||||
Соединение = Оператор.Источники[0].Соединения[Оператор.Источники[0].Соединения.Количество() - 1];
|
||||
Соединение.Условие = Новый ВыражениеСхемыЗапроса(СтрСоединить(Условия, " И "));
|
||||
// TODO: Строки заменить на функцию?
|
||||
Если СтруктураСоединения.ТипСоединения = "Левое" Тогда
|
||||
Соединение.ТипСоединения = ТипСоединенияСхемыЗапроса.ЛевоеВнешнее;
|
||||
ИначеЕсли СтруктураСоединения.ТипСоединения = "Правое" Тогда
|
||||
Соединение.ТипСоединения = ТипСоединенияСхемыЗапроса.ПравоеВнешнее;
|
||||
ИначеЕсли СтруктураСоединения.ТипСоединения = "Внутреннее" Тогда
|
||||
Соединение.ТипСоединения = ТипСоединенияСхемыЗапроса.Внутреннее;
|
||||
ИначеЕсли СтруктураСоединения.ТипСоединения = "Полное" Тогда
|
||||
Соединение.ТипСоединения = ТипСоединенияСхемыЗапроса.ПолноеВнешнее;
|
||||
Иначе
|
||||
ВызватьИсключение СтрШаблон("ДобавитьСоединения: неподдерживаемый тип соединения %1",
|
||||
СтруктураСоединения.ТипСоединения);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьГруппировку(Оператор, СтруктураСхемыЗапроса)
|
||||
|
||||
Если СтруктураСхемыЗапроса.Свойство("Группировка") И ТипЗнч(СтруктураСхемыЗапроса.Группировка) = Тип("Массив") Тогда
|
||||
Для каждого Группировка Из СтруктураСхемыЗапроса.Группировка Цикл
|
||||
Оператор.Группировка.Добавить(Группировка);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьПорядок(ЗапросПакета, СтруктураСхемыЗапроса)
|
||||
|
||||
Если СтруктураСхемыЗапроса.Свойство("Порядок") И ТипЗнч(СтруктураСхемыЗапроса.Порядок) = Тип("Массив") Тогда
|
||||
Для каждого ЭлементПорядка Из СтруктураСхемыЗапроса.Порядок Цикл
|
||||
ЗапросПакета.Порядок.Добавить(ЭлементПорядка);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПроверитьНаНеоднозначностьПолей(МассивУсловий, ТаблицаОсновная, ТаблицаСоединения)
|
||||
|
||||
// TODO: Пока не учитывается ситуация типа: "Ссылка = Ссылка"
|
||||
// Похоже вообще не имеет смысла преобразовывать условие в строку на предыдущем этапе.
|
||||
// Преобразовывать надо здесь с учетом неоднозначности полей. Рефакторинг!
|
||||
НовыйМассивУсловий = Новый Массив;
|
||||
|
||||
Для каждого Условие Из МассивУсловий Цикл
|
||||
УсловиеСтрокой = Условие.УсловиеСтрокой;
|
||||
|
||||
Если Не Условие.ЛеваяЧасть = Неопределено И
|
||||
Не ТаблицаОсновная.ДоступныеПоля.Найти(Условие.ЛеваяЧасть) = Неопределено И
|
||||
Не ТаблицаСоединения.ДоступныеПоля.Найти(Условие.ЛеваяЧасть) = Неопределено Тогда
|
||||
|
||||
УсловиеСтрокой = СтрЗаменить(УсловиеСтрокой, Условие.ЛеваяЧасть,
|
||||
ТаблицаОсновная.Псевдоним + "." + Условие.ЛеваяЧасть);
|
||||
КонецЕсли;
|
||||
Если Не Условие.ПраваяЧасть = Неопределено И
|
||||
Не ТаблицаОсновная.ДоступныеПоля.Найти(Условие.ПраваяЧасть) = Неопределено И
|
||||
Не ТаблицаСоединения.ДоступныеПоля.Найти(Условие.ПраваяЧасть) = Неопределено Тогда
|
||||
|
||||
УсловиеСтрокой = СтрЗаменить(УсловиеСтрокой, Условие.ПраваяЧасть,
|
||||
ТаблицаСоединения.Псевдоним + "." + Условие.ПраваяЧасть);
|
||||
КонецЕсли;
|
||||
|
||||
НовыйМассивУсловий.Добавить(УсловиеСтрокой);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат НовыйМассивУсловий;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДобавитьПараметрыЗапроса(СтруктураСхемыЗапроса, Запрос)
|
||||
|
||||
Если СтруктураСхемыЗапроса.Свойство("Параметры") И ТипЗнч(СтруктураСхемыЗапроса.Параметры) = Тип("Массив") Тогда
|
||||
Для каждого Параметр Из СтруктураСхемыЗапроса.Параметры Цикл
|
||||
Запрос.УстановитьПараметр(Параметр.ИмяПараметра, Параметр.Значение);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.18">
|
||||
<CommonModule uuid="64cc4f13-8ea3-43e0-b530-031a569bfcd0">
|
||||
<Properties>
|
||||
<Name>СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Схема запроса: процессоры схем запроса служебный вызов сервера</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>false</ClientManagedApplication>
|
||||
<Server>true</Server>
|
||||
<ExternalConnection>false</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>true</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
@@ -0,0 +1 @@
|
||||
// TODO:
|
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.18">
|
||||
<CommonModule uuid="a7341127-4ed0-44b9-b3b2-007ae8f263dc">
|
||||
<Properties>
|
||||
<Name>СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Схема запроса: процессоры схем запроса служебный клиент сервер</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>true</ClientManagedApplication>
|
||||
<Server>true</Server>
|
||||
<ExternalConnection>false</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>false</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
@@ -0,0 +1,305 @@
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Процедура УстановитьИсточникДанных(СхемаЗапроса, ИсточникДанных, Первые, Различные, Разрешенные) Экспорт
|
||||
|
||||
Если СхемаЗапроса = Неопределено Тогда
|
||||
СхемаЗапроса = Новый Структура;
|
||||
КонецЕсли;
|
||||
|
||||
СхемаЗапроса.Вставить("ИсточникДанных", ИсточникДанных);
|
||||
Если Первые >= 0 Тогда
|
||||
СхемаЗапроса.Вставить("Первые", Первые);
|
||||
КонецЕсли;
|
||||
СхемаЗапроса.Вставить("Различные", Различные);
|
||||
СхемаЗапроса.Вставить("Разрешенные", Разрешенные);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьПервые(СхемаЗапроса, Количество) Экспорт
|
||||
|
||||
СхемаЗапроса.Вставить("Первые", Количество);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьРазличные(СхемаЗапроса) Экспорт
|
||||
|
||||
СхемаЗапроса.Вставить("Различные", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьРазрешенные(СхемаЗапроса) Экспорт
|
||||
|
||||
СхемаЗапроса.Вставить("Разрешенные", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьВыборВсехПолей(СхемаЗапроса) Экспорт
|
||||
|
||||
СхемаЗапроса.Вставить("ВсеПоля", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьПоляВыборки(СхемаЗапроса, Поля) Экспорт
|
||||
|
||||
Если ТипЗнч(Поля) = Тип("Строка") Тогда
|
||||
НовыеПоля = ПолучитьПоляИзСтроки(Поля);
|
||||
ИначеЕсли ТипЗнч(Поля) = Тип("Массив") Тогда
|
||||
НовыеПоля = Поля;
|
||||
ИначеЕсли ТипЗнч(Поля) = Тип("Структура") Тогда
|
||||
НовыеПоля = Новый Массив;
|
||||
НовыеПоля.Добавить(Поля);
|
||||
Иначе
|
||||
ВызватьИсключение "УстановитьПоляВыборки: неподдерживаемый тип данных в параметре ""Поля""";
|
||||
КонецЕсли;
|
||||
|
||||
МассивПолей = Новый Массив;
|
||||
Если СхемаЗапроса.Свойство("Поля") И ТипЗнч(СхемаЗапроса.Поля) = Тип("Массив") Тогда
|
||||
МассивПолей = СхемаЗапроса.Поля;
|
||||
КонецЕсли;
|
||||
Для каждого НовоеПоле Из НовыеПоля Цикл
|
||||
Поле = ПолучитьПоле(НовоеПоле);
|
||||
МассивПолей.Добавить(Поле);
|
||||
КонецЦикла;
|
||||
|
||||
СхемаЗапроса.Вставить("Поля", МассивПолей);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьУсловие(СхемаЗапроса, Предикат) Экспорт
|
||||
|
||||
СхемаЗапроса.Вставить("Условия", ПолучитьУсловияОтбора(Предикат));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьСоединение(СхемаЗапроса, ТипСоединения, ИсточникДанных, Предикат) Экспорт
|
||||
|
||||
Если ТипЗнч(ИсточникДанных) = Тип("Строка") Тогда
|
||||
|
||||
МассивСоединений = Новый Массив;
|
||||
Если СхемаЗапроса.Свойство("Соединения") И ТипЗнч(СхемаЗапроса.Поля) = Тип("Массив") Тогда
|
||||
МассивСоединений = СхемаЗапроса.Соединения;
|
||||
КонецЕсли;
|
||||
|
||||
Псевдоним = "";
|
||||
Если СтрНайти(ИсточникДанных, " КАК ") > 0 Тогда
|
||||
ИнформацияОбИсточникеДанных = СтрЗаменить(ИсточникДанных, " КАК ", Символы.ПС);
|
||||
ИсточникДанных = СтрПолучитьСтроку(ИнформацияОбИсточникеДанных, 1);
|
||||
Псевдоним = СтрПолучитьСтроку(ИнформацияОбИсточникеДанных, 2);
|
||||
КонецЕсли;
|
||||
|
||||
МассивСоединений.Добавить(Новый Структура("ТипСоединения, ИсточникДанных, Псевдоним, Условие",
|
||||
ТипСоединения, ИсточникДанных, Псевдоним, ПолучитьУсловияСоединения(Предикат)));
|
||||
СхемаЗапроса.Вставить("Соединения", МассивСоединений);
|
||||
|
||||
Иначе // Структура = вложенный запрос
|
||||
|
||||
// TODO:
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьГруппировку(СхемаЗапроса, Поля) Экспорт
|
||||
|
||||
Если ТипЗнч(Поля) = Тип("Строка") Тогда
|
||||
НовыеПоля = ПолучитьПоляИзСтроки(Поля);
|
||||
ИначеЕсли ТипЗнч(Поля) = Тип("Массив") Тогда
|
||||
НовыеПоля = Поля;
|
||||
Иначе
|
||||
ВызватьИсключение "УстановитьГруппировку: неподдерживаемый тип данных в параметре ""Поля""";
|
||||
КонецЕсли;
|
||||
|
||||
МассивПолей = Новый Массив;
|
||||
Если СхемаЗапроса.Свойство("Группировка") И ТипЗнч(СхемаЗапроса.Поля) = Тип("Массив") Тогда
|
||||
МассивПолей = СхемаЗапроса.Поля;
|
||||
КонецЕсли;
|
||||
Для каждого НовоеПоле Из НовыеПоля Цикл
|
||||
МассивПолей.Добавить(НовоеПоле);
|
||||
КонецЦикла;
|
||||
|
||||
СхемаЗапроса.Вставить("Группировка", МассивПолей);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьПорядок(СхемаЗапроса, Поля) Экспорт
|
||||
|
||||
Если ТипЗнч(Поля) = Тип("Строка") Тогда
|
||||
НовыеПоля = ПолучитьПоляИзСтроки(Поля);
|
||||
ИначеЕсли ТипЗнч(Поля) = Тип("Массив") Тогда
|
||||
НовыеПоля = Поля;
|
||||
Иначе
|
||||
ВызватьИсключение "УстановитьПорядок: неподдерживаемый тип данных в параметре ""Поля""";
|
||||
КонецЕсли;
|
||||
|
||||
МассивПолей = Новый Массив;
|
||||
Если СхемаЗапроса.Свойство("Порядок") И ТипЗнч(СхемаЗапроса.Поля) = Тип("Массив") Тогда
|
||||
МассивПолей = СхемаЗапроса.Поля;
|
||||
КонецЕсли;
|
||||
Для каждого НовоеПоле Из НовыеПоля Цикл
|
||||
МассивПолей.Добавить(НовоеПоле);
|
||||
КонецЦикла;
|
||||
|
||||
СхемаЗапроса.Вставить("Порядок", МассивПолей);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьПараметры(СхемаЗапроса, Параметры) Экспорт
|
||||
|
||||
СхемаЗапроса.Вставить("Параметры", Параметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ПолучитьПоляИзСтроки(СтрокаИменПолей)
|
||||
|
||||
МассивПолей = СтрРазделить(СтрокаИменПолей, ",", Ложь);
|
||||
Для Сч = 0 По МассивПолей.Количество() - 1 Цикл
|
||||
МассивПолей[Сч] = СокрЛП(МассивПолей[Сч]);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат МассивПолей;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьПоле(Поле)
|
||||
|
||||
// TODO: Строки проверять на корректность синтаксиса - отсутствие пробелов и спец.символов
|
||||
|
||||
Если ТипЗнч(Поле) = Тип("Строка") Тогда
|
||||
|
||||
Если СтрНайти(Поле, " КАК ") > 0 Тогда
|
||||
ИнформацияОПоле = СтрЗаменить(Поле, " КАК ", Символы.ПС);
|
||||
Возврат Новый Структура("ИмяПоля, Источник, Псевдоним",
|
||||
ПолучитьИмяПоляБезИсточника(СтрПолучитьСтроку(ИнформацияОПоле, 1)),
|
||||
ПолучитьИсточникИзИмениПоля(Поле),
|
||||
СтрПолучитьСтроку(ИнформацияОПоле, 2));
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Новый Структура("ИмяПоля, Источник, Псевдоним",
|
||||
ПолучитьИмяПоляБезИсточника(Поле),
|
||||
ПолучитьИсточникИзИмениПоля(Поле),
|
||||
Неопределено);
|
||||
|
||||
ИначеЕсли ТипЗнч(Поле) = Тип("Структура") Тогда
|
||||
|
||||
Если Поле.Свойство("ИмяПоля") Тогда
|
||||
Если Поле.Свойство("Источник") И Не Поле.Источник = Неопределено Тогда
|
||||
Если Поле.Свойство("Псевдоним") Тогда
|
||||
Возврат Поле;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Новый Структура("ИмяПоля, Источник, Псевдоним",
|
||||
ПолучитьИмяПоляБезИсточника(Поле.ИмяПоля),
|
||||
ПолучитьИсточникИзИмениПоля(Поле.ИмяПоля),
|
||||
Неопределено);
|
||||
КонецЕсли;
|
||||
|
||||
Если Поле.Свойство("Псевдоним") Тогда
|
||||
Возврат Новый Структура("ИмяПоля, Источник, Псевдоним",
|
||||
ПолучитьИмяПоляБезИсточника(Поле.ИмяПоля),
|
||||
ПолучитьИсточникИзИмениПоля(Поле.ИмяПоля),
|
||||
Поле.Псевдоним);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Новый Структура("ИмяПоля, Источник, Псевдоним",
|
||||
ПолучитьИмяПоляБезИсточника(Поле.ИмяПоля),
|
||||
ПолучитьИсточникИзИмениПоля(Поле.ИмяПоля),
|
||||
Неопределено);
|
||||
КонецЕсли;
|
||||
|
||||
ВызватьИсключение "ПолучитьПоле: некорректная структура передана в параметре ""Поле""";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ВызватьИсключение "ПолучитьПоле: неподдерживаемый тип данных в параметре ""Поле""";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьИмяПоляБезИсточника(ИмяПоля)
|
||||
|
||||
Если СтрНайти(ИмяПоля, ".") > 0 Тогда
|
||||
МассивЭлементовПоля = СтрРазделить(ИмяПоля, ".");
|
||||
МассивЭлементовПоля.Удалить(0);
|
||||
Возврат СтрСоединить(МассивЭлементовПоля, ".");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ИмяПоля;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьИсточникИзИмениПоля(ИмяПоля)
|
||||
|
||||
Если СтрНайти(ИмяПоля, ".") > 0 Тогда
|
||||
МассивЭлементовПоля = СтрРазделить(ИмяПоля, ".");
|
||||
Возврат МассивЭлементовПоля[0];
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьУсловияОтбора(Предикат)
|
||||
|
||||
// TODO: Нумерация (Сч) сквозная через все запросы
|
||||
|
||||
МассивУсловий = Новый Массив;
|
||||
Сч = 0;
|
||||
|
||||
Для каждого Условие Из Предикат.Условия Цикл
|
||||
ИмяПараметра = СтрШаблон("Параметр_%1", Сч);
|
||||
|
||||
Шаблон = ШаблонУсловия(Условие.ВидСравнения);
|
||||
МассивУсловий.Добавить(Новый Структура("ИмяПараметра, УсловиеСтрокой, Значение",
|
||||
ИмяПараметра, СтрШаблон(Шаблон, Условие.ИмяРеквизита, ИмяПараметра), Условие.Значение));
|
||||
|
||||
Сч = Сч + 1;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат МассивУсловий;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьУсловияСоединения(Предикат)
|
||||
|
||||
МассивУсловий = Новый Массив;
|
||||
Если Предикат = Неопределено Тогда
|
||||
МассивУсловий.Добавить(
|
||||
Новый Структура("ЛеваяЧасть, ПраваяЧасть, УсловиеСтрокой",,, "ИСТИНА"));
|
||||
|
||||
Возврат МассивУсловий;
|
||||
КонецЕсли;
|
||||
|
||||
Для каждого Условие Из Предикат.Условия Цикл
|
||||
Шаблон = ШаблонУсловия(Условие.ВидСравнения, Ложь);
|
||||
МассивУсловий.Добавить(Новый Структура("ЛеваяЧасть, ПраваяЧасть, УсловиеСтрокой",
|
||||
Условие.ИмяРеквизита, Условие.Значение, СтрШаблон(Шаблон, Условие.ИмяРеквизита, Условие.Значение)));
|
||||
КонецЦикла;
|
||||
|
||||
Возврат МассивУсловий;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ШаблонУсловия(ВидСравнения, Амперсанд = Истина)
|
||||
|
||||
Выражения = СЗ_ПроцессорыПредикатовКлиентСервер.Выражения();
|
||||
|
||||
Если ВидСравнения = Выражения.Равно Тогда
|
||||
Шаблон = "%1 = " + ?(Амперсанд, "&", "") + "%2";
|
||||
ИначеЕсли ВидСравнения = Выражения.Больше Тогда
|
||||
Шаблон = "%1 > " + ?(Амперсанд, "&", "") + "%2";
|
||||
ИначеЕсли ВидСравнения = Выражения.Меньше Тогда
|
||||
Шаблон = "%1 < " + ?(Амперсанд, "&", "") + "%2";
|
||||
ИначеЕсли ВидСравнения = Выражения.В Тогда
|
||||
Шаблон = "%1 В (" + ?(Амперсанд, "&", "") + "%2)";
|
||||
Иначе
|
||||
ВызватьИсключение "Неподдерживаемое выражение предиката " + ВидСравнения;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Шаблон;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
28
src/cfe/ConfigDumpInfo.xml
Normal file
28
src/cfe/ConfigDumpInfo.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?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="e2743c37ca1c317bbd7deb62473bdb9c92ce4b3b"/>
|
||||
<Metadata name="CommonModule.СЗ_Запрос.Module" id="5f1605a0-4e63-4339-b2cc-44e115be6ed7.0" configVersion="70b897dad9d758e331d5d898768fe0344077916d"/>
|
||||
<Metadata name="CommonModule.СЗ_ЗапросТест" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314" configVersion="01955255914f2f02da26b7a05ec1ffe713f168e1"/>
|
||||
<Metadata name="CommonModule.СЗ_ЗапросТест.Module" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314.0" configVersion="ac93509d47d7c7ed87c457d0b9a528fd264ac3d6"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыПредикатовКлиентСервер" id="407489b2-2f4b-467b-9594-621de146e468" configVersion="d0e776fe2161eadb117e389e6d86e40d8f7927fc"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыПредикатовКлиентСервер.Module" id="407489b2-2f4b-467b-9594-621de146e468.0" configVersion="a3fd675572299afe5f63b59eef575cff639c35e7"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер" id="19b0625e-9f74-4fba-9350-914066ae1034" configVersion="97824f99f8fe96dacf2d8271e35b6b11a89a7f4f"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.Module" id="19b0625e-9f74-4fba-9350-914066ae1034.0" configVersion="dbadb525d8fa291f91fab2a1d85bd78062f506d0"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаКлиентСервер" id="a3e5bf50-2154-477f-9355-29b0930a73c5" configVersion="0a1d47680d6c53bcec9c7b566903a863ce26bf77"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаКлиентСервер.Module" id="a3e5bf50-2154-477f-9355-29b0930a73c5.0" configVersion="e4516fad653b42c44367545d251e48696271a349"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебный" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c" configVersion="77f2ed6a2d9924e64f836b9a16c0664b4a5a38e8"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебный.Module" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c.0" configVersion="b2fd5df72dfca291c7c509e19004d8a7117e0092"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера" id="64cc4f13-8ea3-43e0-b530-031a569bfcd0" configVersion="de76e252360ff40f9368c1eec2d95d3aa03b14e7"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера.Module" id="64cc4f13-8ea3-43e0-b530-031a569bfcd0.0" configVersion="f671df996460f1b0acc9ed4c7e27af2f5dbb660f"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc" configVersion="8a27beba3300dacb51abfc0f6b4c8711bb7b0b06"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.Module" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc.0" configVersion="c0c07db62eb444934fc2a9860ec61233a2e25af4"/>
|
||||
<Metadata name="Configuration.СхемаЗапроса" id="727bc241-bb6d-418f-b908-1102fbf1bc00" configVersion="32358f5e6e55bc199dcbf146a39e01e89463a7e7"/>
|
||||
<Metadata name="DataProcessor.СЗ_ПроцессорПредикатов" id="12d6eb41-70d9-4802-8fde-b6464e23bf0b" configVersion="7bd25841e01d3196cd731359775f0af93ddbd0d1"/>
|
||||
<Metadata name="DataProcessor.СЗ_ПроцессорПредикатов.ObjectModule" id="12d6eb41-70d9-4802-8fde-b6464e23bf0b.0" configVersion="7bf55d840fc4752caaf882cc4bac5e7fa7300863"/>
|
||||
<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="bae96f2ab9ea2a272936072451369a2851dc377f"/>
|
||||
<Metadata name="DataProcessor.СЗ_ПроцессорСхемЗапроса.ObjectModule" id="7008c53a-3e8a-4432-bff6-500c4145bab5.0" configVersion="a7e021d94dee3eede73d29ab27db5114ad695467"/>
|
||||
</ConfigVersions>
|
||||
</ConfigDumpInfo>
|
71
src/cfe/Configuration.xml
Normal file
71
src/cfe/Configuration.xml
Normal file
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.18">
|
||||
<Configuration uuid="727bc241-bb6d-418f-b908-1102fbf1bc00">
|
||||
<InternalInfo>
|
||||
<xr:ContainedObject>
|
||||
<xr:ClassId>9cd510cd-abfc-11d4-9434-004095e12fc7</xr:ClassId>
|
||||
<xr:ObjectId>79fc0bfa-a7d2-4fcc-9968-cfb47caa8fd8</xr:ObjectId>
|
||||
</xr:ContainedObject>
|
||||
<xr:ContainedObject>
|
||||
<xr:ClassId>9fcd25a0-4822-11d4-9414-008048da11f9</xr:ClassId>
|
||||
<xr:ObjectId>bf90fb71-1da9-4052-b179-033ccc51e8de</xr:ObjectId>
|
||||
</xr:ContainedObject>
|
||||
<xr:ContainedObject>
|
||||
<xr:ClassId>e3687481-0a87-462c-a166-9f34594f9bba</xr:ClassId>
|
||||
<xr:ObjectId>a8573e3a-9a13-4e2b-9666-240ff4f3d932</xr:ObjectId>
|
||||
</xr:ContainedObject>
|
||||
<xr:ContainedObject>
|
||||
<xr:ClassId>9de14907-ec23-4a07-96f0-85521cb6b53b</xr:ClassId>
|
||||
<xr:ObjectId>7e4ad5ff-f2b7-4283-a3c4-e62bfacbb5df</xr:ObjectId>
|
||||
</xr:ContainedObject>
|
||||
<xr:ContainedObject>
|
||||
<xr:ClassId>51f2d5d8-ea4d-4064-8892-82951750031e</xr:ClassId>
|
||||
<xr:ObjectId>048a7528-7f13-42d2-8898-549305be15a9</xr:ObjectId>
|
||||
</xr:ContainedObject>
|
||||
<xr:ContainedObject>
|
||||
<xr:ClassId>e68182ea-4237-4383-967f-90c1e3370bc7</xr:ClassId>
|
||||
<xr:ObjectId>f748cda1-e6d2-4aa2-8c76-75e9f4fe7eb7</xr:ObjectId>
|
||||
</xr:ContainedObject>
|
||||
<xr:ContainedObject>
|
||||
<xr:ClassId>fb282519-d103-4dd3-bc12-cb271d631dfc</xr:ClassId>
|
||||
<xr:ObjectId>fc951404-a9cc-4c5d-bd94-f031bd348ea2</xr:ObjectId>
|
||||
</xr:ContainedObject>
|
||||
</InternalInfo>
|
||||
<Properties>
|
||||
<ObjectBelonging>Adopted</ObjectBelonging>
|
||||
<Name>СхемаЗапроса</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Схема запроса</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<ConfigurationExtensionPurpose>AddOn</ConfigurationExtensionPurpose>
|
||||
<KeepMappingToExtendedConfigurationObjectsByIDs>true</KeepMappingToExtendedConfigurationObjectsByIDs>
|
||||
<NamePrefix>СЗ_</NamePrefix>
|
||||
<ConfigurationExtensionCompatibilityMode>Version8_3_24</ConfigurationExtensionCompatibilityMode>
|
||||
<ScriptVariant>Russian</ScriptVariant>
|
||||
<Vendor/>
|
||||
<Version>0.0.1</Version>
|
||||
<BriefInformation/>
|
||||
<DetailedInformation/>
|
||||
<Copyright/>
|
||||
<VendorInformationAddress/>
|
||||
<ConfigurationInformationAddress/>
|
||||
<InterfaceCompatibilityMode>TaxiEnableVersion8_2</InterfaceCompatibilityMode>
|
||||
</Properties>
|
||||
<ChildObjects>
|
||||
<CommonModule>СЗ_Запрос</CommonModule>
|
||||
<CommonModule>СЗ_ЗапросТест</CommonModule>
|
||||
<CommonModule>СЗ_ПроцессорыПредикатовКлиентСервер</CommonModule>
|
||||
<CommonModule>СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер</CommonModule>
|
||||
<CommonModule>СЗ_ПроцессорыСхемЗапросаКлиентСервер</CommonModule>
|
||||
<CommonModule>СЗ_ПроцессорыСхемЗапросаСлужебный</CommonModule>
|
||||
<CommonModule>СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера</CommonModule>
|
||||
<CommonModule>СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер</CommonModule>
|
||||
<DataProcessor>СЗ_ПроцессорПредикатов</DataProcessor>
|
||||
<DataProcessor>СЗ_ПроцессорСхемЗапроса</DataProcessor>
|
||||
</ChildObjects>
|
||||
</Configuration>
|
||||
</MetaDataObject>
|
32
src/cfe/DataProcessors/СЗ_ПроцессорПредикатов.xml
Normal file
32
src/cfe/DataProcessors/СЗ_ПроцессорПредикатов.xml
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.18">
|
||||
<DataProcessor uuid="12d6eb41-70d9-4802-8fde-b6464e23bf0b">
|
||||
<InternalInfo>
|
||||
<xr:GeneratedType name="DataProcessorObject.СЗ_ПроцессорПредикатов" category="Object">
|
||||
<xr:TypeId>20e56103-de11-460e-989e-38009e54630a</xr:TypeId>
|
||||
<xr:ValueId>207e5e5e-fb17-43ad-959f-910b588f6d68</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
<xr:GeneratedType name="DataProcessorManager.СЗ_ПроцессорПредикатов" category="Manager">
|
||||
<xr:TypeId>e3602dbd-6e64-429f-99f4-b0c9a7b7102f</xr:TypeId>
|
||||
<xr:ValueId>facb276b-1229-4f98-960f-86720e17c5c9</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
</InternalInfo>
|
||||
<Properties>
|
||||
<Name>СЗ_ПроцессорПредикатов</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>С з процессор предикатов</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<UseStandardCommands>true</UseStandardCommands>
|
||||
<DefaultForm/>
|
||||
<AuxiliaryForm/>
|
||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||
<ExtendedPresentation/>
|
||||
<Explanation/>
|
||||
</Properties>
|
||||
<ChildObjects/>
|
||||
</DataProcessor>
|
||||
</MetaDataObject>
|
@@ -0,0 +1,44 @@
|
||||
#Область ОписаниеПеременных
|
||||
|
||||
Перем Предикат;
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Функция Реквизит(ИмяРеквизита) Экспорт
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьИмяРеквизита(Предикат, ИмяРеквизита);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция Равно(Значение) Экспорт
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьПредикат(Предикат,
|
||||
СЗ_ПроцессорыПредикатовКлиентСервер.Выражения().Равно, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция Больше(Значение) Экспорт
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьПредикат(Предикат,
|
||||
СЗ_ПроцессорыПредикатовКлиентСервер.Выражения().Больше, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция Меньше(Значение) Экспорт
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьПредикат(Предикат,
|
||||
СЗ_ПроцессорыПредикатовКлиентСервер.Выражения().Меньше, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция В(Значение) Экспорт
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьПредикат(Предикат,
|
||||
СЗ_ПроцессорыПредикатовКлиентСервер.Выражения().В, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция Получить() Экспорт
|
||||
|
||||
Возврат Предикат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
34
src/cfe/DataProcessors/СЗ_ПроцессорСхемЗапроса.xml
Normal file
34
src/cfe/DataProcessors/СЗ_ПроцессорСхемЗапроса.xml
Normal file
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.18">
|
||||
<DataProcessor uuid="7008c53a-3e8a-4432-bff6-500c4145bab5">
|
||||
<InternalInfo>
|
||||
<xr:GeneratedType name="DataProcessorObject.СЗ_ПроцессорСхемЗапроса" category="Object">
|
||||
<xr:TypeId>8fa76ff0-784b-4ebd-a63a-5bfed72f02c2</xr:TypeId>
|
||||
<xr:ValueId>4b2cbc6f-5517-4354-9cca-09e37ffb6ef4</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
<xr:GeneratedType name="DataProcessorManager.СЗ_ПроцессорСхемЗапроса" category="Manager">
|
||||
<xr:TypeId>4c35d9a4-671c-4413-b87e-b984a2286b1e</xr:TypeId>
|
||||
<xr:ValueId>2db60e26-72c2-46c7-adef-d744c9274c32</xr:ValueId>
|
||||
</xr:GeneratedType>
|
||||
</InternalInfo>
|
||||
<Properties>
|
||||
<Name>СЗ_ПроцессорСхемЗапроса</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Схема запроса: процессор схем запроса</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<UseStandardCommands>true</UseStandardCommands>
|
||||
<DefaultForm>DataProcessor.СЗ_ПроцессорСхемЗапроса.Form.Форма</DefaultForm>
|
||||
<AuxiliaryForm/>
|
||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||
<ExtendedPresentation/>
|
||||
<Explanation/>
|
||||
</Properties>
|
||||
<ChildObjects>
|
||||
<Form>Форма</Form>
|
||||
</ChildObjects>
|
||||
</DataProcessor>
|
||||
</MetaDataObject>
|
@@ -0,0 +1,125 @@
|
||||
#Область ОписаниеПеременных
|
||||
|
||||
Перем СхемаЗапроса;
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Процедура УстановитьИсточникДанных(ИсточникДанных, Первые = -1, Различные = Ложь, Разрешенные = Ложь) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьИсточникДанных(СхемаЗапроса,
|
||||
ИсточникДанных, Первые, Различные, Разрешенные);
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ВТаблицуЗначений() Экспорт
|
||||
ТаблицаЗначений = СЗ_ПроцессорыСхемЗапросаСлужебный
|
||||
.ПолучитьРезультатЗапроса(СхемаЗапроса).Выгрузить();
|
||||
Возврат ТаблицаЗначений;
|
||||
КонецФункции
|
||||
|
||||
Функция ВМассив(ИмяКолонки) Экспорт
|
||||
ТаблицаЗначений = СЗ_ПроцессорыСхемЗапросаСлужебный
|
||||
.ПолучитьРезультатЗапроса(СхемаЗапроса).Выгрузить();
|
||||
Возврат ТаблицаЗначений.ВыгрузитьКолонку(ИмяКолонки);
|
||||
КонецФункции
|
||||
|
||||
Функция Первые(Количество) Экспорт
|
||||
// TODO:
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция Различные() Экспорт
|
||||
// TODO:
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция Разрешенные() Экспорт
|
||||
// TODO:
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция Выбрать(Поля) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьПоляВыборки(СхемаЗапроса, Поля);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция ВыбратьВсе() Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьВыборВсехПолей(СхемаЗапроса);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция Где(Предикат) Экспорт
|
||||
|
||||
Если ТипЗнч(Предикат) = Тип("Структура") Тогда
|
||||
_Предикат = Предикат;
|
||||
ИначеЕсли ТипЗнч(Предикат) = Тип("ОбработкаОбъект.СЗ_ПроцессорПредикатов") Тогда
|
||||
_Предикат = Предикат.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "Неверный тип предиката в методе ""Где""";
|
||||
КонецЕсли;
|
||||
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьУсловие(СхемаЗапроса, _Предикат);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция ЛевоеСоединение(ИсточникДанных, Предикат = Неопределено) Экспорт
|
||||
|
||||
// TODO: ИсточникДанных может быть структурой? Что делать в этом случае?
|
||||
Если ТипЗнч(ИсточникДанных) = Тип("Строка") Тогда
|
||||
_ИсточникДанных = ИсточникДанных;
|
||||
ИначеЕсли ТипЗнч(ИсточникДанных) = Тип("ОбработкаОбъект.СЗ_ПроцессорСхемЗапроса") Тогда
|
||||
_ИсточникДанных = ИсточникДанных.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "ЛевоеСоединение: неверный тип источника данных";
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Предикат) = Тип("Структура") Или Предикат = Неопределено Тогда
|
||||
_Предикат = Предикат;
|
||||
ИначеЕсли ТипЗнч(Предикат) = Тип("ОбработкаОбъект.СЗ_ПроцессорПредикатов") Тогда
|
||||
_Предикат = Предикат.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "ЛевоеСоединение: неверный тип предиката";
|
||||
КонецЕсли;
|
||||
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.ДобавитьСоединение(
|
||||
СхемаЗапроса, "Левое", ИсточникДанных, _Предикат);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция Сгруппировать(Поля) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьГруппировку(СхемаЗапроса, Поля);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция Упорядочить(Поля) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьПорядок(СхемаЗапроса, Поля);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция Итоги() Экспорт
|
||||
// TODO:
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция Параметры(Параметры) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьПараметры(СхемаЗапроса, Параметры);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
Функция Получить() Экспорт
|
||||
|
||||
Возврат СхемаЗапроса;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
|
||||
|
||||
#КонецОбласти
|
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.18">
|
||||
<Form uuid="04cd8a25-c99d-4da9-ac0f-5703574d079f">
|
||||
<Properties>
|
||||
<Name>Форма</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Форма</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<FormType>Managed</FormType>
|
||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||
<UsePurposes>
|
||||
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
|
||||
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
|
||||
</UsePurposes>
|
||||
<ExtendedPresentation/>
|
||||
</Properties>
|
||||
</Form>
|
||||
</MetaDataObject>
|
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcssch="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.18">
|
||||
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
|
||||
<Attributes>
|
||||
<Attribute name="Объект" id="1">
|
||||
<Type>
|
||||
<v8:Type>cfg:DataProcessorObject.СЗ_ПроцессорСхемЗапроса</v8:Type>
|
||||
</Type>
|
||||
<MainAttribute>true</MainAttribute>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
</Form>
|
@@ -0,0 +1,133 @@
|
||||
#Область ОписаниеПеременных
|
||||
|
||||
&НаКлиенте
|
||||
Перем СхемаЗапроса;
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
&НаКлиенте
|
||||
Процедура УстановитьИсточникДанных(ИсточникДанных, Первые = -1, Различные = Ложь, Разрешенные = Ложь) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьИсточникДанных(СхемаЗапроса,
|
||||
ИсточникДанных, Первые, Различные, Разрешенные);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция ВТаблицуЗначений() Экспорт
|
||||
ТаблицаЗначений = СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера
|
||||
.ПолучитьРезультатЗапроса(СхемаЗапроса).Выгрузить();
|
||||
Возврат ТаблицаЗначений;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ВМассив(ИмяКолонки) Экспорт
|
||||
ТаблицаЗначений = СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера
|
||||
.ПолучитьРезультатЗапроса(СхемаЗапроса).Выгрузить();
|
||||
Возврат ТаблицаЗначений.ВыгрузитьКолонку(ИмяКолонки);
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Первые(Количество) Экспорт
|
||||
// TODO:
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Различные() Экспорт
|
||||
// TODO:
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Разрешенные() Экспорт
|
||||
// TODO:
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Выбрать(Поля) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьПоляВыборки(СхемаЗапроса, Поля);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ВыбратьВсе() Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьВыборВсехПолей(СхемаЗапроса);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Где(Предикат) Экспорт
|
||||
|
||||
Если ТипЗнч(Предикат) = Тип("Структура") Тогда
|
||||
_Предикат = Предикат;
|
||||
ИначеЕсли ТипЗнч(Предикат) = Тип("ОбработкаОбъект.СЗ_ПроцессорПредикатов") Тогда
|
||||
_Предикат = Предикат.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "Неверный тип предиката в методе ""Где""";
|
||||
КонецЕсли;
|
||||
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьУсловие(СхемаЗапроса, _Предикат);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ЛевоеСоединение(ИсточникДанных, Предикат = Неопределено) Экспорт
|
||||
|
||||
// TODO: ИсточникДанных может быть структурой? Что делать в этом случае?
|
||||
Если ТипЗнч(ИсточникДанных) = Тип("Строка") Тогда
|
||||
_ИсточникДанных = ИсточникДанных;
|
||||
ИначеЕсли ТипЗнч(ИсточникДанных) = Тип("ОбработкаОбъект.СЗ_ПроцессорСхемЗапроса") Тогда
|
||||
_ИсточникДанных = ИсточникДанных.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "ЛевоеСоединение: неверный тип источника данных";
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Предикат) = Тип("Структура") Или Предикат = Неопределено Тогда
|
||||
_Предикат = Предикат;
|
||||
ИначеЕсли ТипЗнч(Предикат) = Тип("ОбработкаОбъект.СЗ_ПроцессорПредикатов") Тогда
|
||||
_Предикат = Предикат.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "ЛевоеСоединение: неверный тип предиката";
|
||||
КонецЕсли;
|
||||
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.ДобавитьСоединение(
|
||||
СхемаЗапроса, "Левое", ИсточникДанных, _Предикат);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Сгруппировать(Поля) Экспорт
|
||||
// TODO:
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Упорядочить(Поля) Экспорт
|
||||
// TODO:
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Итоги() Экспорт
|
||||
// TODO:
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Параметры(Параметры) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьПараметры(СхемаЗапроса, Параметры);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Получить() Экспорт
|
||||
|
||||
Возврат СхемаЗапроса;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
Reference in New Issue
Block a user