
- •1.Основные сведенья системы 1с: Предприятия
- •3.Возможности компоненты «Бухгалтерский учет»
- •4. Возможности компоненты «Оперативный учет»
- •5. Возможности компоненты «Расчет»
- •6. Всю работу с системой можно разделить на два этапа:
- •15. Учёт кассовых операций.
- •16. Документ Приходный кассовый ордер
- •25. Учет финансово-расчетных операций
- •1. Платежное поручение.
- •3. Выписка банка. Документы - Выписка
- •26. Платежное поручение.
- •34. Создание нового объекта метаданных
- •Редактирование объекта метаданных
- •Редактирование подчиненного интерфейса
- •Редактор пользовательских прав
- •Виды программных модулей
- •40. Выражения
- •41. Операции
- •43. Математические функции
- •44. Функции для дат
- •46. Пользовательские процедуры и функции
- •6.2. Структура процедур и функций
- •6.3. Параметры процедур и функций
- •6.4. Вложенные вызовы процедур и функций
- •6.5. Оператор возврат
- •47. Форматирование данных
- •48. Ветвления "если"
- •49. “Попытка"
- •50. Циклы
- •5.5 Переход по метке
- •51. Программирование "сверху вниз"
- •52. Структура процедур и функций
- •53. Параметры процедур и функций
- •54. Вложенные вызовы процедур и функций
- •55. Оператор возврат
52. Структура процедур и функций
Процедуры и функции имеют схожую структуру:
Процедура | Функция Имя([[3нач] парам1 = [значение1]], ..., [[Знач] парамN = [значениеN]]) [Экспорт]
[неисполняемые операторы объявления переменных]
[исполняемые операторы]
КонецПроцедуры | КонецФункции
Ключевое слово, или атрибут, Экспорт указывается для процедур и функций, располагаемых в глобальном модуле, в том случае, если их надо сделать доступными для вызова в локальных модулях форм.
Процедуры вызываются в виде отдельного оператора с соблюдением следующего синтаксиса:
Имя_процедуры([парам1], ..., [парамN]);
Функции, как правило, вызываются из выражений, но могут, так же как и процедуры, вызываться в виде отдельно оператора:
Имя_функции([парам1],..., [парамN]);
Функция, если выход из нее осуществляется не в результате выполнения оператора
Возврат выражение;
а по оператору
КонецФункции
возвращает число 0.
Функция, в которой нет оператора
Возврат выражение;
всегда возвращает нуль.
Замечание. При программировании из функции следует выходить по оператору
Возврат выражение;
даже если выражение - это константа нуль.
Например, функции ф1 и ф2
функция ф1(а) функция ф2(а)
если а > 0 тогда если а > 0 тогда
возврат 2 * а; возврат 2 * а;
иначе конецЕсли;
возврат 0; конецФункции // ф2
конецЕсли;
конецФункции // ф1
возвращают одинаковый результат, однако вариант с ф1 отвечает принятому для функций стилю программирования, чего нельзя сказать о функции ф2. Впрочем, в данной ситуации функцию ф1 лучше записать так:
функция ф1(a)
возврат ?(а > 0, 2 * а, 0);
конецФункции // ф1
Процедуры и функции могут вызываться только из тех процедур и функций модуля, ранее которых расположены либо они сами, либо их предварительное описание.
Например, в модуле с кодом
функция ф1(а)
возврат ?(а > 0, 2 * а, 0);
конецФункции // ф1
процедура п1 (д) далее // Предварительное описание процедуры п1
процедура Выполнить()
перем б;
б = 2.5 * ф1(3); // б= 15; функция ф1 вызывается из выражения
п1(б); // б = 35; б - фактический параметр процедуры п1
Сообщить(б);
конецПроцедуры // Выполнить
функция ф2(с)
возврат с / 2;
конецФункции // ф2
процедура п1(д) // д - фактический параметр процедуры n1
д = 4*ф2(д) + 5; // д = 4 * 7.5 + 5 = 35
конецПроцедуры // п1
из процедуры Выполнить можно вызвать функцию ф1 и процедуру nl, но нельзя вызвать функцию ф2.
Предварительное описание процедуры (функции) должно дублировать заголовок процедуры (функции). Не допускаются расхождения имен параметров, и если заголовок процедуры (функции) снабжен ключевым словом Экспорт, то оно должно присутствовать и в тексте предварительного описания перед ключевым словом Далее. Например:
процедура п3(д1, д2) Экспорт далее // Предварительное описание процедуры пЗ
Перечень имен процедур и функций модуля можно просмотреть, нажав, находясь в конфигураторе, на иконку & на панели инструментов Текстовый редактор. Так, для вышеприведенного набора процедур и функций, если их разместить, например, в модуле обработки Проба, мы получим приведенный на рис. 2.8 список (сортировка имен не задана).
На начало любой процедуры (функции) или на ее предварительное описание можно переместиться, выбрав в вышеприведенном окне необходимую строку и нажав на кнопку Перейти.