Работа с регистрами накопления в 1С:Предприятие 8.3 часто требует точечных корректировок данных — особенно когда речь идёт об удалении записей, связанных с конкретным документом-регистратором. Неправильная очистка может привести к разбалансировке итогов, ошибкам в отчётах или даже повреждению базы. Эта статья поможет разобраться, как безопасно очистить регистр накопления по регистратору, избегая типичных ловушек.

Мы рассмотрим как стандартные инструменты платформы (для бухгалтеров и пользователей), так и программные методы (для разработчиков), включая прямые SQL-запросы и обработки. Особое внимание уделим последствиям очистки — когда она нарушает целостность данных и как этого избежать. Если вы никогда не работали с регистрами накопления, начните с раздела «Что такое регистр накопления и зачем его очищать», чтобы понять контекст.

Все примеры в статье актуальны для 1С:Предприятие 8.3 (включая последние релизы 2026 года), но перед применением обязательно проверьте поведение в тестовой базе — некоторые регистры (например, РегистрНакопления.ПартииТоваров) могут иметь уникальные ограничения.

📊 Какой тип регистра накопления вы чаще очищаете?
Остатки (бухгалтерские)
Обороты (продажи/закупки)
Специализированные (партии, себестоимость)
Не очищаю, только корректирую

Что такое регистр накопления и зачем его очищать по регистратору

Регистр накопления в — это объект конфигурации, который хранит данные об остатках или оборотах (например, товары на складе, денежные средства, взаиморасчёты). В отличие от регистров сведений, он всегда привязан к регистратору — документу, который формирует движения (например, ПоступлениеТоваров или РеализацияТоваровУслуг).

Очистка по регистратору означает удаление всех движений, которые этот документ создал в регистре. Это может понадобиться в случаях:

  • 📄 Ошибочно проведённый документ — когда движения исказили остатки (например, двойное поступление товара).
  • 🔄 Перенос данных — при миграции из одной базы в другую, когда старые движения мешают актуальным расчётам.
  • 🛠️ Тестирование — разработчикам нужно «откатить» тестовые документы без удаления самих документов.
  • ⚠️ Исправление ошибок обмена — когда при интеграции с другими системами создались лишние записи.

Важно понимать: очистка по регистратору не удаляет сам документ, а только его движения в регистре. Если нужно удалить документ полностью, используйте стандартное удаление (Пометка на удаление или Удалить).

⚠️ Внимание: Очистка регистров накопления, связанных с регламентированным учётом (например, НДС или ПрибылиУбытки), может привести к несоответствиям в декларациях. Перед массовыми изменениями сверьтесь с налоговым календарём или консультантом.

Способы очистки регистра накопления: сравнение методов

В 1С:Предприятие 8.3 есть несколько способов очистить регистр по регистратору. Выбор зависит от ваших прав, технических навыков и масштаба задачи:

Метод Для кого подходит Плюсы Минусы Риски
Стандартная обработка «Удаление движений» Бухгалтеры, пользователи Не требует программирования, встроена в платформу Медленно работает с большими объёмами Низкие (если не прерывать процесс)
Запрос на языке 1С Разработчики, администраторы Гибкость, можно очистить выборочно Требует знания синтаксиса Средние (ошибки в запросе могут удалить лишнее)
Прямой SQL-запрос Администраторы баз данных Максимальная скорость для больших баз Высокий риск повреждения данных Высокие (нарушение ссылочной целостности)
Специальные обработки (например, «Универсальный корректор») Все пользователи Удобный интерфейс, дополнительные проверки Нужно скачивать/покупать обработку Низкие (если обработка проверенная)

Для одноразовых задач (например, удалить движения одного документа) достаточно стандартной обработки. Если нужно очистить сотни документов — лучше использовать запрос на языке или SQL. В следующем разделе подробно разберём каждый метод.

💡

