Compare commits
2 Commits
723f415dcc
...
5357465462
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5357465462 | ||
![]() |
64cb1fecb4 |
@ -0,0 +1,57 @@
|
||||
|
||||
# Правила создания общих модулей
|
||||
|
||||
При разработке общих модулей в 1С следует выбирать один из четырёх контекстов выполнения кода.
|
||||
|
||||
## Типы общих модулей и контексты выполнения
|
||||
|
||||
| № | Тип общего модуля | Пример наименования | Вызов сервера | Сервер | Внешнее соединение | Клиент (обычное приложение) | Клиент (управляемое приложение) |
|
||||
|----|-------------------------------------|---------------------------------------------|---------------|--------|---------------------|-----------------------------|----------------------------------|
|
||||
| 1 | Серверный | `ОбщегоНазначения` или `ОбщегоНазначенияСервер` | + | + | + | | |
|
||||
| 2 | Серверный для вызова с клиента | `ОбщегоНазначенияВызовСервера` | + | + | | | |
|
||||
| 3 | Клиентский | `ОбщегоНазначенияКлиент` или `ОбщегоНазначенияГлобальный` | | | | + | + |
|
||||
| 4 | Клиент-серверный | `ОбщегоНазначенияКлиентСервер` | | + | + | + | + |
|
||||
|
||||
**Пояснения:**
|
||||
- **Вызов сервера** — позволяет вызывать методы модуля с клиента на сервер.
|
||||
- **Сервер** — методы выполняются на сервере.
|
||||
- **Внешнее соединение** — доступность методов при внешнем соединении.
|
||||
- **Клиент (обычное приложение)** — доступность методов в толстом клиенте.
|
||||
- **Клиент (управляемое приложение)** — доступность методов в тонком клиенте и веб-клиенте.
|
||||
|
||||
## Рекомендации по выбору типа модуля
|
||||
|
||||
- **Серверный модуль**: используется для выполнения операций, требующих доступа к серверным данным или ресурсам.
|
||||
- **Серверный модуль для вызова с клиента**: предназначен для ситуаций, когда необходимо вызвать серверную логику из клиентского кода.
|
||||
- **Клиентский модуль**: применяется для реализации логики, выполняемой на клиенте, например, для управления интерфейсом пользователя.
|
||||
- **Клиент-серверный модуль**: объединяет возможности клиентского и серверного модулей, позволяя использовать общую логику в обоих контекстах.
|
||||
|
||||
## Использование директив компиляции
|
||||
|
||||
Для управления выполнением кода в различных контекстах можно использовать директивы компиляции:
|
||||
|
||||
```1C
|
||||
#Если Сервер Тогда
|
||||
// Код, выполняемый на сервере
|
||||
#Иначе
|
||||
// Код, выполняемый на клиенте
|
||||
#КонецЕсли
|
||||
```
|
||||
|
||||
Это позволяет создавать универсальные модули, адаптирующие своё поведение в зависимости от контекста выполнения.
|
||||
|
||||
## Повторное использование возвращаемых значений
|
||||
|
||||
Общие модули могут использовать механизм повторного использования возвращаемых значений функций для оптимизации производительности. Это позволяет избежать повторных вычислений при одинаковых входных параметрах.
|
||||
|
||||
Настройка этого поведения осуществляется через свойство модуля:
|
||||
|
||||
- **Не использовать** — повторное использование отключено.
|
||||
- **На время вызова** — результаты сохраняются на время выполнения функции.
|
||||
- **На время сеанса** — результаты сохраняются на время сеанса пользователя.
|
||||
|
||||
**Важно:** При использовании этого механизма следует учитывать, что функции должны быть чистыми (не изменять состояние системы) и не иметь побочных эффектов.
|
||||
|
||||
---
|
||||
|
||||
Для получения более подробной информации и примеров рекомендуется ознакомиться с официальной документацией 1С:ИТС по [ссылке](https://its.1c.ru/db/v8std/content/469/hdoc).
|
Loading…
x
Reference in New Issue
Block a user