<<
>>

4.8. Особенности режимов запуска системы

Система «1С:Предприятие» может использоваться в файловом и клиент- серверном вариантах, по внешнем соединении, а также в виде Web-сервисов (см. стр. 2-779).

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

4.8.1.

Исполнение процедур и функций

Для указания разрешения применения процедур и функций различных модулей (про виды модулей см. стр. 1-99) используют инструкции препроцессору и директивы компиляции. 4.8.1.1 Различие инструкций препроцессора и директив компиляции

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

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

модули, которые могут существовать (и выполняться) только в одном контексте, например, модуль управляемого приложения может выполняться только на стороне клиента (тонкого или веб-клиента).

модули, которые могут существовать (и выполняться) в нескольких контекстах.

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

• клиентский контекстный модуль.

серверный контекстный модуль,

клиентский внеконтекстный модуль,

серверный внеконтекстный модуль.

При этом у модуля команды п общего модуля не может существовать контекстных экземпляров (в отличие от модуля формы).

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

Рассмотрим, какое влияние оказывают директивы компиляции и инструкции препроцессора на исходный программный текст модуля в процессе его преобразования в «исполняемый» код.

Рассмотрим это на примере модуля управляемой формы.

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

Затем происходит компиляция получившегося программного кода в соответствии с контекстом и директивами компиляции. В результате получается исполняемый модуль.

Предположим, если в исходном тексте модуля формы встречается конструкция:

&НаКлиенте

Процедура РаботаСФайламиП

#Если ВеОКлиент Тогда

// программный текст 1 II исполняется только на веб-клиенте ЙИначе

II программный текст 2 // исполняется на других типах клиента #КонецЕсли

Ко нецПроцедуры

Тогда будет выполнено следующее:

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

в то же время инструкции препроцессора будут определять, какой именно текст и на каком клиенте будет оставлен в модуле (и как следствие скомпилирован). В данном примере на веб-клиенте будет доступен только «программный текст 1», а на других клиентах «программный текст 2».

Однако если в модуле формы будет использован следующий код:

#Если НаСервере Тогда ЬНаКлиенте

Процедура Клиентская() КонецПроцедуры

#КонецЕсли

Тогда произойдет следующее:

на сервере будет присутствовать исходный текст нашей процедуры, но он не будет скомпилирован, т. к. директива компиляции &НаКлиенте исключает возможность появления процедуры на стороне сервера.

• на клиенте не будет даже исходного текста нашей процедуры, т.

к. его «вырежет» инструкция препроцессора, а значит, тта процедура не будет скомпилирована и не будет доступна дія вызова.

Исходя из описанного механизма и следует подходить к пониманию взаимодействия директив и инструкций, а также к их совместному применению.

Также следует отметить, что методы, отмеченные в программном модуле, директивами ЬНаКлиентеНаСервереБезКонтекста и &НаКлиен- теНаСервере. попадут одновременно в разные экземпляры программных модулей.

4,8.1.2. Инструкции препроцессора Синтаксис инструкций препроцессору следующий: Инструкция препроцессору

#Если «Логическое выражение? Тогда #ИначеЕсли «Логическое выражение? Тогда

#Иначе #КонецЕсли Логическое выражение

«Логическое выражение? = [НЕ] «Символ препроцессора> [«Булева операция? [НЕ] «Символ препроцессора> [«Булева операция* [НЕ] «Символ препроцессора?]...]

Символ препроцессора

«Символ препроцессора? = { НаКлиенте | Клиент | ТонкийКлиент | ВебКлиент | НаСервере | Сервер ВнешнееСоединение }

Булева операция

«Булева операция? = {и | ИЛИ} Русское II МП Аиі.інйское имя #Еели Slf #Тогда #ТЬеп #Иначе «Else #ИначеЕсли ffElalf йКонецЕсли (tEndlf И AMD

Русское имя Английское имя Или OR НЕ NOT Сервер Server НаСервере AtServer Клиент Client НаКлиенте AcClient ТонкийКлиент ThinClient ВебКлиент WebClient ВнешнееСоединение ExternaIConnec t ion ТолстыйКлиентУправляемоеПриложение ThickClientManagedApplication ТолстыйКлиентОбычноеПриложение ThickClientOrdinaryApplicat ion

Далее приведен перечень инструкций препроцессора и их краткое описание:

Сервер. НаСервере определяет сервер.

Клиент, НаКлиенте - определяет любого клиента.

ТонкийКлиент - определяет тонкого клиента,

ВебКлиент - определяет веб-клиента,

ВнешнееСоединение - определяет внешнее соединение,

ТолстыйКлиентУправляемоеПриложение - определяет режим управляемого приложения толстого клиента,

ТолстыйКлиентОбычноеПриложение - определяет обычный режим толстого клиента.

Далее приведена таблица, указывающая, какие инструкции препроцессора определены в каких режимах работы «1С:Предприятия»: 7

*

ZJ

С. ij S

а

и

О

4J

сс о.

9

и с* N

CJ

&Й л

3 й z

2

.с V

Lei

VO Б СС ZJ

GJ

і о

ZJ

11 Я

?

Г-и

2

н ¦-<

Н IV

Б

і ?

О.

о

в л

3

2

2

Z 01 V

3 р

О

<и и

5

К В клиент-серверном варианте На стороне сервера + В толстом клиенте в обычном режиме + + В толстом клиенте в управляемом режиме + + В тонком клиенте + + В веб-клиенте + + Во внешнем соединении + В файл-серверном варианте В толстом клиенте в обычном режиме + В толстом клиенте в управляемом режиме + + + В тонком клиенте + + 11а серверной стороне тонкого клиента + В веб-клиенте + Во внешнем соединении + Если используется неглобальный общий модуль, для которого установлено использование на клиенте (любом) и на сервере, то методы, заключенные в

условие #Если Сервер Тогда #КонецЕсли. будут доступны только в том случае, если вызов этих методов выполняется со стороны сервера. Вызов таких методов со стороны клиента недоступен.

Мнструкинн рвер и НаСервере полностью идентичны.

Инструкции Клиент и НаКлиекте полностью идентичны.

ПРИМЕЧАНИЕ II ере л передачей программною модуля іш тонкий или иеб-слиент, сервер выполняет обработку инструкций препроцессора, находящихся а модуле. В ходе обработки текст па встроенном языке. который не исполняется на стороне вышеуказанных клиентов, «меняется на пробелы (т.е. фактически удаляется). При «том символы переноса строк и табуляции остаются на своих местах.

4.8.1.3. Директивы компиляции

Синтаксис директивы компиляции следующий:

Діі[>ектіі«а компиляции &<Директива >

конструкция яэыка>

Директива

«Директива > = НаКлиенте | НаСервере НаСервереБезКонтекста | НаКлиентеНаСервереБезКонтекста j НаКлиентеНаСервере

Конструкция ямка

«Конструкция языка> = «Описание переменной;. [ «Описание процедуры» | «Описание функции>

Подробное описание конструкций языка см. стр. 1-115, Русское ИМИ Английское ими НаКлиенте AtClient НаСервере AtServer НаСервереБезКонтекста At Serve rKoCont ext НаКлиентеНаСервереБезКонтекста AtClienCAtServerNoContext НаКлиентеНаСервере AtClientAtServer Далее приведен перечень директив компиляции и их краї кое описание:

На Клиенте - означает, ч то метод выполняется на стороне клиента в контексте формы.

Переменная существует все время жизни клиентской части формы.

Из метода доступны клиентские переменные модуля формы.

Донусшмы вызовы любых методов.

НаСервере - означает, что метод выполняется на стороне сервера в контексте формы.

Переменная существует только во время вызова выполнения серверного вызова.

И) метода доступны серверные переменные модуля формы.

Допустимы вызовы:

серверных.

серверных виеконтекстных,

клиент-серверных виеконтекстных методов,

методов неглобальных серверных общих модулей.

НаСервереБезКонтекста - означает, что метод исполняется на сервере вне контекста формы.

Переменные не могут предваряться такой директивой компиляции.

Ич метода недоступны переменные модуля формы.

Допустимы вызовы:

серверных виеконтекстных,

клиент-серверных виеконтекстных методов,

методов неглобальных серверных общих модулей.

НаКлиентеНаСервереБезКонтекста означает, что метод исполняется как на клиенте, так и на сервере, вне контекста формы.

Переменные не могут предваряться такой директивой компиляции.

lit метода недоступны переменные модуля формы.

Допустимы вызовы:

серверных виеконтекстных,

клиент-серверных виеконтекстных методов,

методов неглобальных серверных общих модулей,

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

• НаКлиентеНаСервере - означает, что методы выполняется на клиенте и на сервере.

Переменные не могут предваряться такой директивой компиляции. Допустимы вызовы:

серверных виеконтекстных,

клиент-серверных вне контекстных методов.

методов неглобальных серверных общих модулей,

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

Ниже приведена таблица, показывающая, какие директивы компиляции доступны в каких модулях системы «1С:11редприятие»: Модул ь формы Перемен-ные модуля формы Модуль команды Обший

модуль НаКлиенте + + + + НаСервере + + + + НаСервереБезКонтекста + НаКлиентеНаСервереБезКонтекста + НаКлиентеНаСервере +

4.8.2. Особенности использования объектов, их свойств и методов

Каждый объект, метод или свойство встроенного языка {далее в этом разделе- объект) обладают определенной доступностью (см. синтакс- помощник), которая определяет, где можно использовать объект, метод или свойство.

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

Тонкий клиент - указывает, что объект доступен в тонком клиенте.

Веб-клиент - указывает, что объект доступен в веб-клиенте.

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

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

Толстый клиент ¦ указывает, что объект доступен в толстом клиенте. ВНИМАНИЕ! Если для объекта указано, что он недоступен лля какого-либо из режимов «пуска, го свойства и методы данног о объекта іакже недоступны. Поэтому специального упоминания об тточ при описании свойств и методов не приводится.

Сериализуется. Указывает возможность сохранения значения объектов (например, методами СохранитьЗначение () и ЗначениеВФайл(). сохранение параметров форм отчетов и обработок), а также помещение в

ХранилищеЗначения.

XML-сериализация. Указывает возможность поддержки чтения записи значений данных системы «1С: Предприятие» виз XML. Подробнее см. erp. 2-687.

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

ПРИМЕЧАНИЕ. Дія управляемого режима запуска обмен между клиентом и сервером разрешен .зля всех типов данных.

Поддержка отображения в XDTO. Указывает на то, что данный тип имеет возможность отображения в модель данных XDTO. При этом указывается квалифицированное имя типа (типов) (указывается URI пространство имен и имя типа), в который отображается данный тип. Например, для типа Хра ни л ище Зн ач е ния: { http://v8. lc. ru/8/data/core}Va I ueStorage. В этой главе рассказывается о работе с конфигурацией в целом и о тех режимах и механизмах, которые используются для всех объектов конфигурации.

Описание действий но созданию и настройке основных объектов конфигурации (константы, справочники, документы, последовательности, журналы, перечисления, отчеты, обработки, регистры), а также некоторых объектов, располагающихся в ветви конфигурации Общие (критерии отбора, стили), производится в документации на примере использования окна редактирования объекта (подробнее см. стр. I -68). Аналогичные действия можно вьпюдняіь н в палитре свойств объектов.

<< | >>
Источник: А.Алексеев, А. Безбородое, Д. Бескоровайнов. 1С:Предприятие 8.2. Руководство разработчика. 2009

Еще по теме 4.8. Особенности режимов запуска системы:

  1. XVII. ОСОБЕННОСТИ ПРАВОВОГО РЕЖИМА ПРИРОДНЫХ РЕСУРСОВ
  2. 3. Особенности правового режима недр
  3. 2. Особенности правового режима земель
  4. Глава 21. Таможенные режимы: правовой статус, особенности
  5. 5. Особенности правового режима атмосферного воздуха
  6. 7. Особенности правового режима животного мира
  7. 6.2. Особенности правового режима растительного ми-ра вне лесов
  8. Запуск коучинга
  9. Глава 2. Запуск бизнеса в сфере услуг
  10. РЕЖИМ РАБОТЫ И СИСТЕМА ВОЗНАГРАЖДЕНИЯ.
  11. Первоначальный запуск
  12. Положение об особенностях режима рабочего времении времени отдыха водителей автомобилей
  13. 6. Особенности правового режима лесов и растительного мира вне лесов