Администрирование · 11 мин
Режим разделения итогов в 1С: назначение, настройка и типичные ошибки
Что такое режим разделения итогов в 1С, чем отличаются варианты «при проведении» и «при записи», как выбрать режим и проверить результат.
Режим разделения итогов — это свойство регистра накопления в 1С, которое определяет, как платформа хранит и обновляет итоговые данные регистра. От выбранного режима напрямую зависят скорость проведения документов, вероятность блокировок при параллельной работе пользователей и актуальность остатков, которые видят отчёты и механизмы контроля (например, контроль отрицательных остатков на складе).
У регистра накопления существуют два варианта этого режима: «При проведении» (разделение итогов включено) и «При записи» (разделение итогов отключено). В первом случае платформа хранит итоги в нескольких разделённых таблицах, что снижает конкуренцию транзакций за одни и те же строки. Во втором случае итоги обновляются в единой таблице, что упрощает структуру, но повышает риск взаимных блокировок при интенсивной одновременной записи.
Неправильно выбранный режим — одна из частых причин жалоб на «тормоза» при проведении документов и на ошибки вида «Конфликт блокировок при выполнении транзакции». При этом изменить режим можно в любой момент, но делать это нужно осознанно: переключение требует реструктуризации данных и влияет на поведение всех механизмов, работающих с регистром.
Что именно делает режим разделения итогов
Регистр накопления хранит не только сами движения (записи документов), но и предрассчитанные итоги — остатки и обороты по измерениям. Именно за счёт итогов отчёты и виртуальные таблицы (Остатки, Обороты, ОстаткиИОбороты) работают быстро: платформе не нужно каждый раз суммировать миллионы строк движений.
Когда документ проводится, итоги нужно обновить. Если все транзакции пишут итоги в одни и те же строки таблицы, при одновременном проведении нескольких документов по одному товару или складу возникает конкуренция: одна транзакция ждёт другую, а при неудачном стечении обстоятельств возникает взаимоблокировка и ошибка. Разделение итогов решает эту проблему: платформа распределяет обновления по нескольким физическим разделам (строкам с разными служебными ключами), и параллельные транзакции редко пересекаются.
Плата за это — некоторое усложнение чтения итогов: при расчёте остатков платформа суммирует данные из нескольких разделов. На современных версиях платформы это практически незаметно, поэтому разделение итогов считается вариантом по умолчанию для большинства прикладных решений.
Два значения режима: «При проведении» и «При записи»
В конфигураторе свойство называется «Режим разделения итогов» и находится в палитре свойств регистра накопления. Значение «При проведении» означает, что разделение итогов включено: итоги обновляются с использованием разделителей при проведении документов. Значение «При записи» означает, что разделение отключено, и итоги обновляются в едином пространстве при любой записи движений.
Названия исторически сбивают с толку, потому что движения записываются и в том, и в другом случае. Разница не в моменте записи, а в структуре хранения итогов: разделённые итоги против единых. При отключённом разделении платформа может быстрее отдавать актуальные итоги в некоторых сценариях, но любая параллельная запись по совпадающим измерениям становится потенциальным источником блокировки.
| Критерий | При проведении (разделение вкл.) | При записи (разделение выкл.) |
|---|---|---|
| Параллельное проведение | Низкий риск блокировок | Высокий риск конфликтов транзакций |
| Чтение итогов | Суммирование по разделам, чуть сложнее | Чтение из единой таблицы |
| Рекомендуемое применение | Регистры с интенсивной записью, много пользователей | Регистры с редкой записью или строгими требованиями к актуальности итогов |
| Значение по умолчанию в типовых | Используется для большинства регистров | Применяется точечно, по решению разработчиков конфигурации |
Как выбрать режим для конкретного регистра
Основной критерий выбора — интенсивность и параллельность записи. Если по регистру одновременно проводят документы несколько пользователей или фоновые задания (типичный пример — товарные регистры в торговой компании с несколькими менеджерами), разделение итогов должно быть включено. Это стандартная рекомендация для регистров с высокой конкуренцией за итоги.
Отключать разделение имеет смысл только в узких сценариях: когда запись в регистр идёт редко и строго последовательно, а критична максимально быстрая выборка итогов, либо когда этого требует логика конкретного прикладного механизма. Перед отключением стоит убедиться, что в базе действительно нет параллельного проведения по этому регистру — иначе вместо ускорения вы получите рост ошибок блокировок.
Как выбрать действие
Как посмотреть и изменить режим в конфигураторе
Настройка выполняется в конфигураторе и требует монопольного доступа к информационной базе, потому что изменение режима вызывает реструктуризацию таблиц регистра. На больших базах реструктуризация может занять продолжительное время, поэтому операцию планируют на период минимальной нагрузки и обязательно делают резервную копию.
- 1Сделайте резервную копию информационной базы
- 2Откройте конфигуратор и найдите нужный регистр накопления в дереве конфигурации
- 3Откройте палитру свойств регистра и найдите свойство «Режим разделения итогов»
- 4Установите нужное значение: «При проведении» или «При записи»
- 5Сохраните конфигурацию и выполните обновление конфигурации базы данных в монопольном режиме
- 6После реструктуризации выполните пересчёт итогов регистра и проверьте работу отчётов
В типовых конфигурациях изменение свойств объектов, находящихся на поддержке, приведёт к снятию объекта с полной поддержки. Это не запрещено, но каждое последующее обновление конфигурации потребует ручного контроля этого изменения. Если регистр типовой, сначала стоит выяснить, почему разработчики выбрали текущий режим, и нет ли штатного способа решить проблему с производительностью.
Связь с пересчётом и актуальностью итогов
Разделение итогов часто путают с пересчётом итогов, но это разные операции. Пересчёт итогов (через «Тестирование и исправление» или программно методом ПересчитатьИтоги) восстанавливает итоговые таблицы по данным движений и нужен при расхождении остатков. Смена режима разделения меняет саму структуру хранения итогов, после чего пересчёт обычно выполняется автоматически в ходе реструктуризации.
После любых манипуляций с итогами полезно проверить базовый признак корректности: остаток по виртуальной таблице Остатки должен совпадать с суммой движений по регистру за весь период. Если после переключения режима отчёты показывают прежние цифры и не возникает ошибок при проведении — переход прошёл штатно.
Как проверить результат
Документы проводятся без ошибок блокировок даже при параллельной работе
Ошибки «Конфликт блокировок» или «Превышено время ожидания» появляются регулярно
Остатки совпадают с данными до смены режима и с суммой движений
Остатки расходятся с движениями или обнулились
Время формирования отчётов не выросло заметно
Отчёты стали формироваться значительно медленнее
Типичные ошибки и ограничения
Самая распространённая ошибка — отключение разделения итогов «для ускорения» без анализа нагрузки. На многопользовательской базе это почти гарантированно приводит к росту конфликтов блокировок, и выигрыш в скорости чтения итогов полностью теряется на фоне ошибок и повторных проведений документов.
Вторая ошибка — ожидание, что смена режима вылечит уже существующие расхождения остатков. Разделение влияет на способ хранения, а не на корректность данных: если итоги испорчены, их нужно пересчитывать отдельно. Третья ошибка — изменение режима в типовой конфигурации без фиксации этого факта в документации проекта: при следующем обновлении изменение может быть утеряно или вызвать конфликт при сравнении-объединении.
FAQ
Какой режим разделения итогов выбрать для нового регистра накопления?
Для нового регистра разумным выбором по умолчанию является «При проведении» — то есть включённое разделение итогов. Оно безопаснее при росте числа пользователей и не требует переделки, когда нагрузка вырастет. Отключать разделение стоит только при наличии конкретной причины и подтверждающих замеров.
Почему после отключения разделения итогов стали появляться ошибки блокировок?
Потому что все транзакции проведения стали обновлять одни и те же строки единой таблицы итогов. При одновременном проведении документов с совпадающими измерениями (товар, склад, организация) транзакции блокируют друг друга. Решение — вернуть режим «При проведении» и пересчитать итоги.
Нужно ли пересчитывать итоги после смены режима разделения?
При обновлении конфигурации базы данных платформа выполняет реструктуризацию, в ходе которой итоги перестраиваются. Дополнительный пересчёт обычно не требуется, но рекомендуется проверить остатки по ключевым измерениям и при любом расхождении выполнить полный пересчёт итогов регистра.
Влияет ли режим разделения итогов на скорость отчётов?
Влияние есть, но оно невелико: при включённом разделении платформа суммирует данные из нескольких разделов, что чуть усложняет запрос. На практике гораздо сильнее на скорость отчётов влияют период расчёта итогов, индексы, корректность запросов и общий объём данных.
Можно ли менять режим разделения итогов в типовой конфигурации?
Технически можно, но объект будет снят с полной поддержки, и при каждом обновлении придётся контролировать это изменение вручную. Сначала стоит проверить, не решается ли проблема штатными средствами: пересчётом итогов, настройкой периода итогов, оптимизацией запросов или обновлением платформы.
Чем разделение итогов отличается от управляемых блокировок?
Это разные механизмы, решающие схожую задачу — снижение конкуренции транзакций. Управляемые блокировки регулируют захват данных на уровне прикладной логики и режима работы конфигурации, а разделение итогов меняет физическую структуру хранения итогов регистра. В современных решениях они применяются совместно.
Что важно запомнить
Режим разделения итогов определяет, как регистр накопления хранит итоги: раздельно («При проведении») для устойчивости к параллельной записи или единой таблицей («При записи»). Для большинства регистров правильный выбор — включённое разделение. Любую смену режима выполняйте в монопольном режиме, с резервной копией и последующей проверкой остатков.