К статье
Практический материал

Администрирование · 12 мин

Как очистить все движения документа в 1С

Как очистить движения документа в 1С: отмена проведения, обработки, код на встроенном языке. Риски, проверка результата и типичные ошибки при очистке движений.

Движения документа в 1С — это записи в регистрах (накопления, сведений, бухгалтерии, расчёта), которые документ формирует при проведении. Иногда требуется очистить эти записи без удаления самого документа: например, при исправлении ошибок учёта, тестировании механизмов проведения, переносе данных или когда документ проведён некорректно и «завис» в регистрах.

Существует несколько способов очистки движений: штатная отмена проведения, ручное редактирование движений, типовые и внешние обработки, а также программная очистка через встроенный язык. Выбор зависит от того, нужно ли сохранить документ в базе, есть ли доступ к конфигуратору и насколько критична целостность данных.

Важно понимать: очистка движений меняет состояние учёта. Остатки по складу, взаиморасчёты, проводки и регламентированная отчётность могут измениться. Поэтому перед любыми массовыми операциями обязательно делается резервная копия информационной базы, а действия сначала проверяются на копии.

Что такое движения документа и когда их нужно очищать

При проведении документа 1С выполняет модуль проведения и формирует записи в регистрах, указанных в свойствах документа. Например, «Поступление товаров» делает движения по регистру остатков номенклатуры, партиям, взаиморасчётам с поставщиками и по регистру бухгалтерии. Вся эта совокупность записей и называется движениями документа.

Очистка движений требуется в типовых ситуациях: документ проведён с ошибками и нужно перепровести его «с нуля»; после доработки модуля проведения старые записи некорректны; при тестировании нужно убрать влияние документа на отчёты; при свёртке или переносе базы возникли «висящие» движения от помеченных на удаление объектов.

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

Способ 1. Отмена проведения — штатный и самый безопасный

Стандартный механизм 1С устроен так, что при отмене проведения платформа автоматически очищает все наборы записей документа по всем регистрам. Это единственный способ, при котором система сама контролирует целостность: документ остаётся в базе, помечается как непроведённый, а его записи удаляются из регистров.

Чтобы отменить проведение, откройте документ и нажмите кнопку «Отменить проведение» (или снимите флажок «Проведён» в форме списка через контекстное меню). В типовых конфигурациях команда доступна пользователям с правами на проведение документов. После этого можно проверить результат через кнопку «Движения документа» — список регистров станет пустым.

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

Порядок действий при штатной отмене проведения
  1. 1
    Сделайте резервную копию базы или убедитесь, что регламентное копирование работает
  2. 2
    Найдите документ в журнале и откройте его
  3. 3
    Нажмите «Отменить проведение» и дождитесь завершения операции
  4. 4
    Откройте «Движения документа» и убедитесь, что списки записей пусты
  5. 5
    Проверьте связанные отчёты: остатки и обороты должны измениться ожидаемым образом

Способ 2. Ручная очистка через форму движений документа

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

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

Имейте в виду: ручное удаление записей не меняет признак проведённости документа. В результате получится «проведённый» документ без движений или с частичными движениями — это аномальное состояние, которое может вводить в заблуждение отчёты и других пользователей. После ручной чистки документ обычно перепроводят или снимают с проведения.

Способ 3. Универсальные обработки для очистки движений

Для массовой или аварийной очистки удобны внешние обработки. Наиболее известные варианты: «Редактирование движений документа», «Универсальный подбор и обработка объектов», а также входящие в состав «Инструментов разработчика» функции работы с движениями. Такие обработки позволяют выбрать документ или список документов, показать их движения и очистить наборы записей пакетно.

Общий порядок работы с типовой обработкой: открыть обработку через «Файл — Открыть», указать документ или отбор документов, отметить регистры, движения по которым нужно удалить, выполнить очистку и проверить результат. Многие обработки умеют работать в режиме управляемого и обычного приложения.

При массовой обработке соблюдайте два правила. Во-первых, ограничивайте выборку: сначала тестируйте на одном-двух документах. Во-вторых, фиксируйте, что именно очищено — ведите список обработанных документов, чтобы при необходимости восстановить данные перепроведением.

Сравнение способов очистки движений

Отмена проведения

Штатно и безопасно, документ остаётся в базе. Не подходит для закрытых периодов и повреждённых данных.

Ручное удаление записей

Гибко, можно чистить часть регистров. Документ остаётся проведённым без движений — аномальное состояние.

Внешние обработки

Подходят для массовой очистки и аварийных случаев. Требуют прав и аккуратности, обходят штатный контроль.

Программная очистка

Максимальная гибкость, можно автоматизировать. Требует навыков разработки и тестирования на копии.

Способ 4. Программная очистка движений через встроенный язык

Разработчик может очистить движения программно. Логика проста: получить объект документа, пройти по коллекции «Движения», для каждого набора записей прочитать его, очистить и записать. Запись пустого набора с признаком замещения удаляет старые строки регистра.

bsl
ДокОбъект = ДокументСсылка.ПолучитьОбъект();
Для Каждого Набор Из ДокОбъект.Движения Цикл
    Набор.Прочитать();
    Набор.Очистить();
    Набор.Записать(Истина);
КонецЦикла;

Альтернативный вариант — установить свойству «Проведен» значение Ложь и записать объект: платформа сама очистит движения, как при штатной отмене проведения. Этот способ предпочтительнее, потому что сохраняет логику контроля, заложенную в модуль объекта.

При программной записи наборов напрямую обработчики «ПриЗаписи» документа не выполняются, а значит, часть прикладных проверок обходится. Поэтому прямую запись пустых наборов применяют только в сервисных сценариях: исправление повреждённых данных, чистка после неудачного обмена, подготовка тестовой базы.

Очистка движений у помеченных на удаление и «битых» документов

Пометка удаления документа в типовых конфигурациях обычно сопровождается отменой проведения, то есть движения очищаются автоматически. Но при обменах, прерывании транзакций или работе сторонних обработок возникают ситуации, когда документ помечен на удаление, а записи в регистрах остались. Такие «висячие» движения искажают отчёты и мешают удалению объектов.

Штатное решение — обработка «Удаление помеченных объектов» в режиме «Выборочное удаление»: при контроле ссылочной целостности платформа удалит документ вместе с его наборами записей. Если документ удалять нельзя, движения чистят обработкой или программно по ссылке на объект.

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

Типичные ошибки
01
Очистка движений без резервной копии — при ошибке восстановить записи можно только перепроведением, а оно не всегда возможно
02
Массовая обработка без отбора — очищаются движения лишних документов, учёт разваливается по целому периоду
03
Ручное удаление части записей без перепроведения — документ остаётся проведённым с неполными движениями, отчёты показывают противоречивые данные
04
Игнорирование даты запрета редактирования — изменение регистров закрытого периода портит сданную отчётность
05
Очистка движений вместо исправления документа — причина ошибки остаётся, и после перепроведения проблема возвращается

Проверка результата и восстановление учёта

После очистки движений результат проверяют тремя способами. Первый — визуальный: команда «Движения документа» должна показывать пустые наборы по всем регистрам. Второй — отчётный: сформируйте оборотно-сальдовую ведомость, отчёт по остаткам склада или взаиморасчётов и убедитесь, что влияние документа исчезло. Третий — запросом: выберите записи регистров с отбором по регистратору, результат должен быть пустым.

Если очистка была подготовительным этапом, следующий шаг — перепроведение документа после исправления данных. Для восстановления целостности последовательностей в типовых конфигурациях используют обработку «Проведение по партиям», «Восстановление последовательностей» или механизм перепроведения документов за период.

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

Контрольные точки

Как проверить результат

Форма «Движения документа»
Норма

Все наборы записей пусты либо содержат ожидаемые строки

Тревожный признак

Остались записи в части регистров, о которых забыли

Отчёты по регистрам
Норма

Обороты и остатки уменьшились ровно на сумму движений документа

Тревожный признак

Показатели не изменились или изменились непредсказуемо

Состояние документа
Норма

Документ непроведён либо перепроведён с корректными движениями

Тревожный признак

Документ проведён, но движений нет — аномалия

Запрос по регистратору
Норма

Запрос к регистру с отбором по документу возвращает ноль строк

Тревожный признак

Записи остались — очистка не завершена

Частые вопросы об очистке движений документов

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

Технически да — через ручное редактирование наборов записей, обработки или программную запись пустых наборов. Но документ при этом останется проведённым без движений, что является некорректным состоянием. Такой приём оправдан только как временный сервисный шаг перед перепроведением или снятием с проведения.

Что делать, если кнопка «Отменить проведение» недоступна?

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

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

Используйте обработку группового перепроведения с отменой проведения, универсальные обработки вроде «Подбор и обработка объектов» или напишите сервисную обработку с циклом по выборке. Обязательно ограничьте выборку отбором, протестируйте на копии базы и зафиксируйте список обработанных документов.

Удалятся ли движения при пометке документа на удаление?

В типовых конфигурациях пометка удаления обычно сопровождается отменой проведения, и движения очищаются автоматически. Окончательно записи удаляются при штатном удалении помеченных объектов. Если после пометки записи в регистрах остались — это признак сбоя, и их нужно чистить отдельно.

Опасно ли очищать движения документов прошлых периодов?

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

Как восстановить движения, если очистили их по ошибке?

Если документ цел и его данные корректны, достаточно провести его заново — модуль проведения сформирует записи повторно. Если перепроведение невозможно или данные искажены, восстанавливайте базу из резервной копии, сделанной до операции. Именно поэтому копия перед массовой очисткой обязательна.

Итог

Что важно запомнить

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