База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Что значит «разрешить разделение итогов» в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 7 минут назад сделано
Odin — Одинэсник.
-
АвторЗаписи
-
-
22 октября 2026 в 17:00 #38888
Что означает «разрешить разделение итогов» в настройках регистра накопления?
-
22 октября 2026 в 17:00 #38889
«Разрешить разделение итогов» означает разрешить платформе хранить итоги регистра не в одной общей записи, а в нескольких отдельных записях, если несколько сеансов одновременно записывают движения по одним и тем же наборам измерений.
Это механизм повышения параллельности записи в:
— регистрах накопления;
— регистрах бухгалтерии.## Проблема без разделения итогов
Допустим, несколько пользователей одновременно проводят документы по одному складу и одной номенклатуре.
Регистр накопления хранит итог по комбинации:
1С (Код)12Склад = ОсновнойНоменклатура = Товар АБез разделения итогов несколько транзакций могут одновременно пытаться изменить одну и ту же итоговую запись:
1С (Код)1Итог по Товару А = 100Одна транзакция хочет уменьшить итог на 5, другая на 10. Им обеим нужно изменить одну запись итогов. В результате повышается вероятность:
— ожиданий блокировок;
— взаимоблокировок;
— тайм-аутов;
— снижения параллельности проведения документов.## Что происходит при включенном разделении итогов
При включенном механизме платформа может создать отдельные записи итогов для разных параллельно работающих транзакций:
1С (Код)12Основной склад, Товар А, разделитель 1: -5Основной склад, Товар А, разделитель 2: -10При чтении итогового значения платформа учитывает все такие записи:
1С (Код)123Общий итог = значение основной записи+ значение разделенной записи 1+ значение разделенной записи 2Для прикладного решения результат остается тем же. Пользователь не работает с «разделенными» итогами напрямую. Платформа сама объединяет их при получении итогов.
## Что именно разделяется
Разделяются не движения регистра и не данные по пользователям. Разделяются внутренние записи таблиц итогов.
Обычная структура выглядит для прикладного решения примерно так:
1С (Код)123СкладНоменклатураКоличествоОстатокПри разделении итогов внутри базы могут появиться несколько записей для одной комбинации измерений. У этих записей есть внутренний признак разделения.
В прикладном коде вы по-прежнему получаете обычный итог:
1С (Код)1Товар А на Основном складе: 85 штукПлатформа сама суммирует необходимые части.
## Важное свойство
Разделение итогов:
— повышает параллельность записи;
— уменьшает конкуренцию транзакций за одну запись итогов;
— обычно ускоряет проведение при одновременной работе пользователей;
— может увеличить объем таблиц итогов;
— может несколько усложнить получение и обслуживание итогов;
— не заменяет управляемые блокировки при контроле остатков.Основная формула:
1С (Код)12Разделение итогов улучшает параллельную запись,но требует дополнительных ресурсов.## Почему иногда говорят «быстрее читает, медленнее записывает»
Здесь нужно аккуратно понимать формулировку.
Само разделение итогов предназначено прежде всего для повышения параллельности записи. При конкурентной записи транзакциям проще работать с отдельными итоговыми записями, поэтому уменьшаются блокировки и ожидания.
Но у механизма есть цена:
— при записи могут создаваться дополнительные записи;
— при чтении платформа может учитывать несколько частей итогов;
— итоговые таблицы могут занимать больше места;
— при обслуживании и пересчете итогов требуется больше работы.Поэтому нельзя считать, что разделение итогов безусловно ускоряет любую операцию. Оно особенно полезно при высокой конкуренции за одни и те же данные.
## Связь с использованием итогов
Это разные настройки.
### Использование итогов
Определяет, будут ли использоваться предварительно рассчитанные итоги для ускорения получения остатков и оборотов.
### Разрешение разделения итогов
Определяет, может ли платформа хранить изменения итогов в нескольких разделенных записях при параллельной записи.
Возможны разные состояния:
1С (Код)1Итоги включены, разделение итогов выключеноили:
1С (Код)1Итоги включены, разделение итогов включеноДля оперативного учета обычно нужны оба механизма, но решение зависит от нагрузки и особенностей регистра.
## Где настраивается
В конфигураторе свойство находится у регистра накопления, в свойствах регистра:
1С (Код)123Регистры накоплениянужный регистрРазрешить разделение итоговПосле разрешения в конфигурации фактический режим использования также может управляться в пользовательском режиме через обработку управления итогами.
То есть важно различать:
1. Разрешено в конфигурации
Платформа может использовать разделение итогов для данного регистра.2. Включено в информационной базе
Механизм реально используется в текущем режиме работы базы.Если в конфигураторе разделение итогов запрещено, в пользовательском режиме включить его нельзя. Такой параметр обычно будет недоступен для изменения.
## Как это связано с управляемыми блокировками
Это два разных механизма.
### Разделение итогов
Снижает конкуренцию при записи итоговых данных регистра.
### Управляемая блокировка
Не позволяет нескольким документам одновременно проверить и изменить один и тот же остаток.
Например, контроль остатков должен выполняться с блокировкой:
1С (Код)12345Документ 1 заблокировал Товар АДокумент 1 проверил остатокДокумент 1 сформировал расходДокумент 2 ждет освобождения блокировкиДокумент 2 после этого проверяет уже измененный остатокВключение разделения итогов само по себе не гарантирует корректный контроль остатков. Если в коде проведения нет правильной блокировки, два документа все равно могут одновременно прочитать один и тот же остаток и оба принять решение, что товара хватает.
Поэтому:
1С (Код)12разделение итогов отвечает за параллельную запись итогов;управляемая блокировка отвечает за согласованность проверки остатков.## Когда разделение итогов имеет смысл
Обычно его рассматривают для регистров, в которые одновременно пишут много пользователей:
— остатки товаров;
— товары на складах;
— взаиморасчеты;
— денежные средства;
— заказы и резервирование;
— регистры, по которым часто проводятся документы в параллельных сеансах.Особенно актуально, когда:
— много пользователей одновременно проводят документы;
— документы пишут движения по одним складам и товарам;
— есть тайм-ауты блокировок;
— возникают взаимоблокировки на регистрах;
— в технологическом журнале видны ожидания блокировок при записи итогов.## Когда не стоит включать без проверки
Не следует включать разделение итогов автоматически на всех регистрах.
Причины:
— увеличивается объем итоговых таблиц;
— усложняется работа с итогами;
— дополнительная оптимизация может быть не нужна при небольшой нагрузке;
— проблема может быть не в итогах, а в неправильной блокировке, длинной транзакции или записи последовательностей;
— при плохом алгоритме проведения разделение итогов не исправит ошибку прикладной логики.Сначала анализируют:
1. какие документы пишут в регистр;
2. сколько пользователей проводят их одновременно;
3. по каким измерениям возникает конкуренция;
4. есть ли ожидания и взаимоблокировки;
5. правильно ли установлены управляемые блокировки;
6. не удерживается ли транзакция дольше необходимого.## Пример для экзамена
Предположим, регистр накопления:
1С (Код)1ОстаткиТоваровИзмерения:
1С (Код)12СкладНоменклатураРесурс:
1С (Код)1КоличествоДва документа одновременно записывают движения по:
1С (Код)12Склад = Основной складНоменклатура = Товар АБез разделения итогов они конкурируют за одну итоговую запись.
С включенным разделением итогов платформа может разнести изменения по нескольким внутренним записям, а при чтении вычислить общий остаток.
Фраза для экзамена:
> Разрешение разделения итогов позволяет повысить параллельность работы с регистром накопления при одновременной записи движений. Изменения итогов могут записываться в разные записи, а при чтении данные суммируются. Механизм уменьшает конкуренцию за итоговые записи, но увеличивает объем хранимых итоговых данных и не заменяет блокировку при контроле остатков.
Рекомендую посмотреть здесь: https://helpf.pro/faq/view/545.html
-
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.