Какие разделы существуют в общем модуле
Перейти к содержимому

Какие разделы существуют в общем модуле

  • автор:

Программные модули в «1С:Предприятии 8»

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

Общие модули Общие модули принадлежат всей конфигурации в целом, но, в отличие от модуля приложения (см. ниже), их может быть несколько, например, модули РасчетНалогов , ОбработкаДокументов . Общие модули не могут содержать объявлений переменных, и в них нет раздела основной программы, таким образом, они состоят только из процедур и функций
Модуль приложения Это модуль, который относится ко всей конфигурации в целом и может быть только один. Модуль приложения является аналогом глобального модуля в версии 7.7. Он отвечает за пользовательскую сессию (сеанс) работы с «1С:Предприятием 8»
Модуль внешнего соединения Если конфигурация запускается не в режиме клиентской сессии, а через COM-соединение, то вместо модуля приложения используется модуль внешнего соединения, который в конфигурации может быть только один
Модули объектов У некоторых прикладных объектов конфигурации могут быть собственные модули, например, модуль документа РасходнаяНакладная , модуль справочника Номенклатура . Не следует их путать с модулями форм этих объектов
Модули форм У каждой формы есть модуль, в котором определяется поведение формы и действия, выполняемые из нее, например, открытие других форм

На следующем рисунке показано расположение всех этих модулей:

Разделы программного модуля

Любой программный модуль, за исключением общих модулей, состоит из следующих разделов:

  • раздел объявления переменных,
  • раздел процедур и функций,
  • раздел основной программы.

Внимание! У общих модулей есть только раздел процедур и функций.

Контекст

Контекст — очень важное понятие при программировании на любом языке. В «1С:Предприятии 8» контекст обозначает окружение модуля, т. е. какие ему будут доступны переменные, объекты, свойства, методы и события.

Можно выделить следующие виды контекстов, существующих в «1С:Предприятии 8»:

Глобальный контекст , доступный во всех остальных контекстах, состоит из следующих частей:

  • свойства, методы и события глобального контекста (например, свойство РабочаяДата ),
  • системные перечисления и системные наборы значений (например, КодВозвратаДиалога и Символы ).

В контексте модуля приложения (или модуля внешнего соединения) доступны экспортируемые процедуры и функции общих модулей.

В контексте общего модуля доступны экспортируемые процедуры и функции других общих модулей. В этом контексте недоступны экспортируемые переменные, процедуры и функции модуля приложения.

В контексте модуля прикладного объекта есть доступ к реквизитам и табличным частям объекта, а также его методам и событиям. Например, в модуле документа РасходнаяНакладная доступны реквизиты документа и его табличные части, можно вызывать методы документа и обрабатывать события.

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

Необходимо помнить правила видимости экспортируемых переменных, процедур и функций различных модулей:

  1. В общем модуле недоступны экспортируемые переменные, процедуры и функции модуля приложения (модуля внешнего соединения).
  2. В модуле приложения (модуле внешнего соединения) доступны экспортируемые процедуры и функции общих модулей.
  3. В общих модулях доступны экспортируемые процедуры и функции других общих модулей.
  4. В модулях прикладных объектов и модулях форм доступны экспортируемые переменные, процедуры и функции модуля приложения (модуля внешнего соединения), а также экспортируемые процедуры и функции общих модулей.
  5. Если у формы назначен основной реквизит, то контекст модуля формы содержит дополнительные свойства и методы, связанные с основным реквизитом. Например, в модуле формы элемента справочника Номенклатура доступны свойства и методы объекта СправочникОбъект.Номенклатура .

Проиллюстрируем применение первых четырех правил на следующей схеме:

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

Разбор тестирования 1С:Профессионал и PMP

Процедуры и функции каждого модуля можно просмотреть списком, по хоткею Ctrl + Alt + P, либо через соответствующий пункт меню:

Вопрос 06.01 экзамена 1С:Профессионал по платформе. Какие виды программных модулей существуют в «1С:Предприятие 8»?

  1. Общие модули, модуль сеанса, модули форм
  2. Модуль обычного приложения, модуль управляемого приложения, общие модули, модуль сеанса, модули объектов, модули форм
  3. Модуль обычного приложения, модуль управляемого приложения, модуль внешнего соединения, модуль сеанса, общие модули и модули форм
  4. Модуль обычного приложения, модуль управляемого приложения, модуль внешнего соединения, модуль сеанса, общие модули, модули форм и модули макетов
  5. Модуль обычного приложения, модуль управляемого приложения, модуль внешнего соединения, модуль сеанса, модуль команды, общие модули, модули менеджера, модули форм, модули объектов и модули набора записей
  6. Модуль приложения, модуль внешнего соединения, модуль сеанса, общие модули, модули форм, модули макетов, модули объектов и модули набора записей

