Skip to content

Commit 06c0488

Browse files
committed
Правки
1 parent 6867a6a commit 06c0488

8 files changed

Lines changed: 44 additions & 54 deletions

File tree

docs/theory/client_server.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ title: Клиент-серверное взаимодействие
5656
* **Избегайте вызовов в циклах:** Не делайте серверный вызов для каждой строки таблицы. Соберите данные на клиенте и обработайте пакетом за один вызов.
5757
* **Задача разработчика — минимизировать количество и объем серверных вызовов.** Код нужно явно разделять между клиентом и сервером.
5858

59-
## Сетевое взаимодействие с кластером «1С»
59+
## Сетевое взаимодействие с кластером
6060

6161
1. **Протокол и адресация:** Все компоненты (клиенты, рабочие процессы, менеджеры) общаются по **TCP/IP**. Каждый процесс имеет уникальный адрес: **имя сервера + номер порта**.
6262

docs/theory/metadata/accounting_registers.md

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -36,36 +36,26 @@ title: Регистры бухгалтерии
3636

3737
## Ответы на ключевые вопросы
3838

39-
#### 1. Отличие от регистров накопления
40-
**Вопрос:** *Чем регистр бухгалтерии отличается от регистра накопления?*
41-
**Ответ:**
39+
#### 1. Чем регистр бухгалтерии отличается от регистра накопления?
4240
- **Привязка к плану счетов** — обязательная связь с конкретным планом счетов
4341
- **Субконто** — многоуровневая аналитика через план видов характеристик
4442
- **Корреспонденция** — поддержка двойной записи (Дт/Кт)
4543
- **Балансовый контроль** — проверка равенства сумм по дебету и кредиту
4644

47-
#### 2. Работа с субконто
48-
**Вопрос:** *Как настроить субконто для счета?*
49-
**Ответ:**
45+
#### 2. Как настроить субконто для счета?*
5046
1. В **плане счетов** открыть свойства нужного счета
5147
2. В разделе **"Субконто"** добавить типы субконто (Склады, Контрагенты и т.д.)
5248
3. В **регистре бухгалтерии** проверить количество включенных субконто
5349

54-
#### 3. Параметр `МетодДополнения`
55-
**Вопрос:** *Зачем нужен параметр `МетодДополнения`?*
56-
**Ответ:**
50+
#### 3. Зачем нужен параметр `МетодДополнения`?
5751
Управляет включением в результат записей **без оборотов за период, но с остатками**.
5852

59-
#### 4. Таблица `ДвиженияССубконто`
60-
**Вопрос:** *Когда использовать `ДвиженияССубконто` вместо `Остатки`?*
61-
**Ответ:**
53+
#### 4. Когда использовать `ДвиженияССубконто` вместо `Остатки`?
6254
Использовать `ДвиженияССубконто` когда нужно:
6355
- Получить **детальные проводки** с развернутыми субконто
6456
- Сделать **отбор по значениям субконто** (например, все операции по конкретному контрагенту)
6557
- Увидеть **все записи**, включая неактивные (сторнированные)
6658

67-
#### 5. Балансовый признак
68-
**Вопрос:** *В каком сценарии отключают балансовый признак у измерения?*
69-
**Ответ:**
59+
#### 5. В каком сценарии отключают балансовый признак у измерения?
7060
При **валютных операциях между разными организациями**.
71-
Пример: Перевод валюты из ОрганизацииА в ОрганизациюБ. В дебете — ОрганизацияА, в кредите — ОрганизацияБ. Без отключения балансового признака система выдаст ошибку.
61+
**Пример:** Перевод валюты из ОрганизацииА в ОрганизациюБ. В дебете — ОрганизацияА, в кредите — ОрганизацияБ. Без отключения балансового признака система выдаст ошибку.

