Администрирование · 12 мин
1С: как удалить движения документа
Как удалить движения документа в 1С: ручная очистка проводок, программные методы, обработки, проверка результата и типичные ошибки при работе с регистрами.
Движения документа — это записи, которые документ формирует в регистрах (бухгалтерском, накопления, сведений) при проведении. Иногда их нужно удалить: документ проведён ошибочно, испортил обороты по регистру, или требуется перепровести его «с нуля» после изменения данных. Удалить движения можно несколькими способами — от штатной отмены проведения до программной очистки наборов записей.
Выбор способа зависит от ситуации: если документ просто не нужен, достаточно отменить проведение или пометить его на удаление. Если требуется убрать движения, не трогая сам документ (например, при исправлении ошибок обмена или миграции), придётся работать с наборами записей регистров напрямую или использовать специальные обработки.
Важно понимать: движения — это не отдельные объекты, а записи в регистрах, у которых в поле «Регистратор» указан ваш документ. Поэтому любые манипуляции затрагивают регистры целиком, и ошибка может исказить отчётность, остатки и взаиморасчёты. Перед любыми действиями сделайте резервную копию информационной базы.
Что такое движения документа и где они хранятся
При проведении документ записывает строки в один или несколько регистров: регистр бухгалтерии (проводки), регистры накопления (остатки товаров, взаиморасчёты), регистры сведений (курсы, статусы). Каждая такая строка содержит ссылку на документ-регистратор. Совокупность этих строк и называется движениями документа.
Посмотреть движения можно из формы документа: кнопка «Ещё» → «Движения документа» (в управляемых формах) или соответствующая команда на панели. Откроется список регистров, по которым документ сделал записи, с возможностью перейти к каждому набору строк.
Удаление движений фактически означает удаление этих строк из регистров. Сделать это можно двумя путями: штатным (через отмену проведения — платформа сама очистит наборы) и прямым (через записи регистров в обход логики документа). Первый путь предпочтителен всегда, когда он доступен.
Отмена проведения — штатный способ убрать движения
Самый простой и безопасный вариант — отменить проведение документа. Откройте документ и нажмите кнопку «Провести» повторно (она работает как переключатель) или в списке документов выберите команду «Отмена проведения» из меню «Ещё». Платформа автоматически удалит все записи документа из всех регистров, по которым он проводится.
После отмены проведения документ остаётся в базе, его данные доступны для редактирования, но на учёт он не влияет: остатки, обороты и проводки очищены. Это и есть «удаление движений» в штатном понимании.
Если документ вообще не нужен, пометьте его на удаление (клавиша Delete или команда «Пометить на удаление»). Пометка также отменяет проведение и очищает движения. Окончательно документ исчезнет после операции «Удаление помеченных объектов» в разделе «Администрирование».
- 1Сделайте резервную копию базы или убедитесь, что регламентное копирование работает
- 2Откройте нужный документ или найдите его в журнале
- 3Нажмите «Ещё» → «Отменить проведение» (или повторно кнопку «Провести»)
- 4Откройте «Ещё» → «Движения документа» и убедитесь, что список регистров пуст
- 5Проверьте отчёт по соответствующему регистру — обороты документа должны исчезнуть
Удаление движений без отмены проведения
Иногда требуется очистить движения, оставив документ проведённым: например, при восстановлении после сбоя обмена, при ручном исправлении регистра или когда документ проведён «по части регистров». Это нештатная операция, и выполнять её нужно осознанно.
Ручная очистка через движения документа
В некоторых конфигурациях в форме «Движения документа» доступно редактирование наборов записей: можно удалить строки вручную и записать набор. Однако в типовых конфигурациях ручная корректировка часто заблокирована флагом «Ручная корректировка» — его нужно установить в самом документе (команда доступна не во всех документах и не во всех конфигурациях).
Программная очистка наборов записей
Универсальный способ — выполнить код, который очищает набор записей по каждому регистру, где документ является регистратором. Логика такая: получить набор записей регистра, установить отбор по регистратору, не заполняя набор, записать его с замещением — пустой набор заменит существующие строки.
Процедура УдалитьДвиженияДокумента(ДокументСсылка)
Для Каждого МетаданныеРегистра Из ДокументСсылка.Метаданные().Движения Цикл
Если Метаданные.РегистрыНакопления.Содержит(МетаданныеРегистра) Тогда
Набор = РегистрыНакопления[МетаданныеРегистра.Имя].СоздатьНаборЗаписей();
ИначеЕсли Метаданные.РегистрыСведений.Содержит(МетаданныеРегистра) Тогда
Набор = РегистрыСведений[МетаданныеРегистра.Имя].СоздатьНаборЗаписей();
ИначеЕсли Метаданные.РегистрыБухгалтерии.Содержит(МетаданныеРегистра) Тогда
Набор = РегистрыБухгалтерии[МетаданныеРегистра.Имя].СоздатьНаборЗаписей();
ИначеЕсли Метаданные.РегистрыРасчета.Содержит(МетаданныеРегистра) Тогда
Набор = РегистрыРасчета[МетаданныеРегистра.Имя].СоздатьНаборЗаписей();
Иначе
Продолжить;
КонецЕсли;
Набор.Отбор.Регистратор.Установить(ДокументСсылка);
Набор.Записать(Истина);
КонецЦикла;
КонецПроцедурыЭтот код перебирает все регистры, указанные в свойстве «Движения» документа в конфигураторе, создаёт пустой набор записей с отбором по регистратору и записывает его. Так как набор пустой, запись с замещением удаляет существующие строки. Выполнять код удобно через внешнюю обработку или консоль кода на сервере с правами администратора.
Удаление движений у группы документов
Когда проблема затрагивает период целиком (например, неверно настроенное проведение за месяц), по одному документу работать долго. Для массовых операций есть несколько подходов.
Первый — типовая обработка «Групповое перепроведение документов» (в типовых конфигурациях: раздел «Администрирование» → «Обслуживание» → «Корректировка данных», либо через «Все функции»). Она позволяет отменить проведение документов за период, что автоматически удалит их движения, а затем при необходимости провести заново.
Второй — обработка «Удаление движений документов» с диска ИТС или аналогичные внешние обработки: они строят список документов за период по выбранным видам и очищают наборы записей без отмены проведения. Третий — программный цикл по выборке документов с вызовом процедуры очистки, аналогичной приведённой выше.
Сравнение вариантов
Штатно и безопасно; подходит, когда документ можно распровести. Не подходит, если документ должен остаться проведённым.
Документ и движения убираются полностью. Не подходит, если документ нужен для истории или связан с другими объектами.
Гибко, работает для любых сценариев и массовых операций. Требует прав, аккуратности и понимания структуры регистров.
Удобно для периода целиком; удаляет и пересоздаёт движения штатным путём. Медленно на больших объёмах и может заблокировать работу пользователей.
Проверка результата и восстановление последовательностей
После удаления движений убедитесь, что записи действительно исчезли: откройте «Движения документа» — список должен быть пуст, либо сформируйте отчёт по регистру с отбором по регистратору. Универсальный отчёт по регистру накопления с группировкой «Регистратор» покажет, остались ли строки.
Если движения удалялись в середине периода, проверьте итоги и последовательности. В конфигурациях с последовательностями (например, партионный учёт) удаление движений «задним числом» сдвигает границу последовательности — после корректировок её нужно восстановить обработкой «Проведение по партиям» или перепроведением с момента изменений.
Дополнительно сверьте контрольные цифры: остатки по складу, взаиморасчёты, сальдо по счетам до и после операции. Если документ участвовал в закрытии месяца, расчёте себестоимости или НДС — эти регламентные операции потребуется выполнить заново.
Как проверить результат
Список регистров пуст или наборы не содержат строк
Строки в регистрах остались — очистка не отработала по части регистров
По документу нет записей, обороты изменились на ожидаемую сумму
Остатки и обороты не изменились или появились необъяснимые суммы
Граница соответствует ожиданиям, регламентные операции пересчитаны
Закрытие месяца или расчёт себестоимости выдаёт ошибки по периоду
Статус соответствует замыслу: распроведён или очищен осознанно
Документ проведён, но движений нет — без контроля это источник рассинхронизации
Типичные ошибки и ограничения
Частая ошибка — попытка удалить движения запросом напрямую к таблицам СУБД. Это нарушает целостность данных (итоги, служебные таблицы, индексы) и лишает поддержки. Все операции выполняйте только средствами платформы.
Вторая ошибка — очистка движений документа в закрытом периоде без согласования с бухгалтерией. Если период сдан в отчётность, изменение оборотов приведёт к расхождению с поданными декларациями. Используйте дату запрета изменения данных («Администрирование» → «Даты запрета изменения данных»), чтобы защитить закрытые периоды.
Третья ошибка — забыть про подчинённые регистры с независимым режимом записи или регистры, куда документ пишет через механизмы подписок на события. Перебор по свойству «Движения» метаданных покрывает стандартные случаи, но если конфигурация сильно доработана, проверьте обработчики проведения и подписки.
Частые вопросы
Можно ли удалить движения только по одному регистру, не трогая остальные?
Да. Программно очистите набор записей только нужного регистра с отбором по регистратору — остальные наборы не изменятся. Штатная отмена проведения такой избирательности не даёт: она очищает все регистры сразу.
Что произойдёт, если пометить документ на удаление?
Платформа автоматически отменит проведение и удалит все движения документа из регистров. Сам документ останется в базе с пометкой до выполнения операции «Удаление помеченных объектов», где также проверяются ссылки на него из других объектов.
Почему после отмены проведения в отчёте остались старые цифры?
Чаще всего отчёт построен раньше отмены проведения и показывает кэшированный результат — переформируйте его. Реже причина в том, что цифры даёт другой документ или регламентная операция, которую тоже нужно перепровести.
Как удалить движения, если документ находится в закрытом периоде?
Сначала временно сдвиньте дату запрета изменения данных (нужны права администратора), затем выполните отмену проведения или очистку. Учтите методологические последствия: изменение закрытого периода может потребовать уточнённой отчётности, поэтому решение принимает ответственный за учёт сотрудник.
Нужно ли перепроводить документы после удаления движений «задним числом»?
Да, если конфигурация использует последовательности или расчёт зависит от хронологии (партии, себестоимость, взаиморасчёты). После корректировки восстановите последовательность и перепроведите документы от момента изменения до конца периода, иначе остатки будут искажены.
Можно ли вернуть удалённые движения?
Если документ сохранился — просто проведите его заново, движения сформируются повторно по текущим данным. Если удалён и сам документ, восстановление возможно только из резервной копии базы.
Что важно запомнить
Штатный путь удаления движений — отмена проведения или пометка на удаление: платформа сама очищает все регистры. Программная очистка наборов записей с отбором по регистратору нужна для нештатных сценариев и требует резервной копии, полных прав и последующей проверки остатков, последовательностей и регламентных операций.