Не так давно мне потребовалось очистить регистр сведений. Этот регистр хранил в себе историю изменения некоторых объектов конфигурации и содержал несколько миллионов записей.
Обычный вариант программной очистки регистра сведений не подчиненного регистратору производится при помощи записи пустого набора записей, примерно так:
1 2 | НаборЗаписей = РегистрыСведений.НашРегистр.СоздатьНаборЗаписей(); НаборЗаписей.Записать(); |
Но в данном случае очистка регистра подобным способом заняло бы много часов. Поэтому был выбран другой способ — быстрый способ очистки регистра сведений.
Шаг 1. Делаем резервную копию базы. Этот пункт, конечно, не обязателен, но привычка делать резервную копию перед любым потенциально опасным действием обязательно сохранит Вам нервы/время/зарплату/карьеру.
Шаг 2. Копируем требуем регистр сведений.

Шаг 3. Удаляем оригинал регистра сведений

Шаг 4. Переименовываем копию в оригинал и применяем изменения.

Вот таким нехитрым способом очистка регистра сведений займет несколько минут, вне зависимости от размеров этого регистра. Разница заключается в том, что во втором способе таблица регистра сведений удаляется целиком, что значительно быстрее.
Подобным способом можно произвести очистку практически любого элемента конфигурации. Но, разумеется, корректность учета после проведения такой операции никто не гарантирует.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Доброго Вам дня. Случайно наткнулся на ваш способ очистки РС, везде в Инете описан только первый программный способ очистки РС. А скажите на 1С 8.2 под MS SQL такой способ пройдет? У меня в РС тоже несколько миллионов записей.
Добрый день. Я сам так делал как раз под MS SQL.
А вот хрен. Не удаляется оргинал
Опасный и вредный способ, никогда так не делайте.
1) Попадаете на обновления, так как слетит внутренний идентификатор регистра. Дальше сопоставление только по имени, но это чревато
2) Способ не рабочий, если регистр зависимый.
3) Очень вредный способ, из разряда «вредные советы».
4) Если не устраивает программный способ очистки, воспользуйтесь очисткой регистра на уровне SQL. Если не знаете как и не можете разобраться, тогда нечего лезть в вещи, которые не понимаете.
А truncate table сделать религия не позволяет?