Главная » 1С Предприятие » МОДУЛЬ ОБРАБОТКИ ПРОБА

0

Процедура Выполнить  принадлежит  модулю  обработки.   Модуль   обработки  в  общем  случае  может  содержать следующие  компоненты:

•   объявления переменных модуля, которые доступны в любом  его программном компоненте;

•    процедуры, в том числе и предопределенные, и функции, созданные пользователем;

•   операторы    основной      программы    модуля,    следующие     за     его     процедурами и функциями; основная  программа выполняется один раз при загрузке модуля.

Запишем  в   качестве  примера  в   модуле   обработки  код,  содержащий  объявление переменной модуля  а,  пользовательскую процедуру Выполнить  и  основную  программу из одного  оператора.

// Объявляем переменную модуля обработки

// Она может быть использована в любой процедуре (функции) модуля

// и его основной программе перем а;

процедура Выполнить( )

//

Выполнить имя процедуры

перем  б;

//

Локальная переменная процедуры Выполнить

Сообщить("а = " + а);

//

Выводим значение переменной а в окно сообщений

б = 4.2;

//

Определяем значение локальной переменной б

Сообщить("Сумма а и б равна " + (а + б));

конецПроцедуры // Выполнить

// Основная программа модуля состоит из одного оператора

а = 5.1;                              //                  Определяем значение переменной модуля

После  загрузки и запуска  обработки в  1С:Предприятие  в  окне  сообщений выведутся две следующие строки:

а=5.1

Сумма а и б равна 9.3

Замечания:

1.      Нельзя   изменить   использованный  порядок   следования   компонентов   модуля  То есть ошибочен, например, код

перем  а;                          //               Объявляем  переменную модуля

// Основная программа модуля; такое ее расположение в модуле ошибочно а =

про

Сообщить("Сумма а и б равна " + (а + б)); конецПроцедуры // Выполнить

2.     Если  употребить  вызов

Сообщить("Сумма а и б равна " + а + б);     //  а + б без круглых скобок то в окне  сообщений  появится текст

а=5.1

Сумма а и б равна 5.14.2

То  есть  без  круглых  скобок в  символьное представление  преобразовываются по отдельности  переменные а и б, а не их сумма.

3.     Если  убрать  объявление переменной модуля  а, то переменная а основной  программы  станет  локальной (область  ее действия будет распространяться только  на основную  программу) и,  следовательно, недоступной  в  процедуре  Выполнить, написанная  программа окажется неработоспособной.

Процедура Выполнить   вызывается  при  нажатии  кнопки  Пуск  диалога  обработки Проба   (см.  рис. 1.14,  б).  В  общем   случае  процедура модуля   может  быть  вызвана  как из диалога,  так  и из иного программного компонента модуля, в том  числе и из его  основной  программы. Например, после  загрузки  обработки, в  модуле  которой содержится код

процедура Выполнить(  )              //        Связана с кнопкой Пуск  обработки Проба

б = 4.2;                         //               Определяем значение локальной переменной б

Сообщить("б = " + б); конецПроцедуры // Выполнить

// Основная программа модуля

ОчиститьОкноСообщений( );          //      Очищаем окно  сообщений

а = 5.1;                             //                  Определяем значение локальной переменной а

Сообщить("а = " + а);

// Процедура Выполнить будет вызвана из основной программы при загрузке  обработки Проба Выполнить();                     //              Конец основной  программы

сразу  будет  исполнен  код  основной   программы и,  следовательно,  процедуры  Выполнить, в результате  чего в окне  сообщений  появится текст

а = 5.1

б = 4.2

Последующие  нажатия  на  кнопку Пуск  также  будут приводить к  вызову  процедуры Выполнить  и, следовательно, добавлять в окно  сообщений  строку

б = 4.2

Код  основной  программы модуля  для исполнения более  недоступен.

Заметим, что допускаются рекурсивные вызовы процедур, то есть  вызовы,  в которых  процедура вызывает сама  себя.

Приведем  теперь   пример  пользовательской  функции  модуля.   Напомним,   что функция   это   программный  компонент,  возвращающий  значение   и   вызываемый из выражения, которое это  значение  использует.  Например, в операторе

у = 2 * Лог(3.4);                      //             Лог встроенная  функция

использована  встроенная функция  Лог, имеющая  в  качестве  входного  параметра  положительное  число и  возвращающая  в  качестве  результата числовое значение,  равное натуральному логарифму  параметра. Функция  вызывается из выражения 2 *  Лог(3.4).

Разместим  в модуле  нашей обработки  следующий код:

функция  ВычислитьУ(х)

//

х формальный параметр функции ВычислитьУ

у = 2 * Лог(х);

//

Лог встроенная функция

// Вернем в выражение, из которого вызывается функция ВычислитьУ, значение у

возврат у;

конецФункции // ВычислитьУ

процедура Выполнить()             //

Связана с кнопкой Пуск  обработки Проба

б = ВычислитьУ(3.0);              //

Функция  ВычислитьУ вернет 21п(3)

ОчиститьОкноСообщений();

//

Очищаем окно  сообщений

Сообщить("б = " + б);

конецПроцедуры // Выполнить

После исполнения  набранного кода  (для  этого  измененную обработку надо  открыл в 1С:Предприятии и нажать  на кнопку Пуск) в окне сообщений  появится строка

б = 2.1972245773362

Замечание.  Нельзя в теле функции объявлять  ее формальные параметры. Так, ошибочен  код

функция     ВычислитьУ    (х)    //    х  формальный параметр функции    ВычислитьУ перем  х;                         //               Это объявление недопустимо

Функция   ВычислитьУ должна   быть  размещена в  модуле  до  процедуры  Выполнить, из которой функция  вызывается.  Если вы хотите записать  код функции ВычислитьУ после  процедуры Выполнить, то  в  Начале модуля  надо  привести  предварителъ нов описание  функции  ВычислитьУ,  завершив  его словом Далее, например:

функция  ВычислитьУ(х) далее процедура Выполнить()

//

//

Предварительное описание функции ВычислитьУ Код процедуры Выполнить

конецПроцедуры // Выполнить функция  ВычислитьУ(х)

//

Код функции ВычислитьУ

конецФункции // ВычислитьУ

Замечания:

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

Источник: Бартеньев О. В. 1С:Предприятие:  программирование для  всех.  Базовые объекты и расчеты на одной дискете. М.: Диалог-МИФИ, 2005. 464 с.

По теме:

  • Комментарии