Правильный ответ пятый, перечень выше.

Вопрос 06.07 экзамена 1С:Профессионал по платформе. Какой должен быть порядок определения процедур и функций в программном модуле?

  1. Описание функций должно идти выше описания процедур и раздела основной программы
  2. Описание вызываемых процедур и функций должно идти выше вызывающих
  3. Порядок следования процедур и функций не имеет значения
  4. Порядок следования процедур и функций зависит от типа модуля

Правильный ответ третий, неважно, как процедуры и функции расположены внутри своего раздела.

Вопрос 06.09 экзамена 1С:Профессионал по платформе. Только определения процедур и функций может содержать только следующий вид модуля:

  1. модуль приложения
  2. общий модуль
  3. модуль сеанса
  4. модуль объекта
  5. верны ответы 2,3
  6. верны ответы 2,4

Правильный ответ пятый, см. выше.

1 комментарий:

добавились вопросы по теме модулей:

6.66 К каком модуле должно находиться описание процедуры-метода, если
обращение к ней идет следующим образом: Справочники.Номенклатура.Метод1(); ?
1. Модуль приложения
2. Глобальный общий модуль
3. Не глобальный общий модуль
4. Модуль менеджера
5. Модуль объекта
6. Модуль формы

правильный ответ — вариант 4. Проверено в официальном тренажере 1с.

6.67 К каком модуле должно находиться описание процедуры-метода, если
обращение к ней идет следующим образом: Справочники.Номенклатура.СоздатьОбъект.Метод1(); ?
1. Модуль приложения
2. Глобальный общий модуль
3. Не глобальный общий модуль
4. Модуль менеджера
5. Модуль объекта
6. Модуль формы

правильный ответ — вариант 5. Проверено в официальном тренажере 1с. Ответить Удалить

Разбор тестирования 1С:Профессионал и PMP

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

Рассмотрим основные свойства общих модулей:

  • Глобальный — означает, что данный модуль будет участвовать в формировании глобального контекста конфигурации, то есть объявленные в нем методы будут всегда доступны из вне. Глобальные модули компилируются в момент старта работы системы, а не-глобальные — в момент первого обращения к модулю
  • Директивы компиляции (клиент, сервер, внешнее соединение) — указываем галочками, где будет доступен данный общий модуль
  • Привилегированный — означает, что в данном модуле не выполняется контроль прав доступа
  • Повторное использование возвращаемых значений — вычисленные в модуле значения закэшируются, либо на время вызова процедуры, либо на время сеанса (но не более 20 минут)

Вопрос 06.02 экзамена 1С:Профессионал по платформе. Какие разделы существуют в общем модуле?

  1. Раздел объявления переменных, раздел процедур и функций, раздел основной программы
  2. Только раздел процедур и функций
  3. Только раздел основной программы
  4. Только раздел объявления переменных и раздел описания процедур и функций

Правильный ответ второй.
Вопрос 06.04 экзамена 1С:Профессионал по платформе. В общих модулях.

  1. нет ограничений на описание переменных, процедур, функций
  2. нельзя описывать переменные
  3. нельзя описывать переменные, процедуры и функции без ключевого слова «Экспорт»

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

Вопрос 06.11 экзамена 1С:Профессионал по платформе. Имя общего модуля может совпадать с именем свойства глобального контекста (например «Отчеты»):

  1. может в любом случае
  2. может, но только если модуль глобальный
  3. может, но только если модуль не глобальный

Правильный ответ второй.

1C:Enterprise

В системе 1С:Предприятие существуют несколько видов программных модулей. Они различаются по месту размещения и доступному контексту.

Модуль управляемого приложения

Модуль управляемого приложения располагается в корневом разделе конфигурации. В нем располагаются процедуры-обработчики событий, которые инициализируются при старте и окончании работы системы с установленном в значение «Управляемое приложение» свойства Основной режим запуска. В модуле управляемого приложения возможно объявление переменных, а также объявление и описание процедур и функций, которые будут доступны в любом модуле конфигурации (кроме модуля внешнего соединения). Их доступность также обеспечивается для неглобальных общих модулей с установленным свойством Клиент (управляемое приложение). В контексте модуля управляемого приложения доступны экспортируемые процедуры и функции общих модулей.

