Компиляция общих модулей. Директивы компиляции. Исполнение кода на клиенте и на сервере
Компиляция общих модулей На предыдущем занятии (стр. 144) мы создали одну процедуру для обработки нескольких событий и поместили ее в общий модуль РаботаСДокументами. У этого модуля, как и у всякого общего модуля конфигурации, существует набор свойств: Клиент (управляемое приложение), Сервер и Внешнее соединение. Значения этих свойств (истина/ложь) определяют, где будут скомпилированы экземпляры этих модулей. Расскажем подробнее о том, что происходит, когда мы устанавливаем те или иные флажки у общего модуля. Прежде всего, необходимо понимать, зачем необходима компи- ляция. Дело в том, что все, что мы разработали и написали в конфи- гурации, – пока только некая «заготовка». Платформа, когда мы запускаем ее в режиме 1С: Предприятие, превращает все это в программу, которую уже можно исполнить на компьютере, – компилирует. При этом, как мы уже сказали ранее, есть разные части системы, в которых исполняется код – сервер, клиентские прило- жения. Поэтому для общих модулей мы можем и должны в явном виде указать, где, на какой «стороне» они должны быть скомпилиро- ваны – на сервере или клиенте. В общем модуле РаботаСДокументами мы установили свойство Клиент (управляемое приложение), см. рис. 4. 24. Это значит, что экземпляры этого модуля будут скомпилированы только на стороне клиента в контекстах тонкого клиента и веб-клиента (рис. 5. 48). Рис. 5. 48. Компиляция общего модуля на стороне сервера или клиента
Если у модуля установлено только свойство Сервер, то модуль будет скомпилирован только на стороне сервера. Клиентских приложений два: Тонкий клиент и Веб-клиент. Тонкий клиент – это файл 1cv8c. exe. Именно его запускает платформа автоматически, когда мы начинаем отладку.
Веб-клиент не существует в виде файла, потому что он исполняется не в среде операционной системы, а в среде интернет-браузера. Пользователю достаточно всего лишь запустить свой браузер, ввести адрес веб-сервера, на котором опубликована информационная база, и веб-клиент скачается к нему на компьютер и начнет исполняться.
Директивы компиляции На предыдущем занятии (стр. 144) мы создали обработчики событий ПриИзменении у некоторых элементов формы. Когда система создавала объявления процедур, в которых располагается код этих обработчиков, она предваряла их директивами & НаКлиенте. Расскажем подробнее о том, что это значит. Дело в том, что форма существует и на сервере, и на клиенте одновре- менно. Поэтому для каждой процедуры, которая существует в модуле формы, нужно указывать в явном виде контекст ее исполнения, где она будет исполняться: на сервере или на клиенте. Наличие директив & НаКлиенте, или & НаСервере, или & НаСервереБезКонтекста связано с тем, что при использовании встроенного языка в модуле формы клиентский код должен быть четко отделен от серверного. Таким образом, указав одну из директив, разработчик в явном виде програм- мирует серверную или клиентскую части. В модуле формы одновременно можно поместить процедуры с различными директивами исполнения и передавать выполнение кода с клиента на сервер. Также из клиентской процедуры модуля формы можно вызвать процедуру общего модуля (как и сделано в нашем примере), которая может выполняться как на клиенте, так и на сервере, в зависимости от установленных свойств модуля Клиент или Сервер.
Исполнение кода на клиенте и на сервере На предыдущем занятии (стр. 144) мы создали одну процедуру для обработки нескольких событий и поместили ее в общий модуль РаботаСДокументами. При этом в его свойствах мы поставили флажок Клиент (управляемое приложение) и сняли флажок Сервер. Эта процедура вызывалась из модуля формы, в котором для обработ- чика события также была указана директива, определяющая контекст
исполнения этого обработчика – & НаКлиенте. Расскажем подробнее, как именно происходит исполнение кода в этом случае. После запуска прикладного решения выполнение кода всегда начи- нается на клиенте. В процессе работы выполнение кода может быть передано на сервер посредством вызова процедуры общего модуля, скомпилированного на сервере. Дело в том, что при вызове процедуры или функции ее поиск осуществляется сначала на клиенте. Если скомпилированный контекст клиента не содержит данную процедуру, то поиск продолжа- ется на стороне сервера. Если вызываемая процедура будет найдена, то выполнение кода будет передано на сервер. После завершения процедуры выполнение кода продолжится на клиенте. Например, при изменении цены в форме приходной накладной вызы- вается процедура модуля формы ЦенаПриИзменении(). Она исполня- ется на стороне клиента в режиме тонкого клиента. Во второй строке этого обработчика вызывается процедура РассчитатьСумму(). Эта процедура находится в общем модуле РаботаСДокументами, скомпи- лированном также на клиенте. Она исполняется в режиме тонкого клиента. После выполнения этой процедуры управление опять пере- дается в модуль формы (рис. 5. 49). Рис. 5. 49. Передача выполнения кода между модулями на клиенте
пРодолжительность Ориентировочная продолжительность занятия – 50 минут.
Зачем нужен регистр накопления................................................................................... 208 Что такое регистр накопления........................................................................................ 209 Добавление регистра накопления.................................................................................... 211 В режиме «Конфигуратор»........................................................................................ 211 Движения документа.............................................................................................. 214 В режиме «1С: Предприятие».................................................................................... 221 Команда перехода к движениям в форме документа.................................................... 223 В режиме «Конфигуратор»........................................................................................ 223
В режиме «1С: Предприятие».................................................................................... 224 Движения документа «Оказание услуги»......................................................................... 225 В режиме «Конфигуратор»........................................................................................ 225 В режиме «1С: Предприятие».................................................................................... 228 Теория: способы работы с коллекцией.......................................................................... 229 Контрольные вопросы...................................................................................................... 231 На этом занятии мы познакомимся с объектом конфигурации Регистр накопления. Вы узнаете, для чего используется этот объект, какой структурой он обладает и каковы его отличительные особенности. Затем мы создадим с вами один из регистров накопления, который будет использоваться в нашей конфигурации и отражать изменение данных в процессе работы ранее созданных нами документов.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|