ЧАСТЬ 3

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 

 

Оператор ветвления

Пример 1:

Если <Логическое_выражение> Тогда
ИначеЕсли <Логическое_выражение> Тогда
Иначе
КонецЕсли;


Циклические структуры

Пример 1:

Пока <Логическое_выражение> Цикл

[Прервать]

[Продолжить]

КонецЦикла;


Пример 2:

Для <Имя_переменной> = <Выражение1> По <Выражение2> Цикл

[Прервать]

[Продолжить]

КонецЦикла;


Величина приращения счётчика при каждом выполнении цикла равна 1 (единице). Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.

Обработка ошибок, описывается так:

Попытка

[Исключение]

КонецПопытки;

 

Работа с транзакциями

Транзакции применяются для выполнения длительных и критических для функционирования системы операций [21]. В некоторых случаях система сама начинает транзакцию и специально описывать её не надо.

Например, это происходит при проведении документов: так как в программе могут работать одновременно несколько пользователей, то при записи документа (например, продажа товара со склада) недопустима ситуация «одновременного» проведения двух документов – всё равно один из них должен быть проведён раньше, чем другой (иначе можно продать один и тот же товар два раза!).

Поэтому система выполняет проведение документа в режиме транзакции – база данных становится недоступной для записи остальных пользователей. Естественно, что при большом количестве пользователей, которые активно вводят данные в программу, работа системы замедляется.

Одним из решений этой проблемы может быть установка версии для SQL, в этом случае процедуры записи выполняются на отдельном компьютере (сервере базы данных) с помощью MS SQL Server 7.0.

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

НачатьТранзакцию();

[ОтменитьТранзакцию();]

ЗафиксироватьТранзакцию();

Отмена транзакции применяется в случае обнаружения какой-то некорректной ситуации. В этом случае все изменения, внесённые в базы данных с момента начала транзакции, отменяются. Чтобы зафиксировать изменения, необходимо выполнить функцию ЗафиксироватьТранзакцию().

 

 


© Сибирская государственная геодезическая академия (СГГА), 2011