Перед очисткой регистра сделайте резервную копию базы — даже если вы используете «безопасный» метод. В 1С:Предприятие для этого есть встроенная функция Администрирование → Выгрузить информационную базу

Пошаговая инструкция: очистка через стандартную обработку

Это самый простой способ, который не требует знания программирования. Подходит для удаления движений одного или нескольких документов.

  1. Откройте базу в режиме 1С:Предприятие (не в конфигураторе!).

  2. Перейдите в меню Все функции → Стандартные → Удаление движений документов (путь может немного отличаться в зависимости от конфигурации).

  3. В открывшемся окне:

    • 📅 Укажите период, за который нужно очистить движения (если не знаете точную дату, оставьте пустым).
    • 📄 Выберите тип документа-регистратора (например, ПоступлениеТоваровУслуг).
    • 🔍 Нажмите Заполнить, чтобы увидеть список документов.
    • ✅ Отметьте галочками документы, движения которых нужно удалить.
  4. Нажмите Выполнить и дождитесь завершения операции.

  5. Обработка покажет количество удалённых движений. Если движений не было (например, документ не проводился), вы увидите сообщение Движений не найдено.

    Закройте все сеансы 1С, кроме текущего|Сделайте резервную копию базы|Проверьте, что документ не заблокирован другими пользователями|Убедитесь, что у вас достаточно прав (полный доступ или роль «Администратор»)

    -->

    ⚠️ Внимание: Если документ участвует в последовательности проведения (например, Заказ покупателя → Реализация → Оплата), его очистка может нарушить логическую цепочку. Перед удалением движений проверьте связанные документы через отчёт Анализ связей объектов (доступен в Все функции).

    Очистка регистра запросом на языке 1С (для программистов)

    Если стандартная обработка работает слишком медленно или нужно очистить движения по сложному условию (например, только по определённому складу), используйте запрос на встроенном языке. Пример ниже удаляет все движения документа ПоступлениеТоваровУслуг с номером ПТ-000123 в регистре ТоварыНаСкладах:

    Процедура ОчиститьДвиженияПоРегистратору()
    

    Запрос = Новый Запрос;

    Запрос.Текст =

    "ВЫБРАТЬ

    | РегистрНакопления.ТоварыНаСкладах.Ссылка КАК Ссылка

    |ИЗ

    | РегистрНакопления.ТоварыНаСкладах КАК РегистрНакопления.ТоварыНаСкладах

    |ГДЕ

    | РегистрНакопления.ТоварыНаСкладах.Регистратор = &Регистратор";

    Запрос.УстановитьПараметр("Регистратор", Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру("ПТ-000123"));

    Результат = Запрос.Выполнить();

    Если Результат.Пустой() Тогда

    Сообщить("Движений для удаления не найдено!");

    Возврат;

    КонецЕсли;

    // Удаляем найденные записи

    Для Каждого Строка Из Результат Выбрать() Цикл

    Регистр = РегистрыНакопления.ТоварыНаСкладах.СоздатьМенеджерЗаписи();

    Регистр.УстановитьОтборПоРегистратору(Строка.Ссылка);

    Регистр.Очистить();

    КонецЦикла;

    Сообщить("Движения успешно удалены!");

    КонецПроцедуры

    Этот код:

    • 🔍 Ищет все записи в регистре ТоварыНаСкладах, связанные с документом ПТ-000123.
    • 🗑️ Удаляет их через менеджер записи регистра (это безопаснее прямого удаления).
    • 📌 Выводит сообщение об результате.

Чтобы выполнить этот код:

  1. Откройте конфигуратор (1С:Предприятие в режиме Конфигуратор).
  2. Создайте новую внешнюю обработку (Файл → Новый → Внешняя обработка).
  3. Вставьте код в модуль обработки и сохраните.
  4. Запустите обработку в режиме 1С:Предприятие.
Как модифицировать запрос для очистки по нескольким регистраторам

