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

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

Как изменить запись в регистре накопления в 1С

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

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

Ниже разобраны четыре рабочих сценария: изменение через документ-регистратор, ручная корректировка документом «Корректировка регистров» (или «Операция» в бухгалтерии), правка через обработку «Групповое изменение реквизитов» и программное изменение через встроенный язык. Для каждого указаны условия применения, риски и способ проверить результат.

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

Как устроены записи регистра накопления и почему их нельзя править «как справочник»

Каждая запись регистра накопления привязана к регистратору — документу, который её создал. Поле «Регистратор» обязательно, и платформа контролирует целостность: удалить или изменить запись отдельно от документа штатными средствами интерфейса нельзя. Это защита от рассинхронизации учёта.

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

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

Способ 1. Исправить документ-регистратор и перепровести его

Это основной и рекомендуемый путь. Откройте список записей регистра (в типовых конфигурациях — через «Все функции» → «Регистры накопления» → нужный регистр), найдите запись по регистратору и перейдите в документ по ссылке.

Исправьте данные в документе — количество, сумму, склад, контрагента — и проведите его заново. Платформа автоматически заменит старые движения новыми, и итоги пересчитаются корректно.

Если документ находится в закрытом периоде, потребуется снять дату запрета редактирования (раздел «Администрирование» → «Поддержка и обслуживание» → «Даты запрета изменения данных»). После правки верните дату запрета на место и перепроведите документы за весь затронутый период, чтобы восстановить последовательность.

Способ 2. Документ «Корректировка регистров» или «Операция»

Когда исходного документа нет (ошибка миграции, сторнирование «висит» без основания) или документ трогать нельзя, используйте документ ручной корректировки. В «1С:ERP» и «Управлении торговлей» это «Корректировка регистров» (раздел «НСИ и администрирование» → «Корректировки регистров»), в «1С:Бухгалтерии» — «Операции, введённые вручную».

Создайте документ, в табличной части выберите нужный регистр накопления и добавьте строки движений: вид движения (Приход/Расход), измерения (организация, склад, номенклатура) и ресурсы (количество, сумма). Для исправления ошибочной записи обычно вводят сторнирующее движение с минусом или обратным видом движения, а затем — правильное.

Проведите документ и проверьте результат отчётом по регистру. Корректировка оформлена документом, поэтому она видна в журнале, датируется и при необходимости легко отменяется распроведением — это её главное преимущество перед программной правкой.

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

Способ 3. Программное изменение набора записей

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

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

Параметр Истина в методе Записать() означает замещение: старый набор полностью заменяется новым. Если передать Ложь, записи добавятся к существующим и движения задвоятся — одна из самых частых ошибок.

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

Способ 4. Обработки для ручной правки движений

Для разовых правок без программирования администраторы используют универсальные обработки: «Редактирование движений документа», консоль запросов с записью результата, «Групповое изменение реквизитов» (она умеет менять табличные части документов, но не записи регистров напрямую — для регистров нужна именно обработка движений).

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

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

Сравнение вариантов

Перепроведение документа

Безопасно и прозрачно; не подходит для закрытых периодов и отсутствующих документов

Корректировка регистров / Операция

Оформлено документом, видно в журнале; требует вручную сформировать правильные движения

Программная правка набора записей

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

Внешняя обработка движений

Быстро для разовой правки; риск некорректной обработки и сложно отследить, кто и что менял

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

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

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

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

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

Остаток по регистру на конец периода
Норма

Совпадает с ожидаемым значением и данными отчётов

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

Расходится с отчётом или стал отрицательным без причины

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

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

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

Движения задвоены или часть строк пропала

Итоги регистра
Норма

Отчёт за месяц совпадает с детальным списком записей

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

Месячный итог отличается от суммы записей — нужен пересчёт итогов

Типичные ошибки и ограничения

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

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

Типичные ошибки
01
Запись набора с параметром Ложь — движения документа задваиваются
02
Правка без отбора по регистратору — перезаписываются движения всех документов регистра
03
Забытый пересчёт итогов — отчёты показывают устаревшие остатки
04
Правка без резервной копии — откатить ошибочное изменение невозможно
05
Корректировка в закрытом периоде без согласования — искажается сданная отчётность

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

Итог

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

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

Частые вопросы

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

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

Почему после ручной правки записи снова стали прежними?

Документ-регистратор перепровели, и платформа перезаписала набор движений по данным документа. То же происходит при восстановлении последовательностей. Решение — исправить сам документ либо оформить корректировку отдельным документом.

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

Скорее всего, не пересчитаны итоги регистра. Выполните программно ПересчитатьИтоги() для регистра или запустите «Тестирование и исправление» с пересчётом итогов. Если расхождение осталось — проверьте, не задвоились ли движения.

Чем отличается «Корректировка регистров» от «Операции» в 1С:Бухгалтерии?

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

Можно ли изменить запись регистра в закрытом периоде?

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

Как найти, какой документ создал конкретную запись регистра?

Откройте список записей регистра через «Все функции» → «Регистры накопления» — в списке есть колонка «Регистратор». Также можно сформировать универсальный отчёт по регистру с группировкой по регистратору или использовать обработку «Поиск ссылок на объект».