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