ЧАСТЬ 3

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 

 

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

Глобальный контекст:

  • значения системных атрибутов, системные процедуры и функции, например, функция ТекущееВремя( ) возвращает текущее системное время, а функция ТекущаяДата( ) – текущую дату на компьютере;

  • значения заданных в конфигураторе констант, перечислений;

  • переменные и процедуры глобального программного модуля с ключевым словом «Экспорт».

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

Основные виды программных модулей:

  • глобальный модуль;

  • модуль формы списка справочника;

  • модуль формы группы;

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

  • модуль формы документа;

  • модуль документа;

  • модуль формы журнала документов;

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

  • модуль формы счёта;

  • модуль формы журнала операций;

  • модуль формы операции;

  • модуль формы журнала проводок;

  • модуль формы отчёта;

  • модуль формы обработки.

Текст программного модуля состоит из операторов и комментариев. Комментарии начинаются с символов «//».
Формат операторов в 1С: [~метка:] Оператор [(Параметры)] [ДобавочноеКлючевоеСлово];

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

Типизация переменных в языке не жёсткая, т. е. тип переменной определяется её значением [21].

Чтобы определить, является ли слово зарезервированным, нужно воспользоваться поиском в синтакс-помощнике: установить курсор на проверяемое слово и одновременно нажать клавиши СTRL+F1. Таким же способом можно узнать синтаксис системной процедуры или функции: количество и назначение параметров, значения по умолчанию.

Структура программного модуля:

  • раздел определения переменных;

  • раздел процедур и функций;

  • раздел основной программы.

Пример программного модуля:

// Определение переменных
Перем ЭтоПеременная;
Перем ЭтоВтораяПеременная;
// Процедуры и функции
Процедура ЭтоПроцедура()
// текст процедуры
КонецПроцедуры
Функция ЭтоФункция()
// текст функции
КонецФункции
// Раздел основной программы
ЭтоПременная = "123";

Процедуры и функции программного модуля:

Процедура <Имя_проц>([Знач] <Парам1> [=<ДефЗнач>] , …) [Экспорт]
// Объявления локальных переменных;
// Операторы;
[Возврат;]
// Операторы;
КонецПроцедуры

После ключевого слова «КонецПроцедуры» точка с запятой не ставится.

Ключевое слово «Знач» означает, что переменные передаются по значению.

Ключевое слово «Экспорт» имеет смысл только в глобальном модуле и означает, что процедура будет доступна в любом программном модуле. Функция, в отличие от процедуры, должна возвращать значение.

Для передачи локального контекста используется ключевое слово «Контекст» в качестве параметра.


Пример. Существует несколько различных документов, причём у всех есть реквизит «Склад». В каждом программном модуле формы редактирования документа нужна процедура выбора склада. В глобальном программном модуле напишем процедуру:

Процедура УстСклада(Конт) Экспорт
// создаём объект типа "справочник"
Скл = СоздатьОбъект("Справочник.Склады");
// вызываем диалог для выбора элемента Справочника
Скл.Выбрать("Выберите Склад", "");
Если Скл.Выбран() = 1 Тогда
// если в диалоге элемент Справочника был выбран,
// то присваиваем его значение реквизиту Документа,
// который доступен по локальному контексту
Конт.Склад = Скл.ТекущийЭлемент();
КонецЕсли;
КонецПроцедуры

Здесь переменная Конт является формальным параметром, которому при вызове процедуры будет присвоен локальный контекст. В данном примере обращение к реквизитам и методам локального контекста происходит «через точку» после идентификатора Конт, например:

Конт.Склад = Скл.ТекущийЭлемент();

Теперь в любом программном модуле конфигурации (в данном примере – в любом модуле формы документа) для выбора склада можно вызвать процедуру, передав ей свой локальный контекст в качестве параметра:

УстСклад(Контекст);

С примерами программных модулей можно ознакомиться в типовой конфигурации «Бухгалтерский учёт» [23].


 

 


© Сибирская государственная геодезическая академия (СГГА), 2011