You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Бизнес-процессы** позволяют создавать экземпляры процессов, которые следуют определённому маршруту, включающему различные точки и действия. Они реализуют концепцию **Workflow**, обеспечивая ролевую маршрутизацию заданий между пользователями.
8
+
9
+
**Задачи** представляют собой задания, которые возникают в ходе выполнения бизнес-процессов и могут быть адресованы конкретным пользователям или ролям. Они являются "движущей силой" бизнес-процессов, обеспечивая переход процесса на следующую точку маршрута после выполнения задачи. Могут использоваться автономно.
10
+
11
+
При формировании списка задач для конкретного сотрудника, используется регистр сведений, который обеспечивает нахождение соответствий роль-сотрудник согласно системе адресации, настроенной в задаче.
**Регистры расчета** — это объекты конфигурации, предназначенные для регистрации результатов периодических расчетов с поддержкой сложных взаимосвязей между ними
7
+
8
+
### Ответы на ключевые вопросы
9
+
10
+
#### 1. Какие таблицы бывают у регистра?
11
+
Зависит от типа регистра. Есть таблицы База и данные графика, если связан с регистром сведений.
12
+
13
+
#### 2. Зачем нужны регистры расчета, если можно решить через регистры накопления? Регистры расчета отслеживают зависимости от одного вида расчета от другого?
14
+
Да, основное преимущество регистров расчета перед регистрами накопления — реализация сложных расчетных механизмов:
15
+
16
+
***Механизм вытеснения** — записи одного вида расчета (например, "Отпуск") исключают пересекающиеся записи другого (например, "Оклад")
17
+
***Механизм перерасчетов** — при изменении базового расчета автоматически пересчитываются зависящие от него
18
+
***Учет базового периода** — для расчетов, основанных на данных за предыдущие периоды
19
+
20
+
Хотя связи между расчетами настраиваются в плане видов расчета, сами механизмы (вытеснение, перерасчет, сторно) реализованы именно в регистрах расчета.
**План видов расчета (ПВР)** — служат для описания видов расчета, которые имеют сложные взаимные влияния во времени.
7
+
8
+
### Типы влияний между видами расчета
9
+
10
+
**Базовые** — результаты которых используются при перерасчете;
11
+
12
+
**Ведущие** — изменения в которых требуют перерасчета зависимого вида;
13
+
14
+
**Вытесняющие** — которые могут вытеснять другие виды расчета по периоду действия
15
+
16
+
| Тип влияния | Логика работы | Пример | Как настраивается |
17
+
|---|---|---|---|
18
+
|**Зависимость по базовому периоду**| Вид Б нужен для вычисления вида А. Система гарантирует, что при изменении Б пересчитается А. |`Премия` → зависит от `Оклада`. Премия считается от суммы оклада. | В свойствах вида А (`Премия`) в поле **"Зависимость по базовному периоду"** добавляется вид Б (`Оклад`). |
19
+
| **Вытеснение по периоду действия** | Вид В "отменяет" действие вида Г на общей части их периодов действия. | `Больничный` → вытесняет `Оклад`. За дни больничного оклад не начисляется. | При описании расчета Оклад следует отметить Больничный как вытесняющий.
20
+
|**Ведущие виды расчета**| Изменение ведуших требует перерасчета зависимых | Если `Больничный` вытесняет `Оклад`, а `Премия` зависит от `Оклада`, то `Больничный` — ведущий для `Премии`. | Для Премии нужно вручную включить в список ведущих как Оклад, так и Больничный |
**Объект метаданных, определяющий набор допустимых типов данных.** Контейнеры для наборов типов данных, которые обеспечивают единообразие и централизацию. Используются когда одни и те же типы нужны в разных местах конфигурации или когда нужно гарантировать одинаковые форматы данных в разных базах. Особенно полезны для финансовых показателей (точность сумм), кодов (валют, стран) и сложных структур данных.
Copy file name to clipboardExpand all lines: docs/theory/metadata/documents.md
+55-2Lines changed: 55 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,51 @@ sidebar_position: 19
3
3
sidebar_label: Документы
4
4
title: Документы
5
5
---
6
-
Объект метаданных для фиксации хозяйственных операций с временной привязкой.
6
+
**Документы** — объекты для регистрации хозяйственных операций и событий предприятия (накладные, счета, платежки). Имеют **временную последовательность** и могут **проводиться** для изменения учетных данных.
7
+
8
+
### Основные события
9
+
10
+
#### **Модуль объекта:**
11
+
| Событие | Когда вызывается | Для чего используется |
12
+
|---|---|---|
13
+
|**`ПередЗаписью()`**| Перед записью | Валидация, расчеты |
14
+
|**`ПриЗаписи()`**| Во время записи | Дополнительные проверки, запись связанных данных |
15
+
|**`ОбработкаПроведения()`**| При проведении | Создание движений |
16
+
|**`ОбработкаЗаполнения()`**| При создании | Автозаполнение полей |
17
+
18
+
### Удаление движений
19
+
20
+
Свойство **«Удаление движений»** управляет автоматическим удалением записей регистров при работе с документом. Влияет на параллельность работы и производительность.
21
+
22
+
| Вариант | Когда удаляет движения | Когда НЕ удаляет | Для чего используется |
23
+
|---|---|---|---|
24
+
|**Удалять автоматически при отмене проведения** (стандарт) | 1. Удаление документа 2. Отмена проведения | Перепроведение (перезаписывает) ||
25
+
|**Удалять автоматически**| 1. Перепроведение 2. Удаление 3. Отмена проведения | Всегда удаляет старые |**Когда нужна полная очистка** перед новыми движениями |
26
+
|**Не удалять автоматически**| Никогда автоматически | Всегда | Оперативный учет в реальном времени или построчное проведение |
27
+
28
+
### Влияние на блокировки и производительность
29
+
30
+
#### **«Удалять автоматически» (плохо для параллельности):**
31
+
```
32
+
Начало транзакции
33
+
🔒 УДАЛЕНИЕ старых движений (X-блокировка)
34
+
🔒 Длительные вычисления и прочие действия
35
+
🔒 Запись движений
36
+
🔒 Контроль остатков
37
+
Фиксация
38
+
```
39
+
При перепроведении этого документа, еще до выполнения процедуры `ОбработкаПроведения`, движения будут удалены.
40
+
Что бы удалить данные платформа накладывает **X** блокировку, которая держится до конца транзакции.
41
+
42
+
#### **«Удалять автоматически при отмене проведения» (лучше для параллельности):**
43
+
```
44
+
Начало транзакции
45
+
Длительные вычисления и прочие действия
46
+
🔒 Запись движений
47
+
🔒 Контроль остатков
48
+
Фиксация
49
+
```
50
+
**Преимущество:** Во втором случае, данные будут заблокированы на гораздо меньшее время, чем в первом. А чем меньше длится блокировка, тем меньше вероятность возникновения проблем при многопользовательской работе.
7
51
8
52
## Последовательности
9
53
@@ -33,4 +77,13 @@ title: Документы
33
77
```bsl
34
78
- Если ввод интерактивный в обработчике ОбработкаПроверкиЗаполнения
35
79
- Если программно тогда явно вызвать ПроверитьЗаполнение()
36
-
```
80
+
```
81
+
82
+
#### 3. Чем отличаются три варианта удаления движений?
83
+
-**«При отмене»**: удаляет только при удалении/отмене документа
84
+
-**«Автоматически»**: удаляет при любом перепроведении
85
+
-**«Не удалять»**: никогда автоматически, нужно управлять вручную
86
+
87
+
#### 4. Как влияет на производительность?
88
+
**«Автоматически»** блокирует движения **в начале** транзакции → плохо при долгих расчетах.
89
+
**«Не удалять»** блокирует в **конце** → лучше для параллельности.
Для динамического ограничения выбора используется обработчик `ОбработкаПолученияДанныхВыбора` в модуле менеджера перечисления. Это позволяет программно фильтровать доступные значения в зависимости от условий (констант, настроек, прав)."
0 commit comments