Чтобы удалить движения для нескольких документов, измените условие в запросе:

ГДЕ РегистрНакопления.ТоварыНаСкладах.Регистратор В (&СписокДокументов)

Где &СписокДокументов — массив ссылок на документы. Например:

СписокДоков = Новый Массив;

СписокДоков.Добавить(Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру("ПТ-000123"));

СписокДоков.Добавить(Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру("ПТ-000124"));

Запрос.УстановитьПараметр("СписокДокументов", СписокДоков);

Прямая очистка через SQL: когда это оправдано и как делать безопасно

Использование SQL-запросов — самый быстрый способ очистки, но и самый рискованный. Он подходит только для опытных администраторов, так как обходит встроенные механизмы и может нарушить ссылочную целостность. Применяйте этот метод только если:

  • 🐢 Стандартные способы работают слишком медленно (база с миллионами записей).
  • 🔧 Нужно очистить движения в несколько регистров одновременно.
  • 🛡️ У вас есть полная резервная копия базы и возможность отката.

Пример SQL-запроса для очистки движений документа РеализацияТоваровУслуг с ID 12345 в регистре ТоварыНаСкладах (для Microsoft SQL Server):

DELETE FROM _AccumRg12345 -- Уточните реальное имя таблицы регистра!

WHERE _Fld12346_RRef = 0x1234567890ABCDEF -- ID документа в двоичном формате

-- Для PostgreSQL используйте:

-- DELETE FROM "_AccumRg12345" WHERE "_Fld12346_RRef" = '\x1234567890ABCDEF';

Ключевые моменты:

  • 🔍 Имена таблиц в генерируются автоматически и зависят от конфигурации. Узнать их можно через ИБ → Администрирование → Поддержка и обслуживание → Тестирование и исправление → Просмотр SQL-запросов.
  • 🔑 ID документа в двоичном формате. Чтобы его получить, выполните запрос:
    ВЫБРАТЬ
    

    УникальныйИдентификатор() КАК DocUID

    ИЗ

    Документ.РеализацияТоваровУслуг

    ГДЕ

    Ссылка = &СсылкаНаДокумент

  • 🛑 Транзакции: всегда оборачивайте DELETE в транзакцию:
    BEGIN TRANSACTION;
    

    DELETE FROM _AccumRg12345 WHERE _Fld12346_RRef = 0x1234567890ABCDEF;

    -- Проверьте результат перед коммитом!

    ROLLBACK; -- или COMMIT, если всё верно

⚠️ Внимание: Прямой SQL-запрос не обновляет итоги регистра. После очистки запустите пересчёт итогов через Администрирование → Поддержка и обслуживание → Регламентные операции → Пересчёт итогов. В противном случае отчёты будут показывать неверные данные!

Типичные ошибки и как их избежать

Очистка регистров накопления — операция, чреватая последствиями. Вот самые распространённые ошибки и способы их предотвращения:

Ошибка Причина Как избежать
Нарушение баланса по валютам Удалены движения в валютном регистре (например, ВзаиморасчётыСКонтрагентами), но не скорректированы курсы. Перед очисткой проверьте связанные регистры сведений (например, КурсыВалют).
Ошибка «Не найден регистратор» Документ помечен на удаление или перенесён в архив. Снимите пометку удаления или восстановите документ из архива.
Зависание 1С при очистке Слишком большой объём данных или блокировки других пользователей. Разбейте операцию на части (по датам) или выполните в нерабочее время.
Итоги не обновляются После прямого SQL-запроса не запущен пересчёт итогов. Всегда выполняйте Пересчёт итогов после ручных изменений.

Ещё одна типичная проблема — очистка регистров, связанных с расчётом себестоимости (например, ПартииТоваров). Если удалить движения в таком регистре, может «сломаться» механизм FIFO/LIFO, и себестоимость в отчётах станет некорректной. Перед очисткой:

  1. Проверьте, используется ли регистр в расчёте себестоимости (Администрирование → Настройки программы → Запасы).
  2. Если да — вместо очистки создайте корректирующий документ (например, ОприходованиеТоваров или СписаниеТоваров).
💡

Перед массовой очисткой регистров всегда проверяйте их на участие в регламентных задачах (например, закрытие месяца). Используйте отчёт Анализ использования объектов (Все функции → Стандартные отчёты).

Чек-лист перед очисткой регистра накопления

Чтобы минимизировать риски, пройдите этот чек-лист перед началом работ:

Создана резервная копия базы (проверьте её целостность)|Все пользователи вышли из системы (нет активных сеансов)|Документ-регистратор не участвует в закрытии периода (проверьте через отчёт Закрытие месяца)|У вас есть права на изменение регистров (роль «Администратор» или «Полные права»)|Проверены связанные регистры (например, если очищаете ТоварыНаСкладах, убедитесь, что в ПартииТоваров нет зависимых записей)-->

Если очистка проводится в распределённой базе (с узлами РИБ), дополнительно:

  • 📡 Приостановите обмен данными между узлами.
  • 🔄 После очистки выполните полную синхронизацию.
  • 📋 Проверьте, что в узлах не осталось «висячих» ссылок на удалённые движения.

Для баз с версионированием данных (например, 1С:ERP или 1С:Управление холдингом):

  • 🕒 Убедитесь, что очищаемый документ не попадает в История изменений.
  • 🔍 Используйте отчёт Версии объектов, чтобы увидеть зависимые записи.

FAQ: Частые вопросы по очистке регистров накопления

Можно ли очистить регистр накопления без удаления документа-регистратора?

Да, очистка регистра по регистратору удаляет только движения, но не сам документ. Документ останется в базе, но перестанет влиять на остатки/обороты. Это удобно, если нужно сохранить историю (например, для отчётности), но исправить ошибки в учёте.

Что делать, если после очистки регистра отчёты показывают неверные данные?

Скорее всего, не обновлены итоги. Запустите Пересчёт итогов (Администрирование → Поддержка и обслуживание → Регламентные операции). Если это не помогло — проверьте, не задействован ли регистр в виртуальных таблицах (например, ОстаткиИОбороты). В некоторых конфигурациях требуется перезапуск сервера .

Можно ли очистить регистр накопления для всех документов определенного типа?

Да, но это рискованно. Для массовой очистки:

  1. Используйте запрос с условием по типу документа:
    ВЫБРАТЬ РАЗРЕШЕННЫЕ РегистрНакопления.ТоварыНаСкладах.Регистратор КАК Регистратор
    

    ИЗ РегистрНакопления.ТоварыНаСкладах КАК РегистрНакопления.ТоварыНаСкладах

    ГДЕ РегистрНакопления.ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг

  2. Для безопасности очищайте порциями (например, по 100 документов за раз).

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

Как очистить регистр накопления в облачной версии 1С (1С:Fresh)?

В 1С:Fresh прямой доступ к базе ограничен. Используйте:

  • 📤 Стандартную обработку (доступна в веб-интерфейсе).
  • 📧 Техническую поддержку — отправьте запрос с указанием документов, которые нужно очистить.

Прямые SQL-запросы и внешние обработки в 1С:Fresh заблокированы по умолчанию.

Что будет, если очистить регистр накопления, который используется в механизме проведения?

Если регистр участвует в автоматическом проведении (например, РасчётыСКонтрагентами для документа ПоступлениеДенежныхСредств), его очистка может привести к:

  • 🚫 Ошибкам при проведении новых документов (система будет искать отсутствующие движения).
  • 🔢 Некорректным остаткам в отчётах (например, дебет/кредит не сходится).

Решение: после очистки перепроведите все зависимые документы или восстановите движения через Восстановление последовательности (Администрирование → Поддержка и обслуживание).