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