|
Описание:
Оператор Попытка управляет выполнением программы, основываясь на возникающие при выполнении модуля ошибочные (исключительные) ситуации и определяет обработку этих ситуаций.
В качестве ошибочных (исключительных) ситуаций воспринимаются ошибки времени выполнения модуля. Не предусмотрено определяемых пользователем исключений.
Если при выполнении последовательности операторов <// Некоторые действия> произошла ошибка времени выполнения, то выполнение оператора, вызвавшего ошибку прерывается и управление передается на первый оператор последовательности операторов <// Обработка исключительной ситуации>. При этом управление будет передано даже в том случае, если ошибку вызвал оператор, находящийся в процедуре или функции, вызванной из <// Некоторые действия>. Если ошибка произошла в вызванной процедуре или функции, то ее выполнение будет прервано, а локальные переменные уничтожены. Это справедливо для любой вложенности вызовов. После выполнения последовательности операторов <// Обработка исключительной ситуации> управление передается на следующий за ключевым словом КонецПопытки оператор. Если же последовательность <// Некоторые действия> выполнилась без ошибок, то последовательность операторов <// Обработка исключительной ситуации> будет пропущена и управление также будет продолжено с оператора, следующего за ключевым словом КонецПопытки.
Конструкции Попытка-Исключение-КонецПопытки могут быть вложенными. При этом, при возникновении исключительной ситуации управление будет передано на самый «внутренний» обработчик, начинающийся с ключевого слова Исключение. Последовательность операторов <// Обработка исключительной ситуации> может содержать оператор ВызватьИсключение (англоязычный синоним Raise). Выполнение данного оператора прекращает выполнение последовательности <// Обработка исключительной ситуации> и производится поиск более «внешнего» обработчика. Если таковой есть, то управление передается на его первый оператор. Если нет, то выполнение модуля прекращается с выдачей сообщения о первоначально возникшей ошибке. Оператор ВызватьИсключение может встречаться только внутри операторных скобок Исключение ... КонецПопытки.
В выдаче диагностики помощь может оказать встроенная функция ОписаниеОшибки() (англоязычный синоним GetErrorDescription). Эта функция не имеет параметров, а в качестве значения возвращает описание ошибки, такое же, как было бы выдано в окне сообщений, в случае отсутствия обработчика исключительной ситуации, за исключением описания модуля и строки, в которой ошибка возникла. Применять данную функцию имеет смысл только при выполнении последовательности операторов <// Обработка исключительной ситуации>, так как в ином случае она вернет пустую строку.
Перейти
Безусловная передача управления на другой оператор программы.
Синтаксис:
Перейти <Метка>;
Параметры:
<Метка>
Метка другого исполняемого оператора в программе.
Описание:
Безусловная передача управления на другой оператор программы. Оператор Перейти передает управление от одного оператора к другому. <Метка> в этом операторе не должна быть меткой перехода на оператор Процедура или Функция.
Область действия оператора Перейти ограничивается программным модулем, процедурой или функцией; он не может передать управление за пределы программного модуля, процедуры или функции.
Оператор безусловного перехода не может быть использован для передачи управления на операторы, находящиеся внутри конструкций: Пока ... КонецЦикла, Для ... КонецЦикла, Если ... ИначеЕсли ... Иначе ... КонецЕсли, Попытка ... Исключение ... КонецПопытки извне этих конструкций.
Продолжить
Передача управления в начало цикла.
Описание:
Передает управление в начало цикла. Оператор Продолжить немедленно передает управление в начало цикла, где производится вычисление и проверка условий выполнения цикла. Оператор Продолжить может использоваться только внутри конструкций операторов цикла Пока и Для.
Прервать
Прерывает выполнение цикла.
Синтаксис:
Прервать
Описание:
Прерывает выполнение цикла. Оператор Прервать приводит к немедленному прекращению выполнения цикла и передает управление первому оператору, следующему за конструкцией оператора Пока или Для. Оператор Прервать может использоваться только внутри конструкций операторов цикла Пока и Для.
Возврат
Завершение процедуры или функции.
Синтаксис:
Возврат [<Выражение>]
Параметры:
<Выражение>
Выражение, значение которого содержит результат обращения к функции. Этот параметр обязателен для оператора Возврат в теле описания функции, но не может использоваться в процедуре.
Оператор Возврат завершает выполнение процедуры или функции и передает управление в вызвавшую точку программы. Оператор Возврат обязателен в функции и необязателен в процедуре. Если в процедуре не используется оператор Возврат, то его неявное выполнение происходит вслед за последним исполняемым оператором процедуры. Данный оператор может применяться только в теле описания процедуры или функции, причем <Выражение> может задаваться только в случае использования оператора в контексте функции.
Символы
Символ
Значение
[ ]
В квадратных скобках заключаются необязательные синтаксические элементы.
( )
Круглые скобки заключают в себе список параметров.
|
Вертикальной линией разделяются синтаксические элементы, среди которых нужно выбрать только один.
Специальные символы, используемые в исходном тексте
//
Двумя знаками «косая черта» начинается комментарий. Комментарием считается весь текст от знака "//" до конца текущей строки.
|
Вертикальная черта в начале строки используется только в строковых константах и означает, что данная строка является продолжением предыдущей (перенос строки), (см. «Строковые константы»).
~
Знаком тильда начинается метка оператора.
:
Двоеточием заканчивается метка оператора.
;
Точка с запятой является символом разделения операторов.
( )
В круглые скобки заключается список параметров методов, процедур и функций.
[ ]
В квадратные скобки заключается размерность массивов.
,
Запятая разделяет параметры в списке параметров методов, процедур и функций.
" "
В двойные кавычки заключаются строковые константы.
' '
В одинарные кавычки заключаются константы даты.
.
Десятичная точка в числовых константах. Разделитель, используемый в описаниях агрегатных типов данных.
+
Символ «плюс» обозначает операцию сложения.
-
Символ «минус» обозначает операцию вычитания.
*
Символ «звездочка» обозначает операцию умножения.
/
Символ «косая черта» обозначает операцию деления.
>
Правая угловая скобка обозначает логическую операцию «больше».
>=
Логическая операция «больше или равно».
<
Левая угловая скобка обозначает логическую операцию «меньше».
<=
Логическая операция «меньше или равно».
=
Знак равенства обозначает присвоение или логическую операцию «равно».
<>
Две угловые скобки обозначают логическую операцию «не равно».
Пример
Рассмотрим часть модуля документа «Счет» в программе «1С:Бухгалтерия»
Процедура «Печать» - создание печатной формы документа.
Процедура Печать()
Таб = СоздатьОбъект("Таблица");
ИмяФайлаПечатнойФормы = КаталогИБ()+"ExtForms\PrnForms\1cbs.mxl";
Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда
Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы);
Иначе
Таб.ИсходнаяТаблица("Таблица");
КонецЕсли;
Таб.ВывестиСекцию("Шапка");
ВыбратьСтроки();
Ном = 0;
Пока ПолучитьСтроку()=1 Цикл
Ном = Ном + 1;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
Таб.ВывестиСекцию("Итого");
Таб.ВывестиСекцию("НДС");
Если УчитыватьНП = 1 Тогда
Таб.ВывестиСекцию("НП");
КонецЕсли;
Таб.ВывестиСекцию("Подвал");
КонецПроцедуры
Процедура «Ввод на основании» - документ будет выводиться на основании другого документа.
Процедура ВводНаОсновании(ДокОсн) //предопределенная
Новый = 1;
Если ДокОсн.Вид() = "РасходнаяНакладная" Тогда
РасчетныйСчет = ДокОсн.РасчетныйСчет;
Контрагент = ДокОсн.Контрагент;
Договор = ДокОсн.Договор;
Плательщик = ДокОсн.Контрагент;
ВариантРасчетаНалогов = ДокОсн.ВариантРасчетаНалогов;
ДокОсн.ВыбратьСтроки();
Пока ДокОсн.ПолучитьСтроку() = 1 Цикл
НоваяСтрока();
Товар = ДокОсн.Товар;
Количество = ДокОсн.Количество;
Цена = ДокОсн.Цена;
Сумма = ДокОсн.Сумма;
НДС = ДокОсн.НДС;
НП = ДокОсн.НП;
Всего = ДокОсн.Всего;
КонецЦикла;
КонецЕсли;
КонецПроцедуры //ВводНаОсновании
При использовании материалов активная ссылка на источник обязательна.