Compare commits
No commits in common. "535746546287c1a1d0c091283d917e71aff7ef61" and "723f415dcc5ee3ac358795ba589dc0bc981394f4" have entirely different histories.
5357465462
...
723f415dcc
@ -1,57 +0,0 @@
|
|||||||
|
|
||||||
# Правила создания общих модулей
|
|
||||||
|
|
||||||
При разработке общих модулей в 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