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:
@@ -30,7 +30,10 @@
|
||||
.ДобавитьТест("ЗапросСУсловиемНеВСписке")
|
||||
.Перед("Перед_ЗапросСУсловиемНеВСписке")
|
||||
.ДобавитьТестовыйНабор("СЗ: Соединения")
|
||||
.ДобавитьТест("ЛевоеСоединениеПоИсточникуСтроке")
|
||||
.ДобавитьТест("СоединениеПоИсточникуСтроке")
|
||||
.СПараметрами("Левое")
|
||||
.СПараметрами("Правое")
|
||||
.СПараметрами("Внутреннее")
|
||||
.ДобавитьТест("ЛевоеСоединениеПоИсточникуЗапросу")
|
||||
.ДобавитьТест("ЛевоеСоединениеБезПредиката")
|
||||
.ДобавитьТест("ЛевоеСоединениеНесколькоУсловийВПредикате")
|
||||
@@ -506,18 +509,31 @@
|
||||
|
||||
#Область Соединения
|
||||
|
||||
Процедура ЛевоеСоединениеПоИсточникуСтроке() Экспорт
|
||||
Процедура СоединениеПоИсточникуСтроке(ТипСоединения) Экспорт
|
||||
|
||||
ПредикатДляСоединения = СЗ_Запрос.Предикат()
|
||||
.Реквизит("НоменклатураСоединение.Ссылка").Равно("Номенклатура.Родитель")
|
||||
;
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
Запрос = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Номенклатура.Ссылка,
|
||||
|НоменклатураСоединение.Ссылка КАК НоменклатураСоединениеСсылка")
|
||||
.ЛевоеСоединение("Справочник.Номенклатура КАК НоменклатураСоединение", ПредикатДляСоединения)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
Если ТипСоединения = "Левое" Тогда
|
||||
Запрос
|
||||
.ЛевоеСоединение("Справочник.Номенклатура КАК НоменклатураСоединение", ПредикатДляСоединения)
|
||||
;
|
||||
ИначеЕсли ТипСоединения = "Правое" Тогда
|
||||
Запрос
|
||||
.ПравоеСоединение("Справочник.Номенклатура КАК НоменклатураСоединение", ПредикатДляСоединения)
|
||||
;
|
||||
Иначе // Если ТипСоединения = "Внутреннее" Тогда
|
||||
Запрос
|
||||
.ВнутреннееСоединение("Справочник.Номенклатура КАК НоменклатураСоединение", ПредикатДляСоединения)
|
||||
;
|
||||
КонецЕсли;
|
||||
|
||||
ТаблицаЗначений = Запрос.ВТаблицуЗначений();
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
@@ -534,7 +550,9 @@
|
||||
|
||||
Процедура ЛевоеСоединениеПоИсточникуЗапросу() Экспорт
|
||||
|
||||
ЗапросДляСоединения = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура");
|
||||
ЗапросДляСоединения = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Псевдоним("НоменклатураСоединение")
|
||||
;
|
||||
ПредикатДляСоединения = СЗ_Запрос.Предикат()
|
||||
.Реквизит("Ссылка").Равно("Родитель")
|
||||
;
|
||||
|
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="b37c9dfc-97f9-419e-aef2-d1598bd7f793">
|
||||
<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>false</Server>
|
||||
<ExternalConnection>false</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>false</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
889
src/cfe/CommonModules/СЗ_ЗапросТестКлиент/Ext/Module.bsl
Normal file
889
src/cfe/CommonModules/СЗ_ЗапросТестКлиент/Ext/Module.bsl
Normal file
@@ -0,0 +1,889 @@
|
||||
#Область ОбъявлениеТестов
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты.УдалениеТестовыхДанных()
|
||||
.ДобавитьТестовыйНабор("СЗ: Базовые")
|
||||
.ДобавитьТест("ИсключениеИсточникОтсутствует")
|
||||
.ДобавитьТест("ИсключениеИсточникПустаяСтрока")
|
||||
.ДобавитьТест("ЗапросВТаблицуЗначений")
|
||||
.ДобавитьТест("ЗапросВМассив")
|
||||
.ДобавитьТест("Первые")
|
||||
.ДобавитьТест("Различные")
|
||||
.ДобавитьТест("Разрешенные")
|
||||
.ДобавитьТестовыйНабор("СЗ: Поля")
|
||||
.ДобавитьТест("ИсключениеПолеОтсутствует")
|
||||
.ДобавитьТест("ДобавитьПоляССинонимами")
|
||||
.ДобавитьТест("ДобавитьНесколькоПолей")
|
||||
.ДобавитьТест("ДобавитьНесколькоПолейСПереносомСтроки")
|
||||
.ДобавитьТест("ДобавитьПоляССинонимамиИСписком")
|
||||
.ДобавитьТест("ВсеПоляДляНеСсылочногоТипа")
|
||||
.ДобавитьТест("ВсеПоляДляСсылочногоТипа")
|
||||
.ДобавитьТестовыйНабор("СЗ: Условия")
|
||||
.ДобавитьТест("ЗапросСУсловиемРавно")
|
||||
.ДобавитьТест("ЗапросСУсловиемНеРавно")
|
||||
.ДобавитьТест("ЗапросСУсловиемПодобно")
|
||||
.ДобавитьТест("ЗапросСУсловиемНеПодобно")
|
||||
.ДобавитьТест("ЗапросСУсловиемМежду")
|
||||
.ДобавитьТест("ЗапросСУсловиемВСписке")
|
||||
.Перед("Перед_ЗапросСУсловиемВСписке")
|
||||
.ДобавитьТест("ЗапросСУсловиемНеВСписке")
|
||||
.Перед("Перед_ЗапросСУсловиемНеВСписке")
|
||||
.ДобавитьТестовыйНабор("СЗ: Соединения")
|
||||
.ДобавитьТест("СоединениеПоИсточникуСтроке")
|
||||
.СПараметрами("Левое")
|
||||
.СПараметрами("Правое")
|
||||
.СПараметрами("Внутреннее")
|
||||
.ДобавитьТест("ЛевоеСоединениеПоИсточникуЗапросу")
|
||||
.ДобавитьТест("ЛевоеСоединениеБезПредиката")
|
||||
.ДобавитьТест("ЛевоеСоединениеНесколькоУсловийВПредикате")
|
||||
.ДобавитьТест("ЛевоеСоединениеПредикатЭтоПараметр")
|
||||
.ДобавитьТест("ЛевоеСоединениеБезПсевдонимовВСоединении")
|
||||
.ДобавитьТест("НесколькоЛевыхСоединений")
|
||||
.ДобавитьТестовыйНабор("СЗ: Вложенный запрос")
|
||||
.ДобавитьТест("ИсключениеВложенныйЗапросБезПсевдонима")
|
||||
.ДобавитьТест("ВложенныйЗапрос")
|
||||
.ДобавитьТестовыйНабор("СЗ: Прочее")
|
||||
.ДобавитьТест("Порядок")
|
||||
.ДобавитьТест("ПорядокУбывания")
|
||||
.ДобавитьТест("Итоги")
|
||||
.ДобавитьТестовыйНабор("СЗ: Реальные запросы")
|
||||
.ДобавитьТест("АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений")
|
||||
.Перед("Перед_АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область События
|
||||
|
||||
Процедура Перед_ЗапросСУсловиемВСписке() Экспорт
|
||||
|
||||
ПодготовитьСписокНоменклатуры();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Перед_ЗапросСУсловиемНеВСписке() Экспорт
|
||||
|
||||
ПодготовитьСписокНоменклатуры();
|
||||
|
||||
Контекст = ЮТест.КонтекстТеста();
|
||||
|
||||
МассивНоменклатуры = СЗ_ЗапросТестСлужебныйВызовСервера
|
||||
.ПолучитьНоменклатуруНеСписке(Контекст.МассивНоменклатуры);
|
||||
Контекст.Вставить("МассивНоменклатурыНеВСписке", МассивНоменклатуры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Перед_АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений() Экспорт
|
||||
|
||||
Для Сч = 1 По 3 Цикл
|
||||
ЮТест.Данные().КонструкторОбъекта("РегистрСведений.УровниСокращенийАдресныхСведений")
|
||||
.Установить("Значение", "Абонентский Ящик")
|
||||
.Установить("Сокращение", "А/Я")
|
||||
.Записать()
|
||||
;
|
||||
КонецЦикла;
|
||||
Для Сч = 1 По 5 Цикл
|
||||
ЮТест.Данные().КонструкторОбъекта("РегистрСведений.УровниСокращенийАдресныхСведений")
|
||||
.Установить("Значение", "Деревня")
|
||||
.Установить("Сокращение", "Д.")
|
||||
.Записать()
|
||||
;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Тесты
|
||||
|
||||
#Область Базовые
|
||||
|
||||
Процедура ИсключениеИсточникОтсутствует() Экспорт
|
||||
|
||||
Обработка = ПолучитьФорму("Обработка.СЗ_ПроцессорСхемЗапроса.Форма.Форма");
|
||||
|
||||
ЮТест.ОжидаетЧто(Обработка)
|
||||
.Метод("ВТаблицуЗначений")
|
||||
.ВыбрасываетИсключение("Источник данных запроса не определен");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ИсключениеИсточникПустаяСтрока() Экспорт
|
||||
|
||||
Запрос = СЗ_Запрос.НовыйЗапрос("");
|
||||
|
||||
ЮТест.ОжидаетЧто(Запрос)
|
||||
.Метод("ВТаблицуЗначений")
|
||||
.ВыбрасываетИсключение("Источник данных запроса не определен");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗапросВТаблицуЗначений() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗапросВМассив() Экспорт
|
||||
|
||||
Массив = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.ВМассив("Ссылка")
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(Массив)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(Массив.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Первые() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура", 10)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Равно(10)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Различные() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура",, Истина)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Разрешенные() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура",,, Истина)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Поля
|
||||
|
||||
// TODO: Поля могут быть выражениями
|
||||
|
||||
Процедура ИсключениеПолеОтсутствует() Экспорт
|
||||
|
||||
НеправильноеНаименованиеПоля = "йцукен";
|
||||
|
||||
Запрос = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать(НеправильноеНаименованиеПоля)
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(Запрос)
|
||||
.Метод("ВТаблицуЗначений")
|
||||
.ВыбрасываетИсключение(
|
||||
СтрШаблон("Поле %1 в источнике не определено", НеправильноеНаименованиеПоля));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьПоляССинонимами() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать(СЗ_Запрос.НовоеПоле("Ссылка",, "СсылкаНоменклатуры"))
|
||||
.Выбрать(СЗ_Запрос.НовоеПоле("Наименование",, "НаименованиеНоменклатуры"))
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("СсылкаНоменклатуры")
|
||||
.ИмеетСвойство("НаименованиеНоменклатуры")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьНесколькоПолей() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Ссылка, Наименование, ЭтоГруппа")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("Наименование")
|
||||
.ИмеетСвойство("ЭтоГруппа")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьНесколькоПолейСПереносомСтроки() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Ссылка, Наименование,
|
||||
|ЭтоГруппа")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("Наименование")
|
||||
.ИмеетСвойство("ЭтоГруппа")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьПоляССинонимамиИСписком() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать(СЗ_Запрос.НовоеПоле("Ссылка",, "СсылкаНоменклатуры"))
|
||||
.Выбрать("Наименование КАК НаименованиеНоменклатуры, ЭтоГруппа")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("СсылкаНоменклатуры")
|
||||
.ИмеетСвойство("НаименованиеНоменклатуры")
|
||||
.ИмеетСвойство("ЭтоГруппа")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВсеПоляДляНеСсылочногоТипа() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("РегистрСведений.КурсыВалют")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Валюта")
|
||||
.ИмеетСвойство("Курс")
|
||||
.ИмеетСвойство("Кратность")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВсеПоляДляСсылочногоТипа() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.ВыбратьВсе()
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("Наименование")
|
||||
.ИмеетСвойство("ЭтоГруппа")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Условия
|
||||
|
||||
Процедура ЗапросСУсловиемРавно() Экспорт
|
||||
|
||||
Предикат = СЗ_Запрос.Предикат()
|
||||
.Реквизит("ЭтоГруппа").Равно(Ложь)
|
||||
;
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Ссылка, ЭтоГруппа")
|
||||
.Где(Предикат)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
.ИмеетДлинуБольше(0)
|
||||
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
|
||||
.Реквизит("ЭтоГруппа").Равно(Ложь))
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗапросСУсловиемНеРавно() Экспорт
|
||||
|
||||
Предикат = СЗ_Запрос.Предикат()
|
||||
.Реквизит("ЭтоГруппа").НеРавно(Ложь)
|
||||
;
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Ссылка, ЭтоГруппа")
|
||||
.Где(Предикат)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
.ИмеетДлинуБольше(0)
|
||||
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
|
||||
.Реквизит("ЭтоГруппа").Равно(Истина))
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗапросСУсловиемПодобно() Экспорт
|
||||
|
||||
Предикат = СЗ_Запрос.Предикат()
|
||||
.Реквизит("Наименование").Подобно("Хлеб")
|
||||
;
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Ссылка, Наименование")
|
||||
.Где(Предикат)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
Утверждения = ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
.ИмеетДлинуБольше(0)
|
||||
;
|
||||
|
||||
СЗ_ЗапросТестСлужебныйВызовСервера.ПроверитьПодобноПоРегулярномуВыражению(ТаблицаЗначений);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗапросСУсловиемНеПодобно() Экспорт
|
||||
|
||||
Предикат = СЗ_Запрос.Предикат()
|
||||
.Реквизит("Наименование").НеПодобно("Хлеб")
|
||||
;
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Ссылка, Наименование")
|
||||
.Где(Предикат)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
.ИмеетДлинуБольше(0)
|
||||
;
|
||||
|
||||
СЗ_ЗапросТестСлужебныйВызовСервера.ПроверитьНеПодобноПоРегулярномуВыражению(ТаблицаЗначений);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗапросСУсловиемМежду() Экспорт
|
||||
|
||||
ДатаНачала = Дата("20230601000000");
|
||||
ДатаОкончания = Дата("20230630235959");
|
||||
Предикат = СЗ_Запрос.Предикат()
|
||||
.Реквизит("Дата").Между(ДатаНачала, ДатаОкончания)
|
||||
;
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Документ.ЗаказКлиента")
|
||||
.Выбрать("Ссылка, Дата")
|
||||
.Где(Предикат)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
.ИмеетДлинуБольше(0)
|
||||
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
|
||||
.Реквизит("Дата").Между(ДатаНачала, ДатаОкончания))
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗапросСУсловиемВСписке() Экспорт
|
||||
|
||||
Контекст = ЮТест.КонтекстТеста();
|
||||
|
||||
Предикат = СЗ_Запрос.Предикат()
|
||||
.Реквизит("Ссылка").ВСписке(Контекст.МассивНоменклатуры)
|
||||
;
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Где(Предикат)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
.ИмеетДлину(5)
|
||||
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
|
||||
.Реквизит("Ссылка").ВСписке(Контекст.МассивНоменклатуры))
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗапросСУсловиемНеВСписке() Экспорт
|
||||
|
||||
Контекст = ЮТест.КонтекстТеста();
|
||||
|
||||
Предикат = СЗ_Запрос.Предикат()
|
||||
.Реквизит("Ссылка").НеВСписке(Контекст.МассивНоменклатуры)
|
||||
;
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Где(Предикат)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
.ИмеетДлинуБольше(0)
|
||||
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
|
||||
.Реквизит("Ссылка").ВСписке(Контекст.МассивНоменклатурыНеВСписке))
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Соединения
|
||||
|
||||
Процедура СоединениеПоИсточникуСтроке(ТипСоединения) Экспорт
|
||||
|
||||
ПредикатДляСоединения = СЗ_Запрос.Предикат()
|
||||
.Реквизит("НоменклатураСоединение.Ссылка").Равно("Номенклатура.Родитель")
|
||||
;
|
||||
|
||||
Запрос = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Номенклатура.Ссылка,
|
||||
|НоменклатураСоединение.Ссылка КАК НоменклатураСоединениеСсылка")
|
||||
;
|
||||
Если ТипСоединения = "Левое" Тогда
|
||||
Запрос
|
||||
.ЛевоеСоединение("Справочник.Номенклатура КАК НоменклатураСоединение", ПредикатДляСоединения)
|
||||
;
|
||||
ИначеЕсли ТипСоединения = "Правое" Тогда
|
||||
Запрос
|
||||
.ПравоеСоединение("Справочник.Номенклатура КАК НоменклатураСоединение", ПредикатДляСоединения)
|
||||
;
|
||||
Иначе // Если ТипСоединения = "Внутреннее" Тогда
|
||||
Запрос
|
||||
.ВнутреннееСоединение("Справочник.Номенклатура КАК НоменклатураСоединение", ПредикатДляСоединения)
|
||||
;
|
||||
КонецЕсли;
|
||||
|
||||
ТаблицаЗначений = Запрос.ВТаблицуЗначений();
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("НоменклатураСоединениеСсылка")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЛевоеСоединениеПоИсточникуЗапросу() Экспорт
|
||||
|
||||
ЗапросДляСоединения = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Псевдоним("НоменклатураСоединение")
|
||||
;
|
||||
ПредикатДляСоединения = СЗ_Запрос.Предикат()
|
||||
.Реквизит("Ссылка").Равно("Родитель")
|
||||
;
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Номенклатура.Ссылка,
|
||||
|НоменклатураСоединение.Ссылка КАК НоменклатураСоединениеСсылка")
|
||||
.ЛевоеСоединение(ЗапросДляСоединения, ПредикатДляСоединения)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("НоменклатураСоединениеСсылка")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЛевоеСоединениеБезПредиката() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("РегистрСведений.ПримененияЕНВД")
|
||||
.Выбрать("ПримененияЕНВД.Организация КАК Организация,
|
||||
|ПримененияЕНВДСоединение.Склад КАК Склад")
|
||||
.ЛевоеСоединение("РегистрСведений.ПримененияЕНВД КАК ПримененияЕНВДСоединение")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Организация")
|
||||
.ИмеетСвойство("Склад")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЛевоеСоединениеНесколькоУсловийВПредикате() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Номенклатура.Ссылка,
|
||||
|НоменклатураСоединение.Ссылка КАК НоменклатураСоединениеСсылка")
|
||||
.ЛевоеСоединение("Справочник.Номенклатура КАК НоменклатураСоединение", СЗ_Запрос.Предикат()
|
||||
.Реквизит("НоменклатураСоединение.Ссылка").Равно("Номенклатура.Родитель")
|
||||
.Реквизит("НоменклатураСоединение.ЭтоГруппа").Равно("ИСТИНА"))
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("НоменклатураСоединениеСсылка")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЛевоеСоединениеПредикатЭтоПараметр() Экспорт
|
||||
|
||||
// Подготовка
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"Родитель", СЗ_ЗапросТестСлужебныйВызовСервера.ПолучитьГруппуНоменклатуры()));
|
||||
|
||||
// Выполнение
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Номенклатура.Ссылка,
|
||||
|НоменклатураСоединение.Ссылка КАК НоменклатураСоединениеСсылка")
|
||||
.ЛевоеСоединение("Справочник.Номенклатура КАК НоменклатураСоединение", СЗ_Запрос.Предикат()
|
||||
.Реквизит("НоменклатураСоединение.Родитель").Равно("&Родитель"))
|
||||
.Параметры(МассивПараметров)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
// Проверки
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("НоменклатураСоединениеСсылка")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЛевоеСоединениеБезПсевдонимовВСоединении() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Номенклатура.Ссылка, Номенклатура1.Ссылка")
|
||||
.ЛевоеСоединение("Справочник.Номенклатура", СЗ_Запрос.Предикат()
|
||||
.Реквизит("Ссылка").Равно("Родитель")
|
||||
.Реквизит("ЭтоГруппа").Равно("ИСТИНА"))
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("Ссылка1")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура НесколькоЛевыхСоединений() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Номенклатура.Ссылка, Номенклатура1.Ссылка, Номенклатура2.Ссылка")
|
||||
.ЛевоеСоединение("Справочник.Номенклатура", СЗ_Запрос.Предикат()
|
||||
.Реквизит("Ссылка").Равно("Родитель")
|
||||
.Реквизит("ЭтоГруппа").Равно("ИСТИНА"))
|
||||
.ЛевоеСоединение("Справочник.Номенклатура", СЗ_Запрос.Предикат()
|
||||
.Реквизит("Ссылка").Равно("Родитель")
|
||||
.Реквизит("ЭтоГруппа").Равно("ИСТИНА"))
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений.Количество())
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений[0])
|
||||
.ИмеетСвойство("Ссылка")
|
||||
.ИмеетСвойство("Ссылка1")
|
||||
.ИмеетСвойство("Ссылка2")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ВложенныеЗапросы
|
||||
|
||||
Процедура ИсключениеВложенныйЗапросБезПсевдонима() Экспорт
|
||||
|
||||
ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура");
|
||||
|
||||
Запрос = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос);
|
||||
|
||||
ЮТест.ОжидаетЧто(Запрос)
|
||||
.Метод("ВТаблицуЗначений")
|
||||
.ВыбрасываетИсключение("У вложенного запроса обязательно должен быть псевдоним");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВложенныйЗапрос() Экспорт
|
||||
|
||||
ВложенныйЗапрос = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Псевдоним("ВложенныйЗапрос")
|
||||
;
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос(ВложенныйЗапрос)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Прочее
|
||||
|
||||
Процедура Порядок() Экспорт
|
||||
|
||||
// Выполнение
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Ссылка, ЭтоГруппа")
|
||||
.Упорядочить("ЭтоГруппа, Наименование")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
// Проверки
|
||||
СпсисокЭлементов = Новый СписокЗначений;
|
||||
Сч = 0;
|
||||
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
|
||||
Если Не СтрокаТаблицы.ЭтоГруппа Тогда
|
||||
СпсисокЭлементов.Добавить(Сч);
|
||||
Иначе
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
Сч = Сч + 1;
|
||||
КонецЦикла;
|
||||
СпсисокЭлементов.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
|
||||
Для каждого СтрокаТаблицыЭлементы Из СпсисокЭлементов Цикл
|
||||
ТаблицаЗначений.Удалить(СтрокаТаблицыЭлементы.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
ЮТест.ОжидаетЧто(СпсисокЭлементов.Количество(), "Количество элементов")
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
.ИмеетДлинуБольше(0, "Количество групп")
|
||||
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
|
||||
.Реквизит("ЭтоГруппа").Равно(Истина))
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПорядокУбывания() Экспорт
|
||||
|
||||
// Выполнение
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Выбрать("Ссылка, ЭтоГруппа")
|
||||
.Упорядочить("ЭтоГруппа УБЫВ, Наименование")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
// Проверки
|
||||
СпсисокГрупп = Новый СписокЗначений;
|
||||
Сч = 0;
|
||||
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
|
||||
Если СтрокаТаблицы.ЭтоГруппа Тогда
|
||||
СпсисокГрупп.Добавить(Сч);
|
||||
Иначе
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
Сч = Сч + 1;
|
||||
КонецЦикла;
|
||||
СпсисокГрупп.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
|
||||
Для каждого СтрокаТаблицыГруппы Из СпсисокГрупп Цикл
|
||||
ТаблицаЗначений.Удалить(СтрокаТаблицыГруппы.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
ЮТест.ОжидаетЧто(СпсисокГрупп.Количество(), "Количество групп")
|
||||
.Больше(0)
|
||||
;
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
.ИмеетДлинуБольше(0, "Количество элементов")
|
||||
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
|
||||
.Реквизит("ЭтоГруппа").Равно(Ложь))
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Итоги() Экспорт
|
||||
|
||||
ТаблицаЗначений = СЗ_Запрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.Итоги("ЭтоГруппа")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("Массив")
|
||||
.ИмеетДлинуБольше(0)
|
||||
.ЛюбойЭлементСодержитСвойство("ссылка", Null)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РеальныеЗапросы
|
||||
|
||||
Процедура АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений() Экспорт
|
||||
|
||||
// Подготовка
|
||||
НаименованияАдресныхОбъектов = Новый Массив;
|
||||
НаименованияАдресныхОбъектов.Добавить("Абонентский Ящик");
|
||||
|
||||
// Выполнение
|
||||
Запрос = СЗ_Запрос.НовыйЗапрос("РегистрСведений.УровниСокращенийАдресныхСведений")
|
||||
.Выбрать("Значение КАК Наименование, Сокращение")
|
||||
.Сгруппировать("Значение, Сокращение")
|
||||
.Упорядочить("Наименование");
|
||||
|
||||
Если ТипЗнч(НаименованияАдресныхОбъектов) = Тип("Массив") И НаименованияАдресныхОбъектов.Количество() > 0 Тогда
|
||||
Запрос = Запрос
|
||||
.Где(СЗ_Запрос.Предикат()
|
||||
.Реквизит("Значение").ВСписке(НаименованияАдресныхОбъектов));
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Запрос.ВТаблицуЗначений();
|
||||
|
||||
// Проверки
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетТип("Массив")
|
||||
;
|
||||
ЮТест.ОжидаетЧто(Результат.Количество())
|
||||
.Равно(1)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура ПодготовитьСписокНоменклатуры()
|
||||
|
||||
ВидНоменклатуры = ЮТест.Данные().КонструкторОбъекта("Справочники.ВидыНоменклатуры")
|
||||
.Фикция("Наименование")
|
||||
.Установить("ТипНоменклатуры", ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар"))
|
||||
.Записать()
|
||||
;
|
||||
|
||||
Массив = Новый Массив;
|
||||
|
||||
Для Сч = 1 По 5 Цикл
|
||||
|
||||
Номенклатура = ЮТест.Данные().КонструкторОбъекта("Справочники.Номенклатура")
|
||||
.Фикция("Наименование")
|
||||
.Установить("ВидНоменклатуры", ВидНоменклатуры)
|
||||
.Установить("ТипНоменклатуры", ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар"))
|
||||
.Установить("ИспользованиеХарактеристик",
|
||||
ПредопределенноеЗначение("Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать"))
|
||||
.Записать()
|
||||
;
|
||||
|
||||
Массив.Добавить(Номенклатура);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Контекст = ЮТест.КонтекстТеста();
|
||||
Контекст.Вставить("МассивНоменклатуры", Массив);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
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="fd18e525-b216-4cbe-9e5b-3f44fcf6fcf2">
|
||||
<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,49 @@
|
||||
|
||||
Функция ПолучитьГруппуНоменклатуры() Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
|
||||
| Номенклатура.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| Справочник.Номенклатура КАК Номенклатура
|
||||
|ГДЕ
|
||||
| Номенклатура.ЭтоГруппа";
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Выборка.Следующий();
|
||||
|
||||
Возврат Выборка.Ссылка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьНоменклатуруНеСписке(МассивНоменклатуры) Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = "ВЫБРАТЬ
|
||||
| Номенклатура.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| Справочник.Номенклатура КАК Номенклатура
|
||||
|ГДЕ
|
||||
| Номенклатура.Ссылка НЕ В (&МассивНоменклатуры)";
|
||||
|
||||
Запрос.УстановитьПараметр("МассивНоменклатуры", МассивНоменклатуры);
|
||||
|
||||
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПроверитьПодобноПоРегулярномуВыражению(ТаблицаЗначений) Экспорт
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
|
||||
.Реквизит("Наименование").СодержитСтрокуПоШаблону("(Х|х)леб"))
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверитьНеПодобноПоРегулярномуВыражению(ТаблицаЗначений) Экспорт
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.КаждыйЭлементСоответствуетПредикату(ЮТест.Предикат()
|
||||
.Реквизит("Наименование").НеСодержитСтрокуПоШаблону("(Х|х)леб"))
|
||||
|
||||
КонецПроцедуры
|
@@ -185,8 +185,15 @@
|
||||
|
||||
Если СтруктураСхемыЗапроса.Свойство("Соединения") И ТипЗнч(СтруктураСхемыЗапроса.Соединения) = Тип("Массив") Тогда
|
||||
Для каждого СтруктураСоединения Из СтруктураСхемыЗапроса.Соединения Цикл
|
||||
ИсточникСоединения = Оператор.Источники.Добавить(СтруктураСоединения.ИсточникДанных,
|
||||
СтруктураСоединения.Псевдоним);
|
||||
Если ТипЗнч(СтруктураСоединения.ИсточникДанных) = Тип("Строка") Тогда
|
||||
ИсточникСоединения = Оператор.Источники.Добавить(СтруктураСоединения.ИсточникДанных,
|
||||
СтруктураСоединения.Псевдоним);
|
||||
Иначе
|
||||
ВложенныйЗапрос = ПолучитьЗапрос(СтруктураСоединения.ИсточникДанных);
|
||||
ИсточникСоединения = Оператор.Источники.Добавить(Тип("ВложенныйЗапросСхемыЗапроса"),
|
||||
СтруктураСоединения.Псевдоним);
|
||||
ИсточникСоединения.Источник.Запрос.УстановитьТекстЗапроса(ВложенныйЗапрос);
|
||||
КонецЕсли;
|
||||
Если Оператор.Источники[0].Соединения.Количество() = 0 Тогда
|
||||
Оператор.Источники[0].Соединения.Добавить(ИсточникСоединения);
|
||||
КонецЕсли;
|
||||
|
@@ -1 +1,53 @@
|
||||
// TODO:
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Функция ПолучитьТаблицуЗначений(СтруктураСхемыЗапроса) Экспорт
|
||||
ТаблицаЗначений = СЗ_ПроцессорыСхемЗапросаСлужебный
|
||||
.ПолучитьРезультатЗапроса(СтруктураСхемыЗапроса)
|
||||
.Выгрузить();
|
||||
Возврат ПреобразоватьТаблицуЗначенийВМассивСтруктур(ТаблицаЗначений);
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьМассив(СтруктураСхемыЗапроса, ИмяКолонки) Экспорт
|
||||
Возврат СЗ_ПроцессорыСхемЗапросаСлужебный
|
||||
.ПолучитьРезультатЗапроса(СтруктураСхемыЗапроса)
|
||||
.Выгрузить()
|
||||
.ВыгрузитьКолонку(ИмяКолонки);
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ПреобразоватьТаблицуЗначенийВМассивСтруктур(ТаблицаЗначений)
|
||||
|
||||
Массив = Новый Массив();
|
||||
|
||||
СтруктураСтрокой = "";
|
||||
НужнаЗапятая = Ложь;
|
||||
|
||||
ОписаниеТаблицыЗначений = Новый ОписаниеТипов("ТаблицаЗначений");
|
||||
Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл
|
||||
Если Колонка.ТипЗначения = ОписаниеТаблицыЗначений Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Если НужнаЗапятая Тогда
|
||||
СтруктураСтрокой = СтруктураСтрокой + ",";
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураСтрокой = СтруктураСтрокой + Колонка.Имя;
|
||||
НужнаЗапятая = Истина;
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого Строка Из ТаблицаЗначений Цикл
|
||||
НоваяСтрока = Новый Структура(СтруктураСтрокой);
|
||||
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
|
||||
|
||||
Массив.Добавить(НоваяСтрока);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Массив;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@@ -85,29 +85,31 @@
|
||||
|
||||
Процедура ДобавитьСоединение(СхемаЗапроса, ТипСоединения, ИсточникДанных, Предикат) Экспорт
|
||||
|
||||
МассивСоединений = Новый Массив;
|
||||
Если СхемаЗапроса.Свойство("Соединения") И ТипЗнч(СхемаЗапроса.Поля) = Тип("Массив") Тогда
|
||||
МассивСоединений = СхемаЗапроса.Соединения;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(ИсточникДанных) = Тип("Строка") Тогда
|
||||
|
||||
МассивСоединений = Новый Массив;
|
||||
Если СхемаЗапроса.Свойство("Соединения") И ТипЗнч(СхемаЗапроса.Поля) = Тип("Массив") Тогда
|
||||
МассивСоединений = СхемаЗапроса.Соединения;
|
||||
КонецЕсли;
|
||||
|
||||
Псевдоним = "";
|
||||
Если СтрНайти(ИсточникДанных, " КАК ") > 0 Тогда
|
||||
ИнформацияОбИсточникеДанных = СтрЗаменить(ИсточникДанных, " КАК ", Символы.ПС);
|
||||
ИсточникДанных = СтрПолучитьСтроку(ИнформацияОбИсточникеДанных, 1);
|
||||
Псевдоним = СтрПолучитьСтроку(ИнформацияОбИсточникеДанных, 2);
|
||||
КонецЕсли;
|
||||
|
||||
МассивСоединений.Добавить(Новый Структура("ТипСоединения, ИсточникДанных, Псевдоним, Условие",
|
||||
ТипСоединения, ИсточникДанных, Псевдоним, ПолучитьУсловияСоединения(Предикат)));
|
||||
СхемаЗапроса.Вставить("Соединения", МассивСоединений);
|
||||
|
||||
Иначе // Структура = вложенный запрос
|
||||
|
||||
ВызватьИсключение "Не реализовано!";
|
||||
|
||||
Иначе // Вложенный запрос
|
||||
Если Не ИсточникДанных.Свойство("ПсевдонимИсточника") Или
|
||||
ПустаяСтрока(ИсточникДанных.ПсевдонимИсточника) Тогда
|
||||
|
||||
ВызватьИсключение "ДобавитьСоединение: у вложенного запроса обязательно должен быть псевдоним";
|
||||
КонецЕсли;
|
||||
|
||||
Псевдоним = ИсточникДанных.ПсевдонимИсточника;
|
||||
КонецЕсли;
|
||||
|
||||
МассивСоединений.Добавить(Новый Структура("ТипСоединения, ИсточникДанных, Псевдоним, Условие",
|
||||
ТипСоединения, ИсточникДанных, Псевдоним, ПолучитьУсловияСоединения(Предикат)));
|
||||
СхемаЗапроса.Вставить("Соединения", МассивСоединений);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@@ -4,7 +4,11 @@
|
||||
<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="f5029ad2a148bd504f40bd79fde92ba57c17f10f"/>
|
||||
<Metadata name="CommonModule.СЗ_ЗапросТест.Module" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314.0" configVersion="f4e8ff494307f6fad7b6f05cfc617d4260e068bd"/>
|
||||
<Metadata name="CommonModule.СЗ_ЗапросТестКлиент" id="b37c9dfc-97f9-419e-aef2-d1598bd7f793" configVersion="5359322a8c19378b2e3c1b14d2a9391855efe7df"/>
|
||||
<Metadata name="CommonModule.СЗ_ЗапросТестКлиент.Module" id="b37c9dfc-97f9-419e-aef2-d1598bd7f793.0" configVersion="fe7ea798ca9297828818477ab38354e0cc05dd01"/>
|
||||
<Metadata name="CommonModule.СЗ_ЗапросТестСлужебныйВызовСервера" id="fd18e525-b216-4cbe-9e5b-3f44fcf6fcf2" configVersion="e712d7406cf41efebb6cb460b71efc934d7fda79"/>
|
||||
<Metadata name="CommonModule.СЗ_ЗапросТестСлужебныйВызовСервера.Module" id="fd18e525-b216-4cbe-9e5b-3f44fcf6fcf2.0" configVersion="2996bad07721c51263093d0143fd261dacf6a7e8"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыПредикатовКлиентСервер" id="407489b2-2f4b-467b-9594-621de146e468" configVersion="d0e776fe2161eadb117e389e6d86e40d8f7927fc"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыПредикатовКлиентСервер.Module" id="407489b2-2f4b-467b-9594-621de146e468.0" configVersion="fb94599ea596770fca7e3dd00307a498b92e68e6"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер" id="19b0625e-9f74-4fba-9350-914066ae1034" configVersion="97824f99f8fe96dacf2d8271e35b6b11a89a7f4f"/>
|
||||
@@ -12,23 +16,25 @@
|
||||
<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="849b2ce9024133933142e0b4b2daa77b6009ab6e"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебный.Module" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c.0" configVersion="4f3900cb2dafbf4a589e4ff8d2025432c660f1d7"/>
|
||||
<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.СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера.Module" id="64cc4f13-8ea3-43e0-b530-031a569bfcd0.0" configVersion="d1a3621279ecd64374af1122b787e190dbc22c00"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc" configVersion="8a27beba3300dacb51abfc0f6b4c8711bb7b0b06"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.Module" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc.0" configVersion="68eed8852766199b3cb4b6b05c10ca2ad2c8afdd"/>
|
||||
<Metadata name="CommonModule.СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.Module" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc.0" configVersion="ad147bc139300d286ab5b65727b8a96e03f89370"/>
|
||||
<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="Configuration.СхемаЗапроса" id="727bc241-bb6d-418f-b908-1102fbf1bc00" configVersion="4dd0f6fff3c4507ca269683d93ce6fa75b40356c"/>
|
||||
<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="ed93a31df2cc47c65da51be82b3b052f1f6b94e2"/>
|
||||
<Metadata name="DataProcessor.СЗ_ПроцессорПредикатов" id="12d6eb41-70d9-4802-8fde-b6464e23bf0b" configVersion="7bd25841e01d3196cd731359775f0af93ddbd0d1"/>
|
||||
<Metadata name="DataProcessor.СЗ_ПроцессорПредикатов" id="12d6eb41-70d9-4802-8fde-b6464e23bf0b" configVersion="77365f9ddbe5c04b263b27bebf9b835126f30f67"/>
|
||||
<Metadata name="DataProcessor.СЗ_ПроцессорПредикатов.Form.Форма" id="9ab75485-6c0a-4548-b3cb-fab32ccd351d" configVersion="12570426f46bd4a3dbb5f4c3b28a92c6db858ede"/>
|
||||
<Metadata name="DataProcessor.СЗ_ПроцессорПредикатов.Form.Форма.Form" id="9ab75485-6c0a-4548-b3cb-fab32ccd351d.0" configVersion="2ea90d47439f8f3c9f8eaac893840956ce11928b"/>
|
||||
<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="d16220520ab962c474afa1a8a90054cd0577c32f"/>
|
||||
<Metadata name="DataProcessor.СЗ_ПроцессорСхемЗапроса.Form.Форма.Form" id="04cd8a25-c99d-4da9-ac0f-5703574d079f.0" configVersion="2604eee1201c8910f82770c627590af9e28a4704"/>
|
||||
<Metadata name="DataProcessor.СЗ_ПроцессорСхемЗапроса.ObjectModule" id="7008c53a-3e8a-4432-bff6-500c4145bab5.0" configVersion="b161dc00d93c568e6b15dffb531b4c549538682f"/>
|
||||
<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"/>
|
||||
|
@@ -63,6 +63,8 @@
|
||||
<CommonPicture>СЗ_Логотип</CommonPicture>
|
||||
<CommonModule>СЗ_Запрос</CommonModule>
|
||||
<CommonModule>СЗ_ЗапросТест</CommonModule>
|
||||
<CommonModule>СЗ_ЗапросТестКлиент</CommonModule>
|
||||
<CommonModule>СЗ_ЗапросТестСлужебныйВызовСервера</CommonModule>
|
||||
<CommonModule>СЗ_ПроцессорыПредикатовКлиентСервер</CommonModule>
|
||||
<CommonModule>СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер</CommonModule>
|
||||
<CommonModule>СЗ_ПроцессорыСхемЗапросаКлиентСервер</CommonModule>
|
||||
|
@@ -21,12 +21,14 @@
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<UseStandardCommands>true</UseStandardCommands>
|
||||
<DefaultForm/>
|
||||
<DefaultForm>DataProcessor.СЗ_ПроцессорПредикатов.Form.Форма</DefaultForm>
|
||||
<AuxiliaryForm/>
|
||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||
<ExtendedPresentation/>
|
||||
<Explanation/>
|
||||
</Properties>
|
||||
<ChildObjects/>
|
||||
<ChildObjects>
|
||||
<Form>Форма</Form>
|
||||
</ChildObjects>
|
||||
</DataProcessor>
|
||||
</MetaDataObject>
|
@@ -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="9ab75485-6c0a-4548-b3cb-fab32ccd351d">
|
||||
<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: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,93 @@
|
||||
#Область ОписаниеПеременных
|
||||
|
||||
&НаКлиенте
|
||||
Перем Предикат;
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
&НаКлиенте
|
||||
Функция Реквизит(ИмяРеквизита) Экспорт
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьИмяРеквизита(Предикат, ИмяРеквизита);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Равно(Значение) Экспорт
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьПредикат(Предикат,
|
||||
СЗ_ПроцессорыПредикатовКлиентСервер.Выражения().Равно, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция НеРавно(Значение) Экспорт
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьПредикат(Предикат,
|
||||
СЗ_ПроцессорыПредикатовКлиентСервер.Выражения().НеРавно, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Больше(Значение) Экспорт
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьПредикат(Предикат,
|
||||
СЗ_ПроцессорыПредикатовКлиентСервер.Выражения().Больше, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Меньше(Значение) Экспорт
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьПредикат(Предикат,
|
||||
СЗ_ПроцессорыПредикатовКлиентСервер.Выражения().Меньше, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ВСписке(Значение) Экспорт
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьПредикат(Предикат,
|
||||
СЗ_ПроцессорыПредикатовКлиентСервер.Выражения().ВСписке, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция НеВСписке(Значение) Экспорт
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьПредикат(Предикат,
|
||||
СЗ_ПроцессорыПредикатовКлиентСервер.Выражения().НеВСписке, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Подобно(Значение) Экспорт
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьПредикат(Предикат,
|
||||
СЗ_ПроцессорыПредикатовКлиентСервер.Выражения().Подобно, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция НеПодобно(Значение) Экспорт
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьПредикат(Предикат,
|
||||
СЗ_ПроцессорыПредикатовКлиентСервер.Выражения().НеПодобно, Значение);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Между(НачалоИнтервала, ОкончаниеИнтервала) Экспорт
|
||||
|
||||
Значения = Новый Массив;
|
||||
Значения.Добавить(НачалоИнтервала);
|
||||
Значения.Добавить(ОкончаниеИнтервала);
|
||||
|
||||
СЗ_ПроцессорыПредикатовСлужебныйКлиентСервер.УстановитьПредикат(Предикат,
|
||||
СЗ_ПроцессорыПредикатовКлиентСервер.Выражения().Между, Значения);
|
||||
|
||||
Возврат ЭтотОбъект;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Получить() Экспорт
|
||||
|
||||
Возврат Предикат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@@ -104,26 +104,21 @@
|
||||
//
|
||||
//
|
||||
Функция ЛевоеСоединение(ИсточникДанных, Предикат = Неопределено) Экспорт
|
||||
СоздатьСоединение("Левое", ИсточникДанных, Предикат);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
// TODO: ИсточникДанных может быть структурой? Что делать в этом случае?
|
||||
Если ТипЗнч(ИсточникДанных) = Тип("Строка") Тогда
|
||||
_ИсточникДанных = ИсточникДанных;
|
||||
ИначеЕсли ТипЗнч(ИсточникДанных) = Тип("ОбработкаОбъект.СЗ_ПроцессорСхемЗапроса") Тогда
|
||||
_ИсточникДанных = ИсточникДанных.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "ЛевоеСоединение: неверный тип источника данных";
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Предикат) = Тип("Структура") Или Предикат = Неопределено Тогда
|
||||
_Предикат = Предикат;
|
||||
ИначеЕсли ТипЗнч(Предикат) = Тип("ОбработкаОбъект.СЗ_ПроцессорПредикатов") Тогда
|
||||
_Предикат = Предикат.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "ЛевоеСоединение: неверный тип предиката";
|
||||
КонецЕсли;
|
||||
//
|
||||
//
|
||||
Функция ПравоеСоединение(ИсточникДанных, Предикат = Неопределено) Экспорт
|
||||
СоздатьСоединение("Правое", ИсточникДанных, Предикат);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.ДобавитьСоединение(
|
||||
СхемаЗапроса, "Левое", _ИсточникДанных, _Предикат);
|
||||
//
|
||||
//
|
||||
Функция ВнутреннееСоединение(ИсточникДанных, Предикат = Неопределено) Экспорт
|
||||
СоздатьСоединение("Внутреннее", ИсточникДанных, Предикат);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
@@ -170,6 +165,28 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура СоздатьСоединение(ТипСоединения, ИсточникДанных, Предикат)
|
||||
|
||||
// TODO: ИсточникДанных может быть структурой? Что делать в этом случае?
|
||||
Если ТипЗнч(ИсточникДанных) = Тип("Строка") Тогда
|
||||
_ИсточникДанных = ИсточникДанных;
|
||||
ИначеЕсли ТипЗнч(ИсточникДанных) = Тип("ОбработкаОбъект.СЗ_ПроцессорСхемЗапроса") Тогда
|
||||
_ИсточникДанных = ИсточникДанных.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "ЛевоеСоединение: неверный тип источника данных";
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Предикат) = Тип("Структура") Или Предикат = Неопределено Тогда
|
||||
_Предикат = Предикат;
|
||||
ИначеЕсли ТипЗнч(Предикат) = Тип("ОбработкаОбъект.СЗ_ПроцессорПредикатов") Тогда
|
||||
_Предикат = Предикат.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "ЛевоеСоединение: неверный тип предиката";
|
||||
КонецЕсли;
|
||||
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.ДобавитьСоединение(
|
||||
СхемаЗапроса, ТипСоединения, _ИсточникДанных, _Предикат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
@@ -9,39 +9,56 @@
|
||||
|
||||
&НаКлиенте
|
||||
Процедура УстановитьИсточникДанных(ИсточникДанных, Первые = -1, Различные = Ложь, Разрешенные = Ложь) Экспорт
|
||||
|
||||
_ИсточникДанных = ИсточникДанных;
|
||||
Если ТипЗнч(ИсточникДанных) = Тип("ФормаКлиентскогоПриложения") Тогда
|
||||
_ИсточникДанных = ИсточникДанных.Получить();
|
||||
КонецЕсли;
|
||||
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.УстановитьИсточникДанных(СхемаЗапроса,
|
||||
ИсточникДанных, Первые, Различные, Разрешенные);
|
||||
_ИсточникДанных, Первые, Различные, Разрешенные);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция Псевдоним(ИмяПсевдонима) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьПсевдонимИсточника(СхемаЗапроса, ИмяПсевдонима);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ВТаблицуЗначений() Экспорт
|
||||
ТаблицаЗначений = СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера
|
||||
.ПолучитьРезультатЗапроса(СхемаЗапроса).Выгрузить();
|
||||
.ПолучитьТаблицуЗначений(СхемаЗапроса);
|
||||
Возврат ТаблицаЗначений;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ВМассив(ИмяКолонки) Экспорт
|
||||
ТаблицаЗначений = СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера
|
||||
.ПолучитьРезультатЗапроса(СхемаЗапроса).Выгрузить();
|
||||
Возврат ТаблицаЗначений.ВыгрузитьКолонку(ИмяКолонки);
|
||||
Массив = СЗ_ПроцессорыСхемЗапросаСлужебныйВызовСервера
|
||||
.ПолучитьМассив(СхемаЗапроса, ИмяКолонки);
|
||||
Возврат Массив;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Первые(Количество) Экспорт
|
||||
// TODO:
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьПервые(СхемаЗапроса, Количество);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Различные() Экспорт
|
||||
// TODO:
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьРазличные(СхемаЗапроса);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Разрешенные() Экспорт
|
||||
// TODO:
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьРазрешенные(СхемаЗапроса);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
@@ -64,7 +81,7 @@
|
||||
|
||||
Если ТипЗнч(Предикат) = Тип("Структура") Тогда
|
||||
_Предикат = Предикат;
|
||||
ИначеЕсли ТипЗнч(Предикат) = Тип("ОбработкаОбъект.СЗ_ПроцессорПредикатов") Тогда
|
||||
ИначеЕсли ТипЗнч(Предикат) = Тип("ФормаКлиентскогоПриложения") Тогда
|
||||
_Предикат = Предикат.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "Неверный тип предиката в методе ""Где""";
|
||||
@@ -76,44 +93,40 @@
|
||||
|
||||
&НаКлиенте
|
||||
Функция ЛевоеСоединение(ИсточникДанных, Предикат = Неопределено) Экспорт
|
||||
СоздатьСоединение("Левое", ИсточникДанных, Предикат);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
// TODO: ИсточникДанных может быть структурой? Что делать в этом случае?
|
||||
Если ТипЗнч(ИсточникДанных) = Тип("Строка") Тогда
|
||||
_ИсточникДанных = ИсточникДанных;
|
||||
ИначеЕсли ТипЗнч(ИсточникДанных) = Тип("ОбработкаОбъект.СЗ_ПроцессорСхемЗапроса") Тогда
|
||||
_ИсточникДанных = ИсточникДанных.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "ЛевоеСоединение: неверный тип источника данных";
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Предикат) = Тип("Структура") Или Предикат = Неопределено Тогда
|
||||
_Предикат = Предикат;
|
||||
ИначеЕсли ТипЗнч(Предикат) = Тип("ОбработкаОбъект.СЗ_ПроцессорПредикатов") Тогда
|
||||
_Предикат = Предикат.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "ЛевоеСоединение: неверный тип предиката";
|
||||
КонецЕсли;
|
||||
&НаКлиенте
|
||||
Функция ПравоеСоединение(ИсточникДанных, Предикат = Неопределено) Экспорт
|
||||
СоздатьСоединение("Правое", ИсточникДанных, Предикат);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.ДобавитьСоединение(
|
||||
СхемаЗапроса, "Левое", ИсточникДанных, _Предикат);
|
||||
&НаКлиенте
|
||||
Функция ВнутреннееСоединение(ИсточникДанных, Предикат = Неопределено) Экспорт
|
||||
СоздатьСоединение("Внутреннее", ИсточникДанных, Предикат);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Сгруппировать(Поля) Экспорт
|
||||
// TODO:
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьГруппировку(СхемаЗапроса, Поля);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Упорядочить(Поля) Экспорт
|
||||
// TODO:
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьПорядок(СхемаЗапроса, Поля);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Итоги() Экспорт
|
||||
// TODO:
|
||||
Функция Итоги(Поля) Экспорт
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьИтоги(СхемаЗапроса, Поля);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
@@ -131,3 +144,32 @@
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СоздатьСоединение(ТипСоединения, ИсточникДанных, Предикат)
|
||||
|
||||
// TODO: ИсточникДанных может быть структурой? Что делать в этом случае?
|
||||
Если ТипЗнч(ИсточникДанных) = Тип("Строка") Тогда
|
||||
_ИсточникДанных = ИсточникДанных;
|
||||
ИначеЕсли ТипЗнч(ИсточникДанных) = Тип("ФормаКлиентскогоПриложения") Тогда
|
||||
_ИсточникДанных = ИсточникДанных.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "ЛевоеСоединение: неверный тип источника данных";
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Предикат) = Тип("Структура") Или Предикат = Неопределено Тогда
|
||||
_Предикат = Предикат;
|
||||
ИначеЕсли ТипЗнч(Предикат) = Тип("ФормаКлиентскогоПриложения") Тогда
|
||||
_Предикат = Предикат.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "ЛевоеСоединение: неверный тип предиката";
|
||||
КонецЕсли;
|
||||
|
||||
СЗ_ПроцессорыСхемЗапросаСлужебныйКлиентСервер.ДобавитьСоединение(
|
||||
СхемаЗапроса, ТипСоединения, _ИсточникДанных, _Предикат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
Reference in New Issue
Block a user