Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция ППП 2012.doc
Скачиваний:
11
Добавлен:
01.05.2025
Размер:
3 Мб
Скачать
☆

Программные модули

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

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

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

  • Глобальный модуль.

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

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

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

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

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

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

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

  • Модуль формы счета

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

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

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

  • Модуль формы отчета

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

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

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

Программный модуль 1С состоит из следующих разделов:

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

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

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

Разделы не требуют явного описания с использованием каких-либо ключевых слов (в отличие от, например, языка Паскаль), однако нарушение структуры модуля приведет к ошибке компиляции.

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

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

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

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

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

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

Формат операторов

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

[~метка:]Оператор [(Параметры)][ДобавочноеКлючевоеСлово];

Идентификаторы

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

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

Пример правильных идентификаторов в 1C:

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

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

Синтаксис объявления процедуры:

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

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

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

Пример. Допустим, у нас есть несколько различных документов, причем у всех есть реквизит "Склад". В каждом программном модуле формы редактирования документа нужна процедура выбора склада. В глобальном программном модуле напишем процедуру (листинг 36):

Листинг 36. Пример описания процедуры

Процедура УстСклада(Конт) Экспорт

// создаем объект типа "справочник"

Скл = СоздатьОбъект("Справочник.Склады");

// вызываем диалог для выбора элемента Справочника

Скл.Выбрать("Выберите Склад", "");

Если Скл.Выбран() = 1 Тогда // если в диалоге элемент Справочника был выбран,

// то присваиваем его значение реквизиту Документа,

// который доступен по локальному контексту

Конт.Склад = Скл.ТекущийЭлемент(); КонецЕсли; КонецПроцедуры

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

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

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

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

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