Контроль остатков
Две методики контроля отрицательных остатков при проведении документа: Старая (проверка до записи) и Новая (проверка после записи с откатом). Выбор зависит от архитектуры и требований к параллельности.
Сравнение методик
| Критерий | Старая методика (До записи) | Новая методика (После записи) |
|---|---|---|
| Принцип | 1. Заблокировать данные 2. Запросить доступные остатки 3. Если хватает — записать движения | 1. Сразу записать движения 2. Проверить отрицательные остатки 3. Если есть — откатить транзакцию |
| Блокировки | Нужно явно блокировать строки перед запросом (Новый БлокировкаДанных) | Достаточно БлокироватьДляИзменения |
| Запрос остатков | Сложный: соединение таблиц документа и регистра | Простой: отбор по отрицательным значениям в одной таблице |
| Производительность | Медленнее (запрос на получение остатков + предварительная блокировка) | Быстрее (Нет необходимости очищать старые движения документа, сокращение времени блокировки и отсутствие соединения таблиц в запросе на получение остатков) |
| Когда использовать | Когда нужны данные из регистра для расчета (например, себестоимость) | Когда все данные есть в документе (количество, номенклатура) |