Рассмотрим ситуацию, с которой могут столкнуться администраторы и разработчики 1С при работе с высоконагруженными базами. Представьте: в конфигурации «Бухгалтерия 2.0» зависло регламентное задание «Пересчет итогов», а пользователи жалуются на ошибки блокировок и не могут проводить документы. Временным решением неожиданно становится отключение режима разделения итогов для регистра бухгалтерии. Сразу возникают вопросы: насколько это безопасно, не потеряются ли данные и можно ли будет всё вернуть обратно без последствий? Давайте разберемся в этом механизме подробно.
Для начала проанализируем, что это за механизм и какую задачу он решает. Режим разделения итогов — это технология платформы 1С, созданная для увеличения производительности и параллельности работы в многопользовательских системах. Его главная цель — минимизировать конфликты блокировок при одновременной записи данных в регистры накопления и бухгалтерии.
Чтобы понять его пользу, сравним два сценария работы:
_Splitter). Таким образом, пользователи не блокируют друг друга и могут параллельно сохранять свои данные. Когда системе нужно получить актуальный остаток, она просто суммирует все эти «разделенные» записи для нужной аналитики.Этот механизм критически важен для систем с интенсивным документооборотом, где десятки или сотни пользователей одновременно проводят документы.
Вернемся к нашей исходной проблеме: задание зависло, режим отключили. Чем это чревато? Разберем главные опасения по порядку.
1. Сохранность данных и актуальность итогов.
Это самый важный вопрос. Спешим успокоить: отключение и последующее включение режима разделения итогов не приводит к потере данных или нарушению их целостности. Этот механизм влияет только на способ записи данных для оптимизации параллельной работы, но не на сами данные. Итоги — это фундаментальная вещь, хранящаяся в отдельных таблицах СУБД. Отключение режима лишь меняет стратегию обновления этих таблиц.
Более того, граница рассчитанных итогов не сместится. Если у вас итоги были актуальны, например, на 28 февраля, то после всех манипуляций эта дата останется прежней. Система корректно хранит эту информацию.
Практика это подтверждает: автор исходного вопроса, включив настройку обратно, убедился, что все данные на месте, а граница актуальности осталась там, где и была.
2. Главный риск — производительность и блокировки.
Основная опасность отключения этого режима — резкое падение производительности при одновременной работе пользователей. Как только вы снимаете эту галочку, система возвращается к старой модели, описанной выше: транзакции по одинаковым счетам и аналитике начинают выстраиваться в очередь и блокировать друг друга. Это неминуемо приведет к:
Таким образом, отключать этот режим надолго в работающей многопользовательской базе — плохая идея.
Важно понимать, что зависание регламентного задания по пересчету итогов, скорее всего, не было вызвано самим механизмом разделения итогов. Он как раз создан, чтобы помогать, а не мешать. Временное отключение режима, вероятно, просто изменило план выполнения запросов к СУБД и позволило обойти «узкое место», но первопричина проблемы, скорее всего, осталась.
Рассмотрим более вероятные причины таких зависаний:
Вывод: отключение разделения итогов — это не решение, а лишь обходной маневр. Для настоящего решения проблемы необходимо анализировать технологический журнал 1С и средства мониторинга СУБД (например, Activity Monitor в MS SQL Server), чтобы найти источник блокировки.
Если вы всё же прибегли к временному отключению, вернуть всё в штатный режим просто и безопасно.
Никаких дополнительных действий, как правило, не требуется. Система начнет снова использовать механизм разделения для новых транзакций. А при следующем выполнении регламентного задания по пересчету итогов платформа сама проведет «уборку» — свернет накопленные разделенные записи в итоговые, оптимизируя хранение.
Итоговый вердикт: Временно отключать режим разделения итогов в экстренной ситуации можно, это не приведет к потере данных. Однако следует помнить, что это не решает исходную проблему и создает серьезные риски для производительности. Используйте это как временную меру, а основные усилия направьте на поиск и устранение настоящей причины сбоя.