1
0
mirror of https://github.com/salexdv/bsl_console.git synced 2025-02-15 13:53:04 +02:00

Доработка описания синтаксиса языка запросов

This commit is contained in:
salexdv 2020-09-28 09:28:14 +03:00
parent 0a6253ce0e
commit ee310bf93b
2 changed files with 50 additions and 25 deletions

View File

@ -132,9 +132,8 @@ define([], function () {
'НачалоПериода', 'КонецПериода', 'ДобавитьКДате', 'РазностьДат', 'Сумма',
'Минимум', 'Максимум', 'Среднее', 'Количество', 'Представление',
'ПредставлениеСсылки', 'ТипЗначения', 'АвтономерЗаписи', 'Подобно', 'ВИерархии',
'Есть', 'Null', 'Ссылка', 'Выразить', 'ДатаВремя', '', '', '',
'', '', '', '', '', '', '', '',
'Сумма', 'Максимум', 'Минимум',
'Есть', 'Null', 'Ссылка', 'Выразить', 'ДатаВремя',
'Сумма', 'Максимум', 'Минимум',
],
queryOperators: /[=><+\-*\/%;,]+/,
// The main tokenizer for our languages
@ -286,24 +285,23 @@ define([], function () {
'НачалоПериода', 'КонецПериода', 'ДобавитьКДате', 'РазностьДат', 'Сумма',
'Минимум', 'Максимум', 'Среднее', 'Количество', 'Представление',
'ПредставлениеСсылки', 'ТипЗначения', 'АвтономерЗаписи', 'Подобно', 'ВИерархии',
'Есть', 'Null', 'Ссылка', 'Выразить', 'ДатаВремя', '', '', '',
'', '', '', '', '', '', '', '',
'Сумма', 'Максимум', 'Минимум',
'Есть', 'Null', 'Ссылка', 'Выразить', 'ДатаВремя',
'Сумма', 'Максимум', 'Минимум',
],
operators: ['/', '[', ']', '=', '<', '>', '+', '-', '*', '%'],
operators: /[=><+\-*\/%;,]+/,
tokenizer: {
root: [
[/"".*""/, 'query.string'],
root: [
[/[a-zA-Z\u0410-\u044F_][a-zA-Z\u0410-\u044F_0-9]*/, { cases: {
'@keywords': 'query.keyword',
'@operators': 'query.keyword',
'@expressions': 'query.exp',
'@default': 'query'
}}],
[/".*"/, 'query.string'],
[/&[a-zA-Z\u0410-\u044F_][a-zA-Z\u0410-\u044F_0-9]*/, 'query.param'],
[/&/, 'query.param'],
[/[()]/, 'query.brackets'],
[/[()]/, 'query.brackets'],
[/\/\/.*$/, 'comment'],
[/@operators/, 'query.operator'],
[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/, 'query.float'],
[/[0-9_]+/, 'query.int'],
[/\|/, 'query'],

View File

@ -27,22 +27,49 @@
setTimeout(function() {
setTheme('bsl-white-query');
}, 1000);
return [
'ВЫБРАТЬ',
' АвансовыйОтчет.ВалютаДокумента КАК ВалютаДокумента,',
' АвансовыйОтчет.ВидОперации КАК ВидОперации,',
' АвансовыйОтчет.Комментарий КАК Комментарий,',
' АвансовыйОтчет.КурсДокумента КАК КурсДокумента,',
' "ИСТИНА" КАК Поле1,',
' ВЫБОР',
' КОГДА АвансовыйОтчет.ФизЛицо = ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)',
return [
'ВЫБРАТЬ',
' НДСЗаписиКнигиПродажОбороты.Организация КАК Организация,',
' НДСЗаписиКнигиПродажОбороты.Покупатель КАК Покупатель,',
' НДСЗаписиКнигиПродажОбороты.СчетФактура КАК СчетФактура,',
' НДСЗаписиКнигиПродажОбороты.ВидЦенности КАК ВидЦенности,',
' НДСЗаписиКнигиПродажОбороты.СтавкаНДС КАК СтавкаНДС,',
' НДСЗаписиКнигиПродажОбороты.ДатаОплаты КАК ДатаОплаты,',
' НДСЗаписиКнигиПродажОбороты.ДокументОплаты КАК ДокументОплаты,',
' НДСЗаписиКнигиПродажОбороты.Событие КАК Событие,',
' НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот * -1 КАК СуммаБезНДССторно,',
' НДСЗаписиКнигиПродажОбороты.НДСОборот * -1 КАК НДССторно,',
' НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот КАК СуммаБезНДС,',
' НДСЗаписиКнигиПродажОбороты.НДСОборот КАК НДС,',
' НДСЗаписиКнигиПродажОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента',
' "ИСТИНА" КАК СтроковыйЛитерал,',
' ВЫБОР',
' КОГДА НДСЗаписиКнигиПродажОбороты.СчетФактура = ЗНАЧЕНИЕ(Документы.СчетаФактурыВыданные.ПустаяСсылка)',
' ТОГДА ИСТИНА',
' ИНАЧЕ "ЛОЖЬ"',
' КОНЕЦ КАК Поле2',
'ИЗ',
' Документ.АвансовыйОтчет КАК АвансовыйОтчет',
'ГДЕ',
' АвансовыйОтчет.Ссылка = &Ссылка',
' КОНЕЦ КАК ПолеСВыбором',
'ИЗ',
' РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(',
' &НачалоПериода,',
' &КонецПериодаГраница,',
' Квартал,',
' СчетФактура = &СчетФактура',
' И СчетФактура <> &Регистратор',
' И ВЫБОР',
' КОГДА &ДоговорКонтрагента = НЕОПРЕДЕЛЕНО',
' ТОГДА ИСТИНА',
' ИНАЧЕ ДоговорКонтрагента = &ДоговорКонтрагента',
' КОНЕЦ',
' И ВЫБОР',
' КОГДА &СтавкаНДС = НЕОПРЕДЕЛЕНО',
' ТОГДА ИСТИНА',
' ИНАЧЕ СтавкаНДС = &СтавкаНДС',
' КОНЕЦ) КАК НДСЗаписиКнигиПродажОбороты',
'ГДЕ',
' (НЕ НДСЗаписиКнигиПродажОбороты.ЗаписьДополнительногоЛиста',
' И НДСЗаписиКнигиПродажОбороты.Период = &НачалоПериода',
' ИЛИ НДСЗаписиКнигиПродажОбороты.ЗаписьДополнительногоЛиста',
' И (НДСЗаписиКнигиПродажОбороты.КорректируемыйПериод МЕЖДУ &НачалоПериода И КОНЕЦПЕРИОДА(&НачалоПериода, МЕСЯЦ)))',
].join('\n');
}
</script>