МОДУЛЬ ОБРОБКИ ПРОБА

Процедура Виконати належить модулю обробки Модуль обробки в загальному випадку може містити такі компоненти:

• оголошення змінних модуля, які доступні в будь-якому його програмному компоненті

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

• оператори основної програми модуля, наступні за його процедурами і функціями основна програма виконується один раз при завантаженні модуля

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

/ / Оголошуємо змінну модуля обробки

/ / Вона може бути використана в будь-якій процедурі (функції) модуля

/ / І його основній програмі перем а

процедура Виконати ()

//

Виконати імя процедури

перем б

//

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

Повідомити (а = + а)

//

Виводимо значення змінної а у вікно повідомлень

б = 42

//

Визначаємо значення локальної змінної б

Повідомити (Сума а і б дорівнює + (а + б))

КонецПроцедури / / Виконати

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

а = 51 / / Визначаємо значення змінної модуля

Після завантаження і запуску обробки в 1С: Підприємство у вікні повідомлень виведуться дві наступні рядки:

а = 51

Сума а і б дорівнює 93

Зауваження:

1 Не можна змінити використаний порядок проходження компонентів модуля Тобто помилковий, наприклад, код

перем а / / Оголошуємо змінну модуля

/ / Основна програма модуля таке її розташування в модулі помилково а =

про

Повідомити (Сума а і б дорівнює + (а + б)) КонецПроцедури / / Виконати

2 Якщо вжити виклик

Повідомити (Сума а і б дорівнює + а + б) / /а + б без круглих дужок то у вікні повідомлень зявиться текст

а = 51

Сума а і б дорівнює 5142

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

3 Якщо прибрати оголошення змінної модуляа, то змінна а основної програми стане локальної (область її дії буде поширюватися тільки на основну програму) і, отже, недоступною у процедурі Виконати, написана програма виявиться непрацездатною

Процедура Виконати викликається при натисканні кнопки Пуск діалогу обробки Проба (див рис 114,б)У загальному випадку процедура модуля може бути викликана як з діалогу, так і з іншого програмного компонента модуля, в тому числі і з його основної програми Наприклад, після завантаження обробки, в модулі якій міститься код

процедура Виконати () / / Повязана з кнопкою Пуск обробки Проба

б = 42 / / Визначаємо значення локальної змінної б

Повідомити (б = + б) КонецПроцедури / / Виконати

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

ОчістітьОкноСообщеній () / / Очищаємо вікно повідомлень

а = 51 / / Визначаємо значення локальної змінної а

Повідомити (а = + а)

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

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

а = 51

б = 42

Наступні натискання на кнопку Пуск також будуть приводити до виклику процедури Виконати і, отже, додавати у вікно повідомлень рядок

б = 42

Код основної програми модуля для виконання більш недоступний

Зауважимо, що допускаються рекурсивні виклики процедур, тобто виклики, в яких процедура викликає сама себе

Наведемо тепер приклад для користувача функції модуля Нагадаємо, що функціяце програмний компонент, який повертає значення і викликається з виразу, яке це значення використовує Наприклад, в операторі

у = 2 * Лог (34) / / Лог вбудована функція

використана вбудована функція Лог, що має в якості вхідного параметра позитивне число і повертає в якості результату числове значення, рівне натуральному логарифму параметра Функція викликається з виразу 2 * Лог (34)

Розмістимо в модулі нашої обробки наступний код:

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

//

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

у = 2 * Лог (х)

//

Лог вбудована функція

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

повернення у

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

процедура Виконати () / /

Повязана з кнопкою Пуск обробки Проба

б = ВичіслітьУ (30) / /

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

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

//

Очищаємо вікно повідомлень

Повідомити (б = + б)

КонецПроцедури / / Виконати

Після виконання набраного коду (для цього змінену обробку треба відкрив в 1С: Підприємстві і натиснути на кнопку Пуск) у вікні повідомлень зявиться рядок

б = 21972245773362

Зауваження  Не можна в тілі функції оголошувати її формальні параметри Так, помилковий код

функція ВичіслітьУ (х)/ / Хформальний параметр функції ВичіслітьУ перем х / / Це оголошення неприпустимо

Функція ВичіслітьУ повинна бути розміщена в модулі до процедури Виконати, з якої функція викликається Якщо ви хочете записати код функції ВичіслітьУ після процедури Виконати, то в Початку модуля треба привестипредварітел нов описфункції ВичіслітьУ, завершивши його словом Далі, наприклад:

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

//

//

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

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

//

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

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

Зауваження:

1 У загальному випадку попередній опис визначених у модулі процедур і функцій можна розміщувати як на початку модуля після оголошення його змінних, так і між його будь-якими програмними компонентами

Джерело: Бартеньев О В 1С: Підприємство: програмування для всіх Базові обєкти та розрахунки на одній дискеті М: Діалог-МІФІ, 2005 464 с

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*