Ограничения свертки 1С: какие данные нужно учесть
Ряд сведений не может быть свернут:
- НДС по ставке 0%, который еще не подтвержден
- Операции поступления импортных товаров, по которым ГТД еще не оформлена
- Денежные средства в пути, за исключением поступлений из банка по эквайрингу
- Товары, отгруженные без перехода права собственности
- Товары, ожидающие оформления отчетов комитенту
- Данные учета внеоборотных активов версии 2.2
- Основные средства, находящиеся в процессе выбытия (счет 01.09)
- Взаиморасчеты с контрагентами-акционерами
- Незавершенное производство
- Брак в производстве
Эти сведения в процессе свертки будут удалены. Если перечисленный функционал используется, выполнять свертку информационной базы не рекомендуется.
Также учитывайте, что при свертке информационной базы удаляется вся история взаимоотношений с партнерами. После этого механизмы расчета скидок могут работать иначе, а мониторинг целевых показателей за свернутый период будет недоступен.
Назначение стандартной свертки в 1С:ERP
Типовая свертка 1С:ERP включает три стадии: формирование начальных остатков по регистрам на дату свертки, удаление данных прошлых периодов с пометкой старых документов на удаление и последующую сверку остатков с исходной базой. В процессе создаются документы «Ввод начальных остатков» по ТМЦ, взаиморасчетам, денежным средствам и другим учетным регистрам. Затем типовая обработка помечает старые документы на удаление, но не всегда сразу физически удаляет их из базы. После этого приходится запускать дополнительные процедуры очистки. При большом объеме данных стандартное удаление помеченных объектов может работать очень долго или зависать. Из-за этого свертка крупных баз иногда занимает несколько дней и не приводит к заметному уменьшению размера БД.
Преимущества многопоточной обработки
Для ускорения длительных операций в 1С:ERP применяют фоновые задания и многопоточность, например через расширение «Длительные операции» или механизмы платформы. Такой подход особенно полезен, когда данные можно разделить на независимые блоки. Если разные участки обработки не пересекаются, их можно выполнять параллельно, что заметно повышает производительность на больших объемах данных. Например, несколько блоков регистров или документов можно обрабатывать в отдельных потоках. При большом количестве движений по регистрам удобно делить дату или диапазон документов на части и запускать удаление каждой части в отдельном фоновом задании. Это позволяет быстрее выполнять операции с большим объемом данных.
Стандартный алгоритм ввода остатков
Первый этап свертки — формирование документов ввода остатков — выполняется по типовому алгоритму 1С:ERP. Наша обработка использует именно этот проверенный механизм. Система рассчитывает остатки по каждому регистру, включая балансовые и управленческие, на конец указанной даты и заполняет документы «Ввод начальных остатков» или «Корректировка записей регистров накопления». Например, если выбрана дата свертки 31.12.2024, документы обычно создаются на 01.01.2025 и включают остатки по складским запасам, кассе, счетам, взаиморасчетам с контрагентами и другим регистрам. Важно, что дату документов ввода остатков устанавливают следующим днем после свернутой даты: иначе они попали бы под свертку. Это обеспечивает корректное формирование остатков в соответствии с алгоритмами платформы.
Многопоточное удаление старых данных
Главная особенность нашей обработки — второй этап, то есть удаление старых записей, выполняется в многопоточном режиме. После формирования документов ввода остатков нужно удалить движения регистров и пометить на удаление документы за период до даты свертки. В типовой обработке это выполняется последовательно и может занимать много времени. Наша обработка делит эту задачу на N потоков, которые одновременно обрабатывают разные части данных. Алгоритм следующий:

Подготовка выборки
Подготовка выборки: запрос отбирает движения регистров и документы, дата которых раньше даты свертки. Например, выбираются ключи записей из регистров накопления по заданному условию. Каждый поток получает собственную порцию таких данных.

Разбивка на порции
Разбивка на порции: список ключей или диапазоны дат делятся на несколько частей по числу потоков. Например, при 4 потоках первый обрабатывает одну часть, второй — другую и так далее. Последнему потоку передаются оставшиеся данные.

Параллельное удаление
Параллельное удаление: запускаются фоновые многопоточные задания. В платформе 1С для этого можно использовать механизмы БСП, например ДлительныеОперации.ВыполнитьФункциюВНесколькоПотоков или аналогичные средства. Каждый поток вызывает одну и ту же функцию удаления, но с разными параметрами: своей порцией ключей или диапазоном дат. Интерфейс не блокируется, а параллельное выполнение заметно сокращает время процедуры.
Настройка потоков и фильтр по организации
Перед запуском многопоточной свертки пользователь указывает число потоков. Обычно выбирают количество, равное или немного большее числу ядер сервера. Слишком большое число потоков не всегда дает пропорциональное ускорение и может увеличивать нагрузку на процессор; часто оптимальны 4–8 потоков, но лучше подбирать экспериментально. Также планируется добавить опциональный отбор по организации, чтобы при необходимости очищать данные только по одной компании. Пока такой фильтр не реализован, но при заказе расширенной версии мы учтем пожелания. Возможность указать организации будет полезна, если в одной базе ведется учет нескольких компаний и нужно сворачивать данные выборочно.
Пошаговая инструкция по работе с обработкой
Ниже приведен примерный порядок работы с обработкой. Конкретные действия и названия элементов могут отличаться в зависимости от интерфейса вашей системы:
Подготовка ИБ
Шаг 1 — Подготовка ИБ: создайте резервную копию базы и выполняйте свертку на копии. Проверьте, что установлен запрет редактирования сворачиваемого периода. Закройте месяцы до даты свертки, например до 31.12.2024, и завершите документы.
Формирование остатков
Шаг 2 — Формирование остатков: в форме обработки укажите дату свертки, например 31.12.2024, и запустите создание документов ввода остатков. Система создаст документы «Ввод начальных остатков» на 01.01.2025 по складу, кассе, расчетам и другим регистрам. Проверьте, чтобы остатки соответствовали итогам предыдущего периода.
Параллельное удаление
Шаг 3 — Параллельное удаление: выберите количество потоков, например 4, и запустите свертку. Обработка разделит старые данные на части и выполнит удаление в фоновых заданиях. Во время выполнения можно видеть прогресс; при наличии логов отображается количество обработанных записей и общее время.
Проверка и сверка
Шаг 4 — Проверка и сверка: после завершения удаления выполняется сверка остатков с исходной базой. Система сравнивает остатки по регистрам в свернутой копии и исходной базе. Итоговые суммы должны совпадать. Если расхождения найдены, их нужно проанализировать отдельно.
Завершение
Шаг 5 — Завершение: если проверка прошла успешно, протестированную копию можно использовать как рабочую базу. Также проверьте отчеты по складу, кассе и взаиморасчетам: они должны показывать начальные остатки вместо старых движений.
Особенности и рекомендации по свертке
Обратите внимание на важные нюансы: свертку ИБ следует выполнять с правами администратора и только на стабильной копии.
Запуск процедуры на рабочей базе может привести к сбоям.
Обычно свертку планируют на выходные или нерабочее время: пока специалисты выполняют очистку копии, пользователи могут продолжать работу в исходной или новой базе.
После свертки документы ввода остатков нужно проверить вручную: при ошибках в исходном учете их может потребоваться скорректировать.
Полностью автоматическое исправление возможно не всегда.