Модуль сеанса

Модулем сеанса называется модуль, который автоматически выполняется при старте системы 1С:Предприятие 8 в момент загрузки конфигурации.

Модуль сеанса предназначен для инициализации параметров сеанса и отработки действий, связанных с сеансом работы. Модуль сеанса всегда исполняется в привилегированном режиме в кластере серверов 1С:Предприятия 8.

Важно! Модуль сеанса может содержать только определения процедур и функций.

Модуль сеанса не содержит экспортируемых процедур и функций и может использовать процедуры из общих модулей конфигурации.

Модуль внешнего соединения

Модуль внешнего соединения расположен в корневом разделе конфигурации. В нем располагаются процедуры-обработчики событий, которые инициализируются при старте и окончании работы системы в режиме внешнего соединения (СОМ-соединения).

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

Объекты 1С:Предприятия, доступные извне через COM-соединение:

  • Экспортируемые переменные и процедуры/функции модуля внешнего соединения
  • Экспортируемые процедуры/функции общих модулей
  • Включение и исключение модулей целиком с помощью установки свойств общих модулей
  • Включение и исключение фрагментов общих модулей с помощью препроцессора
  • Глобальный контекст 1С:Предприятия 8
  • За исключением объектов, жестко связанных с клиентским приложением (ТекстовыйДокумент, ТабличныйДокумент, . )

Модуль присутствует только в сессии внешнего соединения.

В данном режиме характерно полное отсутствие пользовательского интерфейса.

Модуль обычного приложения

Модуль обычного приложения располагается в корневом разделе конфигурации. В нем располагаются процедуры-обработчики событий, которые инициализируются при старте и окончании работы системы с установленным в значение «Обычное приложение» свойством Основной режим запуска. В модуле обычного приложения возможно объявление переменных, а также объявление и описание процедур и функций, которые будут доступны в любом модуле конфигурации (кроме модуля внешнего соединения). Их доступность также обеспечивается для неглобальных общих модулей с установленным свойством Клиент (обычное приложение). В контексте модуля обычного приложения доступны экспортируемые процедуры и функции общих модулей.

Общие модули

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

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

Если используется клиент–серверный вариант системы 1С:Предприятие 8, то с помощью свойств Клиент (обычное приложение), Клиент (управляемое приложение) и Сервер, а также инструкций препроцессора можно организовывать выполнение различных процедур и функций общих модулей на сервере приложения или на клиентском месте.

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

Важно! Свойство Клиент (обычное приложение) показывается, если в настройках конфигурации режима запуска установлен режим «Управляемое приложение и обычное приложение«.

Если установлено свойство Сервер, то все процедуры и функции общего модуля могут использоваться в клиент-серверном варианте.

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

Свойство Вызов сервера разрешает вызов сервера. Свойство доступно, если установлено свойство Сервер. Если не установлено, то процедуры и функции данного модуля доступны только на сервере. Если установлено, то процедуры и функции данного модуля доступны на клиенте.

Свойство Привилегированный предназначено для установки полных прав доступа при выполнении действий с базой данных в процедурах и функциях общего модуля. При установленном свойстве выполнение производится только на сервере.

Повторное использование возвращаемых значений. Свойство доступно, если общий модуль не является Глобальным. Это свойство может принимать следующие значения:

  • Не использовать – повторное использование возвращаемых значений для функций этого общего модуля не используется;
  • На время вызова и На время сеанса – для общего модуля используется метод определения повторного использования данных. Суть этого метода заключается в том, что в ходе выполнения кода система запоминает параметры и результат работы функций после первого вызова функции. При повторном вызове функции с такими же параметрами, происходит возврат запомненного значения (из первого вызова) без выполнения самой функции. Если функция во время своего выполнения меняет значения параметров, то повторный вызов функции не будет это делать.

Можно выделить следующие особенности сохранения результатов вызова:

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

Сохраненные значения удаляются:

  • если свойство установлено в значение На время вызова:
    • на стороне сервера – при возврате управления с сервера;
    • на стороне клиента – при завершении работы процедуры или функции встроенного языка верхнего уровня (вызванной системой из интерфейса, а не из другой процедуры или функции встроенного языка).
    • на стороне сервера – при окончании сеанса;
    • на стороне клиента – при закрытии клиентского приложения.

    Сохраненные значения могут быть удалены:

    • после долгого неиспользования (более 5 минут);
    • при нехватке оперативной памяти в рабочем процессе сервера;
    • при перезапуске рабочего процесса;
    • при переключении клиента на другой рабочий процесс.

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

    Свойство Глобальный определяет, являются ли экспортируемые методы общего модуля частью глобального контекста.
    Если свойство Глобальный установлено в значение Истина, то экспортируемые методы общего модуля доступны как методы глобального контекста.

    Если свойство Глобальный установлено в значение Ложь, то в глобальном контексте создается свойство с именем, соответствующим имени общего модуля в метаданных. Данное свойство доступно ТОЛЬКО для чтения. Значением данного свойства является объект ОбщийМодуль. Через данный объект доступны экспортируемые методы данного общего модуля. Таким образом, обращение к методам неглобальных общих модулей выглядит как XXXXX.YYYYY, где XXXXX – это имя свойства общего модуля, а YYYYY – имя экспортируемого метода общего модуля.

    Если установлено свойство Клиент (обычное приложение), то модуль загружается в толстом клиенте в режиме обычного приложения.

    Если установлено свойство Клиент (управляемое приложение), то все процедуры и функции общего модуля могут использоваться в режиме Управляемое приложения, в тонком клиенте, в веб-клиенте.

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

    • Толстый клиент (обычное приложение);
    • Толстый клиент (обычное приложение) вариант клиент-сервер.

    Модули с установленным свойством Клиент (управляемое приложение), проверяются для режимов запуска:

    • Толстый клиент (управляемое приложение);
    • Толстый клиент (управляемое приложение) вариант клиент-сервер;
    • Тонкий клиент;
    • Веб-клиент.
    Модули общих объектов

    Некоторые общие объекты имеют собственные модули. К таким объектам относятся:

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

    Модули прикладных объектов

    Набор прикладных объектов имеет собственные модули. К таким объектам относятся:

    • менеджеры значения константы;
    • справочники;
    • документы;
    • отчеты (внешние отчеты);
    • обработки (внешние обработки);
    • планы видов характеристик;
    • планы счетов;
    • планы видов расчетов;
    • бизнес-процессы;
    • задачи;
    • регистры.

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

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

    Модули менеджеров прикладных объектов

    Каждый прикладной объект имеет менеджер, предназначенный для управления этим объектом, как объектом конфигурации. С помощью менеджера можно создавать объекты, работать с формами и макетами. Модуль менеджера позволяет расширить функциональность менеджеров за счет введения процедур и функций на встроенном языке. Фактически, это позволяет описать методы для объекта конфигурации (например, справочника), которые относятся не к конкретному экземпляру объекта базы данных, а к самому объекту конфигурации.
    Контекст модуля менеджера образуется из:

    • глобального контекста, в том числе экспортируемых функций общих модулей (если для модулей установлено свойство Клиент (обычное приложение), Клиент (управляемое приложение) или Сервер);
    • экспортируемых переменных, процедур и функций модулей управляемого или обычного приложений;
    • локальных и экспортируемых функций самого модуля.

    Модуль менеджера не может иметь переменных и тела модуля.

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

    Пример:
    Модуль менеджера:

    Функция ПолучитьСписокДебиторов ( ) Экспорт

    КонецФункции

    Вызов из прикладного кода:

    Дебиторы = Справочники . Контрагент . ПолучитьСписокДебиторов ( ) ;
    Модули команд (модули общих команд)

    Для нестандартных команд требуется написать процедуру ее выполнения. Для этого служит модуль команды, в котором можно написать предопределенную процедуру ОбработатьКоманду(). Данная процедура должна предваряться директивой компиляции &НаКлиенте, так как выполнение команды происходит в клиентском приложении.

    Модули управляемых форм

    Модуль состоит из набора процедур и функций. Переменные модуля и тело модуля не допускаются.

    Модули форм

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

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

    Seeking Comprehensive ERP Solution?

    Transform Your Business with Axial ERP

    Personalized solutions with continuous support. Propel your business with modern, comprehensive ERP solutions based on 1C:Enterprise.

    CONTENT

    1C:Enterprise

    Script

    General Script Description

    Source text format in program modules

    What is a program module?

    Context for executing programming modules

    Program modules types

    1C:Enterprise Developer’s Community

    Meta

    Recent Posts

    • Customizing 1C:Enterprise applications
    • Improvements for the opened items panel
    • The most popular programming languages in Russia in 2016
    • How to debug a solution on mobile 1C:Enterprise platform
    • Interface usability in 1C Enterprise platform 8.3.8 and 8.3.9

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *