Новая статья
This commit is contained in:
parent
67b51a49a0
commit
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