Назначение и краткая характеристика встроенного языка

Вид материалаДокументы

Содержание


Пример исходного текста программного модуля
Объявление переменных
Оператор объявления переменной
Область использования переменной
Выражения и оператор присваивания Выражения
Арифметические операции
Операция конкатенации
Логические операции
Числовые константы
Строковые константы Константа строкового типа представляется как любаяпо следовательность символов, заключенных в двойные кавычк
Подобный материал:
1   2   3   4   5   6

Пример исходного текста программного модуля


Перем ФлагПроводки; // Флаг проведения Документа Перем ФлагИзменения; // Флаг изменения Документа //———————————————————————————————————————————————— Функция КонтрольОстатка() // Функция возвращает текущее значение остатка товара на складе Ост = Регистр.ОстаткиТоваров.Остаток(Склад, Товар,"ОстатокТовара"); Возврат Ост; КонецФункции //———————————————————————————————————————————————— Процедура УстФлагИзм() ФлагИзменения = 1; КонецПроцедуры //———————————————————————————————————————————————— Процедура ВводНового() // предопределенная процедура, вызываемая при вводе нового документа // установим дату Документа ДатаДок = РабочаяДата(); // установим реквизиты Документа (по умолчанию) ТипНакладной =Перечисление.ТипыНакладных.Перемещение; Фирма = Константа.ДефФирма; Склад = Константа.ДефСклад; СкладПолучатель =Константа.ДефСклад; КонецПроцедуры //———————————————————————————————————————————————— ПроцедураВыходноеСообщение() // процедура, которую мы будем вызывать при нажатии кнопки "ОК" Если (ФлагПроводки = 1) И (ФлагИзменения = 1)Тогда Предупреждение("Проведенный Документ были изменен! При |сохранении обязательно проведите Документ снова!"); КонецЕсли; КонецПроцедуры //———————————————————————————————————————————————— //При входе в Форму запомним промежуточные переменные ФлагПроводки= Проведен(); ФлагИзменения= 0;

=======================================================================

Объявление переменных


В языке переменные не обязательно объявлять в явном виде. Неявным оп­ределением переменной является первое ее появление в левой части оператора присваивания. Возможно также явное объявление переменной при помощи оператора Перем. Тип переменной определяется типом присвоенного ей значе­ния. Не допускается использование в выражениях переменных с неопределен­ным значением (то есть переменных, которым никогда не присваивалось значе­ния).

Переменные могут объединяться в массивы. В данной реализации програм­мы предусмотрены только одномерные массивы.

Оператор объявления переменной


Синтаксис:

Перем <Имя_переменной> [[<Размерность>]] [Экспорт];

Параметры

<Имя_переменной>

Имя переменной.

[<Размерность>]

Необязательная числовая константа (записывает­ся в квадратных скобках), указывается только в том случае, если объявляется массив и должна представляться в виде положительного целого числа.

Экспорт

Необязательное ключевое слово Экспорт указы­вает, что данная переменная станет доступна для других модулей. Использование данного ключево­го слова имеет смысл только в глобальном про­граммном модуле.

Пример:

Перем Очень_Нужная_Переменная;

Перем Массив_Для_Хранения[10];

Область использования переменной


Область использования переменных зависит от места их определения в конфигурации задачи. Существует три области, в которых можно объявить переменные:

         В разделе определения переменных глобального программного модуля. Если переменные определены с ключевым словом Экспорт (см. опера­тор Перем), то это будут глобальные переменные.          В разделе определения переменных модуля. Это переменные модуля.          В процедуре или функции. Это локальные переменные.

Глобальные переменные доступны для использования в исполняемых опе­раторах, выражениях, в любой процедуре и функции любого программного мо­дуля конфигурации задачи.

Переменные модуля доступны для использования в исполняемых операто­рах, выражениях, в любой процедуре и функции того программного модуля, в пределах которого они объявлены.

Локальные переменные доступны в пределах той процедуры или функции, в которой они объявлены.

Если переменная определена как глобальная переменная, то она видна из всех процедур и функций любого программного модуля конфигурации задачи. Если же переменная определена внутри процедуры, то её областью видимости является данная процедура или функция. Таким образом, если две переменные с одинаковыми именами используются в двух различных процедурах модуля, и имя этой переменной не упоминается как глобальная переменная, то это две различные переменные, локальные для процедур. Если же переменная опреде­лена как глобальная переменная, то любое использование имени этой перемен­ной будет приводить к обращению к одной и той же переменной.

Единственный способ создать для процедуры локальную переменную с именем, совпадающим с именем переменной, определенной как глобальная пе­ременная — это объявить ее явно при помощи оператора Перем.

Выражения и оператор присваивания

Выражения


Выражение — это математическая или логическая формула, по которой вы­числяется значение. Выражения состоят из кон­стант, переменных и функций, связанных символами логических и/или ариф­метических операций.

Арифметические операции


В языке определены следующие виды арифметических операций:




сложение

(Оп1 + Оп2)







вычитание

(Оп1 - Оп2)







умножение

(Оп1 * Оп2)







деление

(Оп1 / Оп2)







остаток от деления

(Оп1 % Оп2)







унарный минус

(-Оп1)





Сложение определено для следующих типов операндов:

Число + Число

 

Дата + Число (к дате прибавля­ется число дней)

Вычитание определено для следующих типов операндов:

Число – Число

 

Дата – Число (от даты отнимает­ся число дней)

 

Дата – Дата (результатом явля­ется число дней между датами)

Умножение:

Число * Число

Деление:

Число / Число

Остаток от деления:

Число % Число

Замечание. При выполнении операции % (остаток от деления) оба операнда операции округляются до целого значения.

Операция конкатенации


Операция конкатенации ("+") используется для того, чтобы присоединить одну строку к другой. Длина результирующей строки равна сумме длин соеди­няемых строк. В случае несовпадения типа данных второго или последующих операндов со строковым типом, их значение преобразуется к строковому типу в соответствии с правилами преобразования типов.

Пример:

         Для того, чтобы удалить ненужные пробелы, используются системные функции СокрЛ и СокрП.

ФИО = СокрП(Фамилия) + " " + СокрП(Имя) + " " + СокрП(Отчество);

Логические операции


Логическая операция сравнивает операнды и вырабатывает логическое зна­чение: «истина» или «ложь». Существует два вида логических операций: опера­ции сравнения и булевы операции. В операциях сравнения сравниваются два значения. Булевы операции выполняются над логическими значениями, реали­зуя булеву алгебру. Символы булевых операций могут комбинироваться, обра­зуя составные операции.

Операции сравнения: В языке определены следующие виды операций сравнения:

АгрегатныйТип=АгрегатныйТип

АгрегатныйТип<>АгрегатныйТип

больше (Оп1 > Оп2)

больше или равно (Оп1 >= Оп2)

равно (Оп1 = Оп2)

не равно (Оп1 <> Оп2)

меньше (Оп1 < Оп2)

Булевы операции:

В языке определены следующие виды булевых операций:

И или AND

конъюнкция (булево И)

ИЛИ или OR

дизъюнкция (булево ИЛИ)

НЕ или NOT

логическое отрицание (булево отрицание НЕ)

Числовые константы


Константа числового типа представляется в виде: [‘+’| ‘-’]{‘0’|’1’|’2’|’3’|’4’|’5’|’6’|’7’|’8’|’9’}[.{‘0’|’1’|’2’|’3’|’4’|’5’|’6’|’7’|’8’|’9’}] Пример: 0 123 -15 +24.110.245 Константы даты Дата задается в формате 'ДД.ММ.ГГ' или 'ДД.ММ.ГГГГ' (дата заключается в одиночные кавычки). Неопределенная дата задается как'00.00.00'. Пример: '12.04.95' '01.01.1996'

Строковые константы Константа строкового типа представляется как любаяпо следовательность символов, заключенных в двойные кавычки.


Пример: "Ура!заработала" "Это самая правильная строка" " " Кроме того, допускаются «многострочные» строковые константы.В исход­ном тексте многострочные константы могут задаваться двумя способами:

 Первый вариант: В данном случаемежду фрагментами, представляющими отдельные строки многострочной константы, недолжно встречаться ника­ких символов, за исключением пробелов, переводов строкии строк ком­ментариев.

Пример:

Стр= "Первая строка" // пример строковойконстанты "Втораястрока" "Третьястрока";

 Второй вариант: В данном примерезначение константы полностью иден­тично предыдущему примеру. Отличие заключаетсяв том, что каждая от­дельная составляющая не замыкается кавычками, а на каждойпоследую­щей строке помещен символ переноса строки "|". В этом вариантекоммен­тарии между открывающей и закрывающей кавычками не допускаются.

Пример: Стр= "Первая строка |Вторая строка |Третья строка"; Строковые выражения Строковые выражения могут использоваться в качестве параметров мето­дов, процедур и функций, либо в правой части оператора присваивания. Стро­ковым выражением может быть отдельная строка или сложное сочетание стро­ковых констант, функций и операций. То, что выражение является строковым, определяется по первому операнду. В случае несовпадения типа второго и по­следующих операндов со строковым типом, их значения преобразуются к тре­буемому типу в соответствии с правилами преобразования типов. Чтобы ука­зать, что выражение является строковым, можно, например, начинать его с пус­той строки символов " ". Пример: Стр= СокрП("Фамилия" + ", " + Имя + ", " + " отчество"); Стр1= "" + Докум.Цена + Валюта.СокрНаим;