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:
63
docs/docs/lib-features/vtables.md
Normal file
63
docs/docs/lib-features/vtables.md
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
sidebar_position: 7
|
||||
tags: [Функционал]
|
||||
---
|
||||
|
||||
# Виртуальные таблицы
|
||||
|
||||
```bsl
|
||||
Запрос = СхЗапрос.НовыйЗапрос("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
.ВТаблицуЗначений();
|
||||
```
|
||||
|
||||
## Параметры виртульных таблиц
|
||||
|
||||
```bsl
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"НаДату", ТекущаяДатаСеанса()));
|
||||
|
||||
Запрос = СхЗапрос.НовыйЗапрос("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
// highlight-next-line
|
||||
.ПараметрВиртуальнойТаблицы(1, "&НаДату")
|
||||
.Параметры(МассивПараметров)
|
||||
.ВТаблицуЗначений();
|
||||
```
|
||||
|
||||
## Условия в параметрах виртульных таблиц
|
||||
|
||||
### Предикатом
|
||||
|
||||
```bsl
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"НаДату", ТекущаяДатаСеанса()));
|
||||
|
||||
ТаблицаЗначений = СхЗапрос.НовыйЗапрос("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
.ПараметрВиртуальнойТаблицы(1, "&НаДату")
|
||||
// highlight-start
|
||||
.ПараметрВиртуальнойТаблицы(2, СхЗапрос.Предикат()
|
||||
.Реквизит("Валюта").Равно(Валюта))
|
||||
// highlight-end
|
||||
.Параметры(МассивПараметров)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
```
|
||||
|
||||
### Строкой
|
||||
|
||||
```bsl
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"НаДату", ТекущаяДатаСеанса()));
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"Валюта", Валюта));
|
||||
|
||||
ТаблицаЗначений = СхЗапрос.НовыйЗапрос("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
.ПараметрВиртуальнойТаблицы(1, "&НаДату")
|
||||
// highlight-next-line
|
||||
.ПараметрВиртуальнойТаблицы(2, "Валюта = &Валюта")
|
||||
.Параметры(МассивПараметров)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
```
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "fluent-request-schema-1c",
|
||||
"version": "0.0.1",
|
||||
"version": "0.0.4",
|
||||
"scripts": {
|
||||
"build": "npm run build:config && npm run build:extension",
|
||||
"build:config": "cd scripts ",
|
||||
|
@@ -74,6 +74,27 @@
|
||||
.ДобавитьТест("Порядок")
|
||||
.ДобавитьТест("ПорядокУбывания")
|
||||
.ДобавитьТест("Итоги")
|
||||
.ДобавитьТестовыйНабор("СЗ: Виртуальные таблицы")
|
||||
.ДобавитьТест("СрезПоследних")
|
||||
.ДобавитьТест("СрезПоследнихСПараметром")
|
||||
.ДобавитьТест("СрезПоследнихСФильтром")
|
||||
.Перед("Перед_СрезПоследнихСФильтром")
|
||||
.ДобавитьТест("СрезПоследнихСоСложнымФильтром")
|
||||
.Перед("Перед_СрезПоследнихСоСложнымФильтром")
|
||||
.ДобавитьТест("СрезПоследнихСПараметромИФильтром")
|
||||
.Перед("Перед_СрезПоследнихСПараметромИФильтром")
|
||||
.ДобавитьТест("СрезПоследнихСПараметромИФильтромВОбратномПорядке")
|
||||
.Перед("Перед_СрезПоследнихСПараметромИФильтромВОбратномПорядке")
|
||||
.ДобавитьТест("НеВиртуальнаяТаблицаСПараметромВиртуальнойТаблицы")
|
||||
.ДобавитьТест("ОбъединениеДвухВиртуальныхТаблицСПараметрами")
|
||||
.Перед("Перед_ОбъединениеДвухВиртуальныхТаблицСПараметрами")
|
||||
.ДобавитьТест("ВиртуальнаяТаблицаВоВложенномЗапросе")
|
||||
.ДобавитьТест("ПараметровВиртуальнойТаблицыБольшеЧемНужно")
|
||||
.Перед("Перед_ПараметровВиртуальнойТаблицыБольшеЧемНужно")
|
||||
.ДобавитьТест("ПараметрВиртуальнойТаблицыПредикатом")
|
||||
.Перед("Перед_ПараметрВиртуальнойТаблицыПредикатом")
|
||||
.ДобавитьТест("ПараметрВиртуальнойТаблицыСоСложнымПредикатом")
|
||||
.Перед("Перед_ПараметрВиртуальнойТаблицыСоСложнымПредикатом")
|
||||
.ДобавитьТестовыйНабор("СЗ: Реальные запросы")
|
||||
.ДобавитьТест("АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений")
|
||||
.Перед("Перед_АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений")
|
||||
@@ -112,6 +133,57 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область ВиртуальныеТаблицы
|
||||
|
||||
Процедура Перед_СрезПоследнихСФильтром() Экспорт
|
||||
|
||||
СоздатьВалютуИУстановитьКурс();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Перед_СрезПоследнихСоСложнымФильтром() Экспорт
|
||||
|
||||
СоздатьВалютуИУстановитьКурс();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Перед_СрезПоследнихСПараметромИФильтром() Экспорт
|
||||
|
||||
СоздатьВалютуИУстановитьКурс();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Перед_СрезПоследнихСПараметромИФильтромВОбратномПорядке() Экспорт
|
||||
|
||||
СоздатьВалютуИУстановитьКурс();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Перед_ОбъединениеДвухВиртуальныхТаблицСПараметрами() Экспорт
|
||||
|
||||
СоздатьВалютуИУстановитьКурс("Валюта1");
|
||||
СоздатьВалютуИУстановитьКурс("Валюта2");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Перед_ПараметровВиртуальнойТаблицыБольшеЧемНужно() Экспорт
|
||||
|
||||
СоздатьВалютуИУстановитьКурс();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Перед_ПараметрВиртуальнойТаблицыПредикатом() Экспорт
|
||||
|
||||
СоздатьВалютуИУстановитьКурс();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Перед_ПараметрВиртуальнойТаблицыСоСложнымПредикатом() Экспорт
|
||||
|
||||
СоздатьВалютуИУстановитьКурс();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Перед_АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений() Экспорт
|
||||
|
||||
Для Сч = 1 По 3 Цикл
|
||||
@@ -133,6 +205,8 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Тесты
|
||||
|
||||
#Область Базовые
|
||||
@@ -1342,6 +1416,264 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ВиртуальныеТаблицы
|
||||
|
||||
Процедура СрезПоследних() Экспорт
|
||||
|
||||
ТаблицаЗначений = СхЗапрос.НовыйЗапрос("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ РегистрСведений.КурсыВалют.СрезПоследних");
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
.ИмеетДлину(Запрос.Выполнить().Выгрузить().Количество())
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СрезПоследнихСПараметром() Экспорт
|
||||
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"НаДату", ТекущаяДатаСеанса()));
|
||||
|
||||
ТаблицаЗначений = СхЗапрос.НовыйЗапрос("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
.ПараметрВиртуальнойТаблицы(1, "&НаДату")
|
||||
.Параметры(МассивПараметров)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ РегистрСведений.КурсыВалют.СрезПоследних");
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
.ИмеетДлину(Запрос.Выполнить().Выгрузить().Количество())
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СрезПоследнихСФильтром() Экспорт
|
||||
|
||||
Контекст = ЮТест.КонтекстТеста();
|
||||
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"Валюта", Контекст.Валюта));
|
||||
|
||||
ТаблицаЗначений = СхЗапрос.НовыйЗапрос("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
.ПараметрВиртуальнойТаблицы(2, "Валюта = &Валюта")
|
||||
.Параметры(МассивПараметров)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
.ИмеетДлину(1)
|
||||
.Свойство("[0].Валюта").Равно(Контекст.Валюта)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СрезПоследнихСоСложнымФильтром() Экспорт
|
||||
|
||||
Контекст = ЮТест.КонтекстТеста();
|
||||
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"Валюта", Контекст.Валюта));
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"Курс", Контекст.Курс));
|
||||
|
||||
ТаблицаЗначений = СхЗапрос.НовыйЗапрос("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
.ПараметрВиртуальнойТаблицы(2, "Валюта = &Валюта И Курс = &Курс")
|
||||
.Параметры(МассивПараметров)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
.ИмеетДлину(1)
|
||||
.Свойство("[0].Валюта").Равно(Контекст.Валюта)
|
||||
.Свойство("[0].Курс").Равно(Контекст.Курс)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СрезПоследнихСПараметромИФильтром() Экспорт
|
||||
|
||||
Контекст = ЮТест.КонтекстТеста();
|
||||
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"НаДату", ТекущаяДатаСеанса()));
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"Валюта", Контекст.Валюта));
|
||||
|
||||
ТаблицаЗначений = СхЗапрос.НовыйЗапрос("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
.ПараметрВиртуальнойТаблицы(1, "&НаДату")
|
||||
.ПараметрВиртуальнойТаблицы(2, "Валюта = &Валюта")
|
||||
.Параметры(МассивПараметров)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
.ИмеетДлину(1)
|
||||
.Свойство("[0].Валюта").Равно(Контекст.Валюта)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СрезПоследнихСПараметромИФильтромВОбратномПорядке() Экспорт
|
||||
|
||||
Контекст = ЮТест.КонтекстТеста();
|
||||
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"НаДату", ТекущаяДатаСеанса()));
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"Валюта", Контекст.Валюта));
|
||||
|
||||
ТаблицаЗначений = СхЗапрос.НовыйЗапрос("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
.ПараметрВиртуальнойТаблицы(2, "Валюта = &Валюта")
|
||||
.ПараметрВиртуальнойТаблицы(1, "&НаДату")
|
||||
.Параметры(МассивПараметров)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
.ИмеетДлину(1)
|
||||
.Свойство("[0].Валюта").Равно(Контекст.Валюта)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура НеВиртуальнаяТаблицаСПараметромВиртуальнойТаблицы() Экспорт
|
||||
|
||||
ТаблицаЗначений = СхЗапрос.НовыйЗапрос("Справочник.Номенклатура")
|
||||
.ПараметрВиртуальнойТаблицы(1, "&НаДату")
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
// TODO:
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбъединениеДвухВиртуальныхТаблицСПараметрами() Экспорт
|
||||
|
||||
Контекст = ЮТест.КонтекстТеста();
|
||||
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"Валюта1", Контекст.Валюта1));
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"Валюта2", Контекст.Валюта2));
|
||||
|
||||
ТаблицаЗначений = СхЗапрос.НовыйЗапрос("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
.ПараметрВиртуальнойТаблицы(2, "Валюта = &Валюта1")
|
||||
.ОбъединитьВсе("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
.ПараметрВиртуальнойТаблицы(2, "Валюта = &Валюта2")
|
||||
.Параметры(МассивПараметров)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
.ИмеетДлину(2)
|
||||
.Свойство("[0].Валюта").Равно(Контекст.Валюта1)
|
||||
.Свойство("[1].Валюта").Равно(Контекст.Валюта2)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВиртуальнаяТаблицаВоВложенномЗапросе() Экспорт
|
||||
|
||||
// TODO:
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПараметровВиртуальнойТаблицыБольшеЧемНужно() Экспорт
|
||||
|
||||
Контекст = ЮТест.КонтекстТеста();
|
||||
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"НаДату", ТекущаяДатаСеанса()));
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"Валюта", Контекст.Валюта));
|
||||
|
||||
ТаблицаЗначений = СхЗапрос.НовыйЗапрос("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
.ПараметрВиртуальнойТаблицы(1, "&НаДату")
|
||||
.ПараметрВиртуальнойТаблицы(2, "Валюта = &Валюта")
|
||||
.ПараметрВиртуальнойТаблицы(3, "КакойТоЛишнийПараметр")
|
||||
.Параметры(МассивПараметров)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
.ИмеетДлину(1)
|
||||
.Свойство("[0].Валюта").Равно(Контекст.Валюта)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПараметрВиртуальнойТаблицыПредикатом() Экспорт
|
||||
|
||||
Контекст = ЮТест.КонтекстТеста();
|
||||
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"НаДату", ТекущаяДатаСеанса()));
|
||||
|
||||
ТаблицаЗначений = СхЗапрос.НовыйЗапрос("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
.ПараметрВиртуальнойТаблицы(1, "&НаДату")
|
||||
.ПараметрВиртуальнойТаблицы(2, СхЗапрос.Предикат()
|
||||
.Реквизит("Валюта").Равно(Контекст.Валюта))
|
||||
.Параметры(МассивПараметров)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
.ИмеетДлину(1)
|
||||
.Свойство("[0].Валюта").Равно(Контекст.Валюта)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПараметрВиртуальнойТаблицыСоСложнымПредикатом() Экспорт
|
||||
|
||||
Контекст = ЮТест.КонтекстТеста();
|
||||
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
"НаДату", ТекущаяДатаСеанса()));
|
||||
|
||||
ТаблицаЗначений = СхЗапрос.НовыйЗапрос("РегистрСведений.КурсыВалют.СрезПоследних")
|
||||
.ПараметрВиртуальнойТаблицы(1, "&НаДату")
|
||||
.ПараметрВиртуальнойТаблицы(2, СхЗапрос.Предикат()
|
||||
.Реквизит("Валюта").Равно(Контекст.Валюта)
|
||||
.Реквизит("Курс").Равно(Контекст.Курс)
|
||||
)
|
||||
.Параметры(МассивПараметров)
|
||||
.ВТаблицуЗначений()
|
||||
;
|
||||
|
||||
ЮТест.ОжидаетЧто(ТаблицаЗначений)
|
||||
.ИмеетТип("ТаблицаЗначений")
|
||||
.ИмеетДлину(1)
|
||||
.Свойство("[0].Валюта").Равно(Контекст.Валюта)
|
||||
.Свойство("[0].Курс").Равно(Контекст.Курс)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РеальныеЗапросы
|
||||
|
||||
Процедура АдресныйКлассификаторСлужебный_ТаблицаАдресныхСокращений() Экспорт
|
||||
@@ -1409,4 +1741,27 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СоздатьВалютуИУстановитьКурс(НаименованиеПараметра = "Валюта")
|
||||
|
||||
Валюта = ЮТест.Данные().КонструкторОбъекта("Справочники.Валюты")
|
||||
.Фикция("Наименование")
|
||||
.Записать()
|
||||
;
|
||||
|
||||
Курс = ЮТест.Данные().СлучайноеЧисло(2, 100, 2);
|
||||
|
||||
ЮТест.Данные().КонструкторОбъекта("РегистрСведений.КурсыВалют")
|
||||
.Установить("Период", ТекущаяДатаСеанса())
|
||||
.Установить("Валюта", Валюта)
|
||||
.Установить("Курс", Курс)
|
||||
.Установить("Кратность", 1)
|
||||
.Записать()
|
||||
;
|
||||
|
||||
Контекст = ЮТест.КонтекстТеста();
|
||||
Контекст.Вставить(НаименованиеПараметра, Валюта);
|
||||
Контекст.Вставить("Курс", Курс);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
@@ -104,7 +104,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(СтруктураСхемыЗапроса.ИсточникДанных) = Тип("Строка") Тогда
|
||||
Оператор.Источники.Добавить(СтруктураСхемыЗапроса.ИсточникДанных);
|
||||
ИсточникСхемыЗапроса = Оператор.Источники.Добавить(СтруктураСхемыЗапроса.ИсточникДанных);
|
||||
Иначе
|
||||
СтруктураСхемыВложенногоЗапроса = СтруктураСхемыЗапроса.ИсточникДанных;
|
||||
Если Не СтруктураСхемыВложенногоЗапроса.Свойство("ПсевдонимИсточника") Или
|
||||
@@ -120,6 +120,20 @@
|
||||
ИсточникСхемыЗапроса.Источник.Запрос.УстановитьТекстЗапроса(ВложенныйЗапрос);
|
||||
КонецЕсли;
|
||||
|
||||
Если СтруктураСхемыЗапроса.Свойство("ПараметрыВиртуальнойТаблицы") И ТипЗнч(СтруктураСхемыЗапроса.ПараметрыВиртуальнойТаблицы) = Тип("Массив") Тогда
|
||||
Для Сч = 1 По СтруктураСхемыЗапроса.ПараметрыВиртуальнойТаблицы.Количество() Цикл
|
||||
Если Сч > ИсточникСхемыЗапроса.Источник.Параметры.Количество() Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
Если СтруктураСхемыЗапроса.ПараметрыВиртуальнойТаблицы[Сч - 1] = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ИсточникСхемыЗапроса.Источник.Параметры[Сч - 1].Выражение =
|
||||
Новый ВыражениеСхемыЗапроса(СтруктураСхемыЗапроса.ПараметрыВиртуальнойТаблицы[Сч - 1]);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Оператор;
|
||||
|
||||
КонецФункции
|
||||
@@ -311,11 +325,11 @@
|
||||
Оператор.ТипОбъединения = ТипОбъединенияСхемыЗапроса.Объединить;
|
||||
КонецЕсли;
|
||||
Если ТипЗнч(ЭлементОбъединения.СтруктураСхемыЗапроса.ИсточникДанных) = Тип("Строка") Тогда
|
||||
Оператор.Источники.Добавить(ЭлементОбъединения.СтруктураСхемыЗапроса.ИсточникДанных);
|
||||
ИсточникСхемыЗапроса = Оператор.Источники.Добавить(ЭлементОбъединения.СтруктураСхемыЗапроса.ИсточникДанных);
|
||||
ДобавитьДанныеЗапроса(ЗапросПакета, Оператор, Запрос,
|
||||
ЭлементОбъединения.СтруктураСхемыЗапроса);
|
||||
ИначеЕсли ТипЗнч(ЭлементОбъединения.СтруктураСхемыЗапроса.ИсточникДанных.ИсточникДанных) = Тип("Строка") Тогда
|
||||
Оператор.Источники.Добавить(ЭлементОбъединения.СтруктураСхемыЗапроса.ИсточникДанных.ИсточникДанных);
|
||||
ИсточникСхемыЗапроса = Оператор.Источники.Добавить(ЭлементОбъединения.СтруктураСхемыЗапроса.ИсточникДанных.ИсточникДанных);
|
||||
ДобавитьДанныеЗапроса(ЗапросПакета, Оператор, Запрос,
|
||||
ЭлементОбъединения.СтруктураСхемыЗапроса.ИсточникДанных);
|
||||
Иначе
|
||||
@@ -337,6 +351,20 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭлементОбъединения.Свойство("ПараметрыВиртуальнойТаблицы") И ТипЗнч(ЭлементОбъединения.ПараметрыВиртуальнойТаблицы) = Тип("Массив") Тогда
|
||||
Для Сч = 1 По ЭлементОбъединения.ПараметрыВиртуальнойТаблицы.Количество() Цикл
|
||||
Если Сч > ИсточникСхемыЗапроса.Источник.Параметры.Количество() Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
Если СтруктураСхемыЗапроса.ПараметрыВиртуальнойТаблицы[Сч - 1] = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ИсточникСхемыЗапроса.Источник.Параметры[Сч - 1].Выражение =
|
||||
Новый ВыражениеСхемыЗапроса(ЭлементОбъединения.ПараметрыВиртуальнойТаблицы[Сч - 1]);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
|
@@ -77,6 +77,36 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьПараметрВиртуальнойТаблицы(СхемаЗапроса, Номер, Выражение) Экспорт
|
||||
|
||||
МассивОбъединений = Новый Массив;
|
||||
Если СхемаЗапроса.Свойство("Объединения") И ТипЗнч(СхемаЗапроса.Объединения) = Тип("Массив") Тогда
|
||||
МассивОбъединений = СхемаЗапроса.Объединения;
|
||||
КонецЕсли;
|
||||
|
||||
МассивПараметров = Новый Массив;
|
||||
Если СхемаЗапроса.Свойство("Параметры") И ТипЗнч(СхемаЗапроса.Параметры) = Тип("Массив") Тогда
|
||||
МассивПараметров = СхемаЗапроса.Параметры;
|
||||
КонецЕсли;
|
||||
|
||||
Если МассивОбъединений.Количество() = 0 Тогда
|
||||
СхемаЗапроса.Вставить("ПараметрыВиртуальнойТаблицы",
|
||||
ПолучитьПараметрыВиртуальнойТаблицы(СхемаЗапроса, Номер, Выражение, МассивПараметров));
|
||||
Иначе
|
||||
|
||||
ПоследнееОбъединение = МассивОбъединений[МассивОбъединений.Количество() - 1];
|
||||
ПоследнееОбъединение.Вставить("ПараметрыВиртуальнойТаблицы",
|
||||
ПолучитьПараметрыВиртуальнойТаблицы(ПоследнееОбъединение, Номер, Выражение, МассивПараметров));
|
||||
|
||||
МассивОбъединений[МассивОбъединений.Количество() - 1] = ПоследнееОбъединение;
|
||||
СхемаЗапроса.Объединения = МассивОбъединений;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
СхемаЗапроса.Вставить("Параметры", МассивПараметров);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьУсловие(СхемаЗапроса, Предикат) Экспорт
|
||||
|
||||
СхемаЗапроса.Вставить("Условия", ПолучитьУсловияОтбора(СхемаЗапроса, Предикат));
|
||||
@@ -241,17 +271,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Условия = ПолучитьУсловияОтбора(СхемаЗапроса, Предикат);
|
||||
|
||||
УсловиеСтрокой = "";
|
||||
Для каждого Условие Из Условия Цикл
|
||||
Если Не ПустаяСтрока(УсловиеСтрокой) Тогда
|
||||
УсловиеСтрокой = УсловиеСтрокой + " И ";
|
||||
КонецЕсли;
|
||||
|
||||
УсловиеСтрокой = УсловиеСтрокой + Условие.УсловиеСтрокой;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
Условие.ИмяПараметра, Условие.Значение));
|
||||
КонецЦикла;
|
||||
УсловиеСтрокой = ПолучитьУсловияСтрокой(Условия, МассивПараметров);
|
||||
|
||||
ПриведенноеЗначениеИстина = ПривестиЗначение(ЗначениеИстина);
|
||||
ПриведенноеЗначениеЛожь = ПривестиЗначение(ЗначениеЛожь);
|
||||
@@ -476,6 +496,46 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// СхемаЗапроса может быть или структурой запроса или структурой объединения,
|
||||
// так что установка каких-то общих данных запроса, типа парметров запроса, надо
|
||||
// выполнять вне пределов этой функции. Для этого и передаётся МассивПараметров
|
||||
Функция ПолучитьПараметрыВиртуальнойТаблицы(СхемаЗапроса, Номер, Выражение, МассивПараметров)
|
||||
|
||||
ПараметрыВиртуальнойТаблицы = Новый Массив;
|
||||
Если СхемаЗапроса.Свойство("ПараметрыВиртуальнойТаблицы") И ТипЗнч(СхемаЗапроса.ПараметрыВиртуальнойТаблицы) = Тип("Массив") Тогда
|
||||
ПараметрыВиртуальнойТаблицы = СхемаЗапроса.ПараметрыВиртуальнойТаблицы;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыВиртуальнойТаблицы.Количество() >= Номер Тогда
|
||||
Если ТипЗнч(Выражение) = Тип("Строка") Тогда
|
||||
ПараметрыВиртуальнойТаблицы[Номер - 1] = Выражение;
|
||||
Иначе
|
||||
Условия = ПолучитьУсловияОтбора(СхемаЗапроса, Выражение);
|
||||
УсловиеСтрокой = ПолучитьУсловияСтрокой(Условия, МассивПараметров);
|
||||
|
||||
ПараметрыВиртуальнойТаблицы.Добавить(УсловиеСтрокой);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
Для Сч = ПараметрыВиртуальнойТаблицы.Количество() По Номер - 1 Цикл
|
||||
Если Сч = Номер - 1 Тогда
|
||||
Если ТипЗнч(Выражение) = Тип("Строка") Тогда
|
||||
ПараметрыВиртуальнойТаблицы.Добавить(Выражение);
|
||||
Иначе
|
||||
Условия = ПолучитьУсловияОтбора(СхемаЗапроса, Выражение);
|
||||
УсловиеСтрокой = ПолучитьУсловияСтрокой(Условия, МассивПараметров);
|
||||
|
||||
ПараметрыВиртуальнойТаблицы.Добавить(УсловиеСтрокой);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ПараметрыВиртуальнойТаблицы.Добавить();
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ПараметрыВиртуальнойТаблицы;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьУсловияОтбора(СхемаЗапроса, Предикат)
|
||||
|
||||
МассивУсловий = Новый Массив;
|
||||
@@ -604,4 +664,21 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьУсловияСтрокой(Условия, МассивПараметров)
|
||||
|
||||
УсловиеСтрокой = "";
|
||||
Для каждого Условие Из Условия Цикл
|
||||
Если Не ПустаяСтрока(УсловиеСтрокой) Тогда
|
||||
УсловиеСтрокой = УсловиеСтрокой + " И ";
|
||||
КонецЕсли;
|
||||
|
||||
УсловиеСтрокой = УсловиеСтрокой + Условие.УсловиеСтрокой;
|
||||
МассивПараметров.Добавить(Новый Структура("ИмяПараметра, Значение",
|
||||
Условие.ИмяПараметра, Условие.Значение));
|
||||
КонецЦикла;
|
||||
|
||||
Возврат УсловиеСтрокой;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@@ -2,41 +2,41 @@
|
||||
<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="0f166080406b4803d2bed7934bfc40812f1abe1b"/>
|
||||
<Metadata name="CommonModule.СхЗапрос.Module" id="5f1605a0-4e63-4339-b2cc-44e115be6ed7.0" configVersion="cadb56f56e948833a14dfc1e5588b4985420427b"/>
|
||||
<Metadata name="CommonModule.СхЗапрос.Module" id="5f1605a0-4e63-4339-b2cc-44e115be6ed7.0" configVersion="01f7d66cc88798fa8490fec1eee001bda436f894"/>
|
||||
<Metadata name="CommonModule.СхЗапросТест" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314" configVersion="e4cd1d3ae5b3dfc796a93963e27ac1808ac21bcc"/>
|
||||
<Metadata name="CommonModule.СхЗапросТест.Module" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314.0" configVersion="ead991640c2583e96d7950d80f10fe68f5f02cdc"/>
|
||||
<Metadata name="CommonModule.СхЗапросТест.Module" id="52ab0c6f-4fa1-4913-b37e-460ab1e44314.0" configVersion="2ff8449badb02424fd4c5d9ae4d0bd7039517b96"/>
|
||||
<Metadata name="CommonModule.СхЗапросТестКлиент" id="b37c9dfc-97f9-419e-aef2-d1598bd7f793" configVersion="abddeb6317bbb90599f5d3a6800d916974d522b9"/>
|
||||
<Metadata name="CommonModule.СхЗапросТестКлиент.Module" id="b37c9dfc-97f9-419e-aef2-d1598bd7f793.0" configVersion="0f4d03e494116e0a169ac79a89449bc6fe8b680c"/>
|
||||
<Metadata name="CommonModule.СхЗапросТестКлиент.Module" id="b37c9dfc-97f9-419e-aef2-d1598bd7f793.0" configVersion="0cf16f4b019969d51c827533f42c6077afd22d7a"/>
|
||||
<Metadata name="CommonModule.СхЗапросТестСлужебныйВызовСервера" id="fd18e525-b216-4cbe-9e5b-3f44fcf6fcf2" configVersion="eb43fe5ee123d7869a0578d44bd110f4e29ed798"/>
|
||||
<Metadata name="CommonModule.СхЗапросТестСлужебныйВызовСервера.Module" id="fd18e525-b216-4cbe-9e5b-3f44fcf6fcf2.0" configVersion="e6a50bf7d3b4661197d11e0031a81a0c411be09b"/>
|
||||
<Metadata name="CommonModule.СхЗапросТестСлужебныйВызовСервера.Module" id="fd18e525-b216-4cbe-9e5b-3f44fcf6fcf2.0" configVersion="e8af97ee25e58839bdbc25ce8b47734cc9f0dafa"/>
|
||||
<Metadata name="CommonModule.СхОбщегоНазначенийКлиентСервер" id="54eb4132-1b61-4d01-ba96-ff4bfe65f6f8" configVersion="f0ddd8cc8c3ab867a2416783d887754c13bd55fc"/>
|
||||
<Metadata name="CommonModule.СхОбщегоНазначенийКлиентСервер.Module" id="54eb4132-1b61-4d01-ba96-ff4bfe65f6f8.0" configVersion="82370929e314ec3d1e0e23f467f2d9dde948a99d"/>
|
||||
<Metadata name="CommonModule.СхОбщегоНазначенийКлиентСервер.Module" id="54eb4132-1b61-4d01-ba96-ff4bfe65f6f8.0" configVersion="100c0eff1f02587e1592196aa90869423843d302"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыПредикатовКлиентСервер" id="407489b2-2f4b-467b-9594-621de146e468" configVersion="375a4cad162b05500d054bbc6a6b2eb5c3c17a89"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыПредикатовКлиентСервер.Module" id="407489b2-2f4b-467b-9594-621de146e468.0" configVersion="08673b19374f9a17b5f923c53925186c20107924"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыПредикатовКлиентСервер.Module" id="407489b2-2f4b-467b-9594-621de146e468.0" configVersion="b9148099348169f75ac880beef1cf6f94c80150e"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыПредикатовСлужебныйКлиентСервер" id="19b0625e-9f74-4fba-9350-914066ae1034" configVersion="cea811bfa991650b7bd13624fbc5b68375f054c1"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыПредикатовСлужебныйКлиентСервер.Module" id="19b0625e-9f74-4fba-9350-914066ae1034.0" configVersion="70057051b2459ccacd30c8b668e219f05c0a7476"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыПредикатовСлужебныйКлиентСервер.Module" id="19b0625e-9f74-4fba-9350-914066ae1034.0" configVersion="7da4e4a3855959ef4fcd3a66cae12bc887e0f33f"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаКлиентСервер" id="a3e5bf50-2154-477f-9355-29b0930a73c5" configVersion="d5dc79a29726742dd44754fd1200ed961e5eb47b"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаКлиентСервер.Module" id="a3e5bf50-2154-477f-9355-29b0930a73c5.0" configVersion="0dd0df1608449960758e6e58dd0c3ac8a20a1610"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаКлиентСервер.Module" id="a3e5bf50-2154-477f-9355-29b0930a73c5.0" configVersion="76de541c6025c8a4a6d6ec7907e2c4f08552fe66"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебный" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c" configVersion="f8a3be5d8b2e88a3c91aef9302812d9a7843318c"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебный.Module" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c.0" configVersion="01602b4239886aefd28910c38e45db2d9e311bd4"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебный.Module" id="fd5aeea0-9a03-452d-ba1e-81c816846c6c.0" configVersion="196072be4c421b069557dd889b266ace00bb5076"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебныйВызовСервера" id="64cc4f13-8ea3-43e0-b530-031a569bfcd0" configVersion="8b8a36d52a3c70f6411516282dff44b50709d582"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебныйВызовСервера.Module" id="64cc4f13-8ea3-43e0-b530-031a569bfcd0.0" configVersion="096fe94ceada3bba6c783107320609d74a183f00"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебныйВызовСервера.Module" id="64cc4f13-8ea3-43e0-b530-031a569bfcd0.0" configVersion="73a825cc2be8a3efb9e744a4eb0a542081028180"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебныйКлиентСервер" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc" configVersion="9ce268ec45c272677facf5c52c5cb09d018d6089"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебныйКлиентСервер.Module" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc.0" configVersion="9b7bdef1361fe597e1b781a741fb4cf06b7f8984"/>
|
||||
<Metadata name="CommonModule.СхПроцессорыСхемЗапросаСлужебныйКлиентСервер.Module" id="a7341127-4ed0-44b9-b3b2-007ae8f263dc.0" configVersion="4bcec7767f7b96306bb8ba377a30a05e815a2035"/>
|
||||
<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="3ff15ae99b006940a3d718ecf86f9c166f1ff52a"/>
|
||||
<Metadata name="DataProcessor.СхКонсольФункциональныхЗапросов" id="67397753-24bc-416c-9dc1-5fe9545ad4b2" configVersion="d1a6eb3b0f8a2146c0b618c5edcc7ee007a7e801"/>
|
||||
<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="7c260ad6a11cea96ce61809459a0433bc7815ad1"/>
|
||||
<Metadata name="DataProcessor.СхКонсольФункциональныхЗапросов.Form.Форма.Form" id="1f613bcb-34f1-4755-8c5b-734e99a89a03.0" configVersion="ea9a566744db145c41dd5d08a95cae584a5973b7"/>
|
||||
<Metadata name="DataProcessor.СхПроцессорПредикатов" id="12d6eb41-70d9-4802-8fde-b6464e23bf0b" configVersion="4954bfbfc6b8922ac7373146041de0e8311b766a"/>
|
||||
<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="4db6c0d580bf590f3e886c39f9abb7e15029e979"/>
|
||||
<Metadata name="DataProcessor.СхПроцессорПредикатов.ObjectModule" id="12d6eb41-70d9-4802-8fde-b6464e23bf0b.0" configVersion="544105e6c8ffbdc2120979764205590420377a16"/>
|
||||
<Metadata name="DataProcessor.СхПроцессорПредикатов.Form.Форма.Form" id="9ab75485-6c0a-4548-b3cb-fab32ccd351d.0" configVersion="97cb3acdc4dd75d2de2f3b80e4da371bdf72a6d7"/>
|
||||
<Metadata name="DataProcessor.СхПроцессорПредикатов.ObjectModule" id="12d6eb41-70d9-4802-8fde-b6464e23bf0b.0" configVersion="ccdb4171211476fbe7b589b9f3e00927ec37e0e8"/>
|
||||
<Metadata name="DataProcessor.СхПроцессорСхемЗапроса" id="7008c53a-3e8a-4432-bff6-500c4145bab5" configVersion="78983226bff2a80bc78dd6a1c83023079ccf2a1a"/>
|
||||
<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="929a1f8363b66e10c17e7b0c9b0bc4c5b2b374d3"/>
|
||||
<Metadata name="DataProcessor.СхПроцессорСхемЗапроса.ObjectModule" id="7008c53a-3e8a-4432-bff6-500c4145bab5.0" configVersion="d24fca2c93d620a13f2b287e70d3c4325ce07a0a"/>
|
||||
<Metadata name="DataProcessor.СхПроцессорСхемЗапроса.Form.Форма.Form" id="04cd8a25-c99d-4da9-ac0f-5703574d079f.0" configVersion="7cef18b5ae35bad253692098d7bcdefb1ba376a9"/>
|
||||
<Metadata name="DataProcessor.СхПроцессорСхемЗапроса.ObjectModule" id="7008c53a-3e8a-4432-bff6-500c4145bab5.0" configVersion="930c0f7ca6c0c76a3ea5ead60862bda886b70a51"/>
|
||||
<Metadata name="Language.Русский" id="390892dc-e75e-45a4-b708-a02f7f2dee5a" configVersion="d36425ed50ec1003a922942173f639c4f459684c"/>
|
||||
<Metadata name="Subsystem.СхОбработки" id="d4e271af-1ead-4743-afb5-9c2aa77055ae" configVersion="f110e9f462bd7349a8a18b57db698a5cb4198d4e"/>
|
||||
<Metadata name="Subsystem.СхОсновная" id="a09dece7-9d83-44cb-8463-270875de13d2" configVersion="03c18be8084556de42a54ad0474bdd4db01862e8"/>
|
||||
|
@@ -87,6 +87,24 @@
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция ПараметрВиртуальнойТаблицы(Номер, Выражение) Экспорт
|
||||
|
||||
Если ТипЗнч(Выражение) = Тип("Строка") Или ТипЗнч(Выражение) = Тип("Структура") Тогда
|
||||
_Выражение = Выражение;
|
||||
ИначеЕсли ТипЗнч(Выражение) = Тип("ОбработкаОбъект.СхПроцессорПредикатов") Тогда
|
||||
_Выражение = Выражение.Получить();
|
||||
Иначе
|
||||
ВызватьИсключение "Неверный тип выражения в методе ""ПараметрВиртуальнойТаблицы""";
|
||||
КонецЕсли;
|
||||
|
||||
СхПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьПараметрВиртуальнойТаблицы(СхемаЗапроса, Номер, _Выражение);
|
||||
Возврат ЭтотОбъект;
|
||||
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
//
|
||||
Функция Поместить(ИмяВременнойТаблицы) Экспорт
|
||||
|
@@ -76,6 +76,20 @@
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ПараметрВиртуальнойТаблицы(Номер, Выражение) Экспорт
|
||||
СхПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьПараметрВиртуальнойТаблицы(СхемаЗапроса, Номер, Выражение);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Поместить(ИмяВременнойТаблицы) Экспорт
|
||||
СхПроцессорыСхемЗапросаСлужебныйКлиентСервер
|
||||
.УстановитьИмяВременнойТаблицы(СхемаЗапроса, ИмяВременнойТаблицы);
|
||||
Возврат ЭтотОбъект;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция Где(Предикат) Экспорт
|
||||
|
||||
|
Reference in New Issue
Block a user