Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Описание встроенного языка , Глава 5 - Управляющие операторы          
Vofka Подменю пользователя
сообщение 03.03.09, 11:18
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Если
Оператор условного выполнения.

Синтаксис:


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


Англоязычный Синтаксис:


If <Логическое_выражение> Then
//операторы;
[Elsif <Логическое_выражение> Then]
//операторы;
[Else]
//операторы;
Endlf;


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

ИначеЕсли — Тогда.

Пример:


Если (РабочаяДата() > '01.01.95') И (Сег = "Понедельник") Тогда
Сообщить("Сегодня" + " " + Сег + " " + РабочаяДата());
КонецЕсли;




Пока
Оператор выполнения цикла.

Синтаксис:


Пока <Логическое_выражение> Цикл
//операторы;
КонецЦикла;



Англоязычный Синтаксис:
While <Логическое_выражение> Do
//операторы;
EndDo;


While <Логическое_выражение> Do
//операторы;
EndDo;


Описание:
Оператор цикла Пока предназначен для циклического повторения операторов, находящиеся внутри конструкции Цикл ... КонецЦикла. Цикл выполняется пока логическое выражение — истина. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.

Пример:


Док = СоздатьОбъект("Документ.БригадныйНаряд");
// Будем просматривать документы в интервале дат
Док.ВыбратьДокументы('11.01.88', '11.01.99');
// Цикл по всем Документам
Пока (Док.ПолучитьДокумент() = 1) Цикл
// отобразим Документ в строке состояния
Состояние(Док.Вид() + " " + Док.НомерДок + " " + Док.ДатаДок);
Док.ВыбратьСтроки();
// вложенный цикл по всем строкам Документа
Пока(Док.ПолучитьСтроку() > 0) Цикл
Если Док.КодРабот = 104 Тогда
Сообщить(" " + Док.НомерДок);
КонецЕсли;
КонецЦикла;
КонецЦикла;




Для
Оператор выполнения цикла.

Синтаксис:


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


Англоязычный Синтаксис:


For <Имя_переменной> = <Выражение1> То <Выражение2> Do
//Операторы;
EndDo;


Описание:
Оператор цикла Для предназначен для циклического повторения операторов, находящиеся внутри конструкции Цикл ... КонецЦикла. Перед началом выполнения цикла значение <Выражение1> присваивается переменной <Имя_переменной>. Значение <Имя_переменной> автоматически увеличивается при каждом проходе цикла. Цикл выполняется пока значение переменной <Имя_переменной> меньше или равно значению <Выражение2>. Величина приращения счетчика при каждом выполнении цикла равна 1. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.

Пример:


// Выведем все строки текста
Выв = СоздатьОбъект("Текст");
Выв.Открыть("ТТТ");
Для i = l по Выв.КоличествоСтрок() Цикл
Сообщить(Выв.ПолучитьСтроку(i));
КонецЦикла;




Попытка
Обработка исключительных ситуаций.

Синтаксис:


Попытка
// Некоторые действия;
Исключение
// Обработка исключительной ситуации;
КонецПопытки;


Англоязычный Синтаксис:


Try
// Некоторые действия;
Except
// Обработка исключительной ситуации;
EndTry;


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

В качестве ошибочных (исключительных) ситуаций воспринимаются ошибки времени выполнения модуля. Не предусмотрено определяемых пользователем исключений.

Если при выполнении последовательности операторов <// Некоторые действия> произошла ошибка времени выполнения, то выполнение оператора, вызвавшего ошибку прерывается и управление передается на первый оператор последовательности операторов <// Обработка исключительной ситуации>. При этом управление будет передано даже в том случае, если ошибку вызвал оператор, находящийся в процедуре или функции, вызванной из <// Некоторые действия>. Если ошибка произошла в вызванной процедуре или функции, то ее выполнение будет прервано, а локальные переменные уничтожены. Это справедливо для любой вложенности вызовов. После выполнения последова­тельности операторов <// Обработка исключительной ситуации> управление передается на следующий за ключевым словом КонецПопытки оператор. Если же последовательность <// Некоторые действия> выполнилась без ошибок, то последовательность операторов <// Обработка исключительной ситуации> будет пропущена и управление также будет продолжено с оператора, следующего за ключевым словом КонецПопытки.

Конструкции Попытка-Исключение-КонецПопытки могут быть вложенными. При этом, при возникновении исключительной ситуации управление будет передано на самый «внутренний» обработчик, начинающийся с ключевого слова Исключение. Последовательность операторов <// Обработка исключительной ситуации> может содержать оператор ВызватьИсключение (англоязычный синоним Raise). Выполнение данного оператора прекращает выполнение последовательности <// Обработка исключительной ситуации> и производится поиск более «внешнего» обработчика. Если таковой есть, то управление передается на его первый оператор. Если нет, то выполнение модуля прекращается с выдачей сообщения о первоначально возникшей ошибке. Оператор ВызватьИсключение может встречаться только внутри операторных скобок Исключение ... КонецПопытки.

В выдаче диагностики помощь может оказать встроенная функция ОписаниеОшибки() (англоязычный синоним GetErrorDescription). Эта функция не имеет параметров, а в качестве значения возвращает описание ошибки, такое же, как было бы выдано в окне сообщений, в случае отсутствия обработчика исключительной ситуации, за исключением описания модуля и строки, в которой ошибка возникла. Применять данную функцию имеет смысл только при выполнении последовательности операторов <// Обработка исключительной ситуации>, так как в ином случае она вернет пустую строку.

Пример:


Процедура СформироватьВЕхсеl()
Попытка
// пытаемся обратиться к программе MS Excel
Табл = СоздатьОбъект("Excel.Application");
Исключение
Предупреждение(ОписаниеОшибки() +
"; Excel не установлен на данном компьютере!");
Возврат;
КонецПопытки;
// Формирование отчета
...
КонецПроцедуры

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 20:57
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!