docs/theory/metadata/common_modules.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ title: Общие модули
3535
#### Глобальный общий модуль
3636
* Функции доступны **без указания имени модуля**.
3737
* **Требование уникальности имен** функций в рамках всей конфигурации.
38-
* **Осторожно!** Может привести к конфликтам имен и усложнить чтение кода ("откуда эта функция?"
38+
* **Осторожно!** Может привести к конфликтам имен и усложнить чтение кода ("откуда эта функция?")
3939

4040
#### Вызов сервера
4141
* Устанавливать признак "Вызов сервера" только для тех серверных общих модулей, чьи экспортные методы действительно должны вызываться с клиента

docs/theory/metadata/documents.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -25,29 +25,29 @@ title: Документы
2525
| **Удалять автоматически** | 1. Перепроведение 2. Удаление 3. Отмена проведения | Всегда удаляет старые | **Когда нужна полная очистка** перед новыми движениями |
2626
| **Не удалять автоматически** | Никогда автоматически | Всегда | Оперативный учет в реальном времени или построчное проведение |
2727

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-
**Преимущество:** Во втором случае, данные будут заблокированы на гораздо меньшее время, чем в первом. А чем меньше длится блокировка, тем меньше вероятность возникновения проблем при многопользовательской работе.
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+
**Преимущество:** Во втором случае, данные будут заблокированы на гораздо меньшее время, чем в первом. А чем меньше длится блокировка, тем меньше вероятность возникновения проблем при многопользовательской работе.
5151
5252
## Последовательности
5353

docs/theory/metadata/event_subscriptions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ title: Подписки на события
5050

5151
### Особенности реализации
5252

53-
### Требования к общим модулям:
53+
#### Требования к общим модулям:
5454
- Сервер: Да
5555
- Внешнее соединение: Да (для COM)
5656

docs/theory/metadata/exchange_plans.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ title: Планы обмена и РИБ
5050
- Уникальный номер в рамках плана обмена
5151
- Подтверждения приема через номер последнего принятого сообщения
5252

53-
## Особенности РИБ (как специализации)
53+
## Особенности РИБ
5454

5555
| Аспект | Обычный план обмена | РИБ |
5656
|---|---|---|

docs/theory/request.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ title: Запросы
2121

2222
**Решение:** Создать дополнительный индекс или (осторожно) изменить порядок измерений.
2323

24-
## Работа с составными типами (ссылочные поля)
24+
## Работа с составными типами
2525
**Главная проблема:** Обращение к полю через точку (`Документ.Регистратор.Дата`) для поля составного типа приводит к **неявному соединению со ВСЕМИ** таблицами возможных типов (например, со всеми видами документов). Это резко замедляет запрос.
2626

2727
**Решение:**
@@ -38,7 +38,7 @@ title: Запросы
3838

3939
**Пример:** Получение "последней цены" через `ПО ... В (ВЫБРАТЬ МАКСИМУМ(Период) ...)` лучше делать в два шага через временную таблицу.
4040

41-
## Виртуальные таблицы (остатки, срезы)
41+
## Виртуальные таблицы
4242
1. **Всегда передавайте условия отбора в ПАРАМЕТРЫ виртуальной таблицы**, а не в `ГДЕ` основного запроса.
4343
* `...Остатки(, Склад = &Склад)` (ПРАВИЛЬНО)
4444
* `...Остатки() ГДЕ Склад = &Склад` (НЕПРАВИЛЬНО)
@@ -54,7 +54,7 @@ title: Запросы
5454
* `МЕСЯЦ(Дата) = 1` -> `Дата МЕЖДУ ДАТАВРЕМЯ(2023,01,01) И ДАТАВРЕМЯ(2023,01,31,23,59,59)`
5555
* **Конструкцию `ВЫБОР`** используйте только в дополнительных условиях в секции `ГДЕ`.
5656

57-
## Временные таблицы (рекомендации по использованию)
57+
## Временные таблицы
5858
* **Индексируйте** большие временные таблицы, участвующие в соединениях или условиях `В(...)`.
5959
* **Не помещайте** во временную таблицу лишние поля или записи.
6060
* **Не создавайте** временные таблицы в цикле. Создайте одну до цикла.

docs/theory/sql.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,17 +94,17 @@ WHERE РегистрСведений.Цены.Номенклатура = 'Тов
9494

9595
## Планы запросов
9696

97-
### Что такое план запроса и зачем он нужен?
97+
#### Что такое план запроса и зачем он нужен?
9898

9999
**План запроса** — это **пошаговая инструкция от СУБД**, показывающая конкретные алгоритмы выполнения SQL-запроса. Это "отладчик" для SQL-кода, который показывает реальную работу СУБД изнутри.
100100

101-
### Зачем анализировать планы?
101+
#### Зачем анализировать планы?
102102
- **Понимать реальную производительность** (не только на тестовых данных)
103103
- **Находить узкие места** — операции, которые "съедают" время
104104
- **Предотвращать проблемы** в боевой системе при росте данных
105105
- **Оптимизировать запросы** на основе реального поведения СУБД
106106

107-
## Ключевые концепции и операторы
107+
### Ключевые концепции и операторы
108108

109109
**Базовые алгоритмы СУБД**
110110
СУБД использует понятные алгоритмы, знакомые программистам:
@@ -140,7 +140,7 @@ WHERE РегистрСведений.Цены.Номенклатура = 'Тов
140140
Источники данных → Фильтрация → Соединения → Сортировка → Результат
141141
```
142142

143-
## Как читать и анализировать планы
143+
### Как читать и анализировать планы
144144

145145
**Ключевые метрики:**
146146

@@ -163,7 +163,7 @@ WHERE РегистрСведений.Цены.Номенклатура = 'Тов
163163
3. **Проанализировать вложенность** (операторы внутри операторов)
164164
4. **Оценить количество обрабатываемых строк**
165165

166-
## Инструменты для работы с планами
166+
### Инструменты для работы с планами
167167

168168
**Для MS SQL Server:**
169169

@@ -188,7 +188,7 @@ WHERE РегистрСведений.Цены.Номенклатура = 'Тов
188188
- Технологический журнал 1С
189189
- PgAdmin (через `EXPLAIN ANALYZE`)
190190

191-
## Типичные проблемы 1С и их признаки в планах
191+
### Типичные проблемы 1С и их признаки в планах
192192

193193
**1. Общий поиск ("Поиск подобно")**
194194
- **Признак:** `LIKE '%значение%'` по нескольким полям
@@ -223,7 +223,7 @@ WHERE РегистрСведений.Цены.Номенклатура = 'Тов
223223
- **Запрос:** `WHERE Организация = ? AND Номенклатура = ?` (пропущен "Склад")
224224
- **Результат:** Index Scan может быть МЕДЛЕННЕЕ Sequential Scan
225225

226-
## Процесс анализа на боевой базе
226+
### Процесс анализа на боевой базе
227227

228228
**Этап 1: Поиск проблемных запросов**
229229

@@ -253,7 +253,7 @@ WHERE РегистрСведений.Цены.Номенклатура = 'Тов
253253
3. Переписать сложные запросы (особенно "Срезы последних")
254254
4. Проверить актуальность статистики
255255

256-
## Критические выводы и рекомендации
256+
### Критические выводы и рекомендации
257257

258258
**Общие принципы:**
259259
1. **Не тестируйте на маленьких данных!** Поведение на миллионах записей — совершенно другое

0 commit comments

Comments
 (0)