Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1C_pr77_Lang2.doc
Скачиваний:
7
Добавлен:
20.11.2019
Размер:
2.52 Mб
Скачать

Комментарий

Комментарий в тексте описания запроса начинается парой символов //и заканчивается концом строки.

Пример:

// Это — комментарий

Группировка Кат; // Это тоже комментарий

Константы и переменные запросов Константы

Язык содержит следующие типы констант:

Числовая константа описывается следующей синтаксической диаграммой:

[+|-][0-9]+ | [0-9]*.[0-9]+

Пример:

-17

43.712

.43842

Строковая константа — это строка, заключенная в двойные кавычки.

Пример:

"Это текстовая константа" // ОК

"Это ошибочная константа

и должна находиться на одной строке" // Ошибка

Константа типа "дата" задается в виде строки, заключенной в одинарные кавычки, в формате 'ДД.ММ.ГГ' или 'ДД.ММ.ГГГГ'.

Пример:

'21.05.96'

'25.09.1964'

Внутренние переменные

Внутренняя переменная — это переменная, объявленная в тексте описания запроса. Именем переменной может быть любая последовательность букв, цифр и знаков подчеркивания "_", начинающаяся с буквы или знака подчеркивания "_". Имена внутренних переменных не должны совпадать с зарезервированны­ми словами языка запросов. Распознавание имен переменных, названий опера­торов, процедур и функций ведется без учета регистра букв.

Пример:

*

// имена внутренних переменных в описании запроса

_43842 // ОК

НачалоПериода // ОК

712piece // Ошибка: начинается с цифры

Week // Ошибка: ключевое слово зарезервировано

*

// применение имен внутренних переменных описания запроса

// в программном модуле после позиционирования строки

// выборки функцией Группировка

Сотр = НовЗапрос.Сотр;

Кат = НовЗапрос.Кат;

ИТОГ = НовЗапрос.Итого;

Конкретизация переменной

Конкретизация переменной — это уточнение описания внутренней перемен­ной, если это возможно в текущем контексте. Конкретизации переменной могут использоваться в языке запросов в операторах Группировка ... Упорядочить По и в качестве аргумента оператора Функция (см. далее).

Синтаксис:

<ВнутренняяПеременная>[.<Путь>]+;

Параметры:

<ВнутренняяПеременная>

Идентификатор объявленной ранее внутренней переменной.

<Путь>

Доступный атрибут внутренней пере­менной или конкретизации переменной (см. «Атрибуты, доступные при описа­нии внутренних переменных»).

Пример:

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

" //{{ЗАПРОС(ОбработкаДок)

|Период с '01.10.96' по '05.10.96';

|ОбрабатыватьДокументы Все;

|Тов = Справочник.Товары.ТекущийЭлемент, Документ.РасхНакл.Товар;

| // используем конкретизацию внутренней переменной Тов

|Группировка Тов Упорядочить По Тов.Наименование;

|Группировка Документ;

|Группировка СтрокаДокумента;

|"//}}ЗАПРОС

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

Возврат;

КонецЕсли;

Внимание! Запрос не манипулирует величинами типа «Строка неограничен­ной длины».

Внешние переменные

Внешние переменные — это переменные из области видимости процедуры или функции программного модуля, в теле которого используется данный за­прос. Внешние переменные в тексте описания запроса могут использоваться в операторах Период С и Условие.

Пример:

Перем ДатаНач, ДатаКон;

Процедура Сформировать()

Если (Число(ДатаНач) = 0) ИЛИ (Число(ДатаКон) = 0) Тогда

Предупреждение("Не задан период!");

Возврат;

КонецЕсли;

// Создание объекта типа "Запрос"

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса =

"//{{ЗАПРОС(Сформировать)

| // используем внешние переменные ДатаНач и ДатаКон

|с ДатаНач по ДатаКон;

|Рез = ЖурналРасчетов.Зарплата.Результат;

|Сотр = ЖурналРасчетов.Зарплата.Объект;

|Группировка Сотр без групп;

|Группировка ПериодЖурнала;

|Функция Сум = Сумма(Рез);

|"//}}ЗАПРОС

;

// используем внешнюю переменную ВыбСотр

Если ВыбСотр.Выбран() = 1 Тогда

// используем в запросе внешнюю переменную ВыбСотр

ТекстЗапроса = ТекстЗапроса + "Условие(Сотр = ВыбСотр);";

КонецЕсли;

// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапр) = 0 Тогда

Возврат;

КонецЕсли;

...

КонецПроцедуры // ВыбСотр — это реквизит диалога

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]