Исправление ошибочных движений в регистре накопления 1С
Содержание
Запись в регистре накопления правят не в самом регистре, а в документе, который её создал. Откройте документ-регистратор, исправьте данные, нажмите «Провести»: старые движения удалятся, новые запишутся заново. Это самый безопасный способ, и в большинстве учётных задач он единственный, который нужен.
Прямая правка записей кодом или обработкой нужна, когда документа уже нет, он закрыт датой запрета, а регистр содержит «хвосты». Ниже способы идут от безопасного к радикальному: сначала перепроведение, потом групповая обработка, потом ручная запись набора, в конце пересчёт итогов.
1. Как устроен регистр накопления и почему его не правят «вручную»
Регистр накопления хранит движения: приход или расход ресурсов (количество, сумма) в разрезе измерений (номенклатура, склад, контрагент и т.п.). У регистров остатков есть вид движения «Приход» и «Расход», у регистров оборотов вида нет, там просто пишутся значения.
Почти всегда регистр подчинён регистратору. Это значит, что каждая запись принадлежит какому-то документу, и набор записей этого документа хранится целиком. Отдельную строку в таком регистре в обычном интерфейсе не изменить и не удалить: у регистра нет формы списка для правки, а при перепроведении документа система всё равно перезапишет набор.
Из этого следуют три правила:
- 🔎 ошибочная запись — это следствие ошибки в документе или в данных, на которых документ считает;
- 🧾 исправить причину в документе надёжнее, чем править следствие в регистре;
- 🔁 правка записей мимо документа теряется при следующем перепроведении.
Сначала посмотрите, откуда запись взялась. В форме документа откройте его движения: в командной панели есть кнопка с значком Дт/Кт, она показывает результат проведения и список регистров, в которых документ сделал записи. Если нужной записи в этом списке нет, её создал другой документ или она записана без регистратора.
2. Исправление через отмену проведения и повторное проведение
Это базовый способ, он подходит, когда виновата ошибка в самом документе: неверное количество, склад, сумма, дата.
Порядок действий:
- Откройте документ, который создал ошибочные движения.
- Если период не закрыт, исправьте реквизиты или табличную часть.
- Нажмите «Провести». Система удалит прежние движения документа и запишет новые.
- Откройте движения документа и убедитесь, что значения в регистре изменились.
Если документ нужно только пересчитать без правки данных, достаточно «Провести» ещё раз. Отдельно отменять проведение не обязательно: повторное проведение и так заменяет набор записей.
Если документ не проводится из-за ошибки контроля остатков, регистр не обновится. Сначала устраните причину (например, нехватку товара на дату), а не пытайтесь править регистр.
Когда нужна именно отмена проведения
Отмените проведение, если запись должна пропасть совсем: документ введён по ошибке, а не исправляется. Затем решите, что делать с документом: пометить на удаление или оставить непроведённым как черновик.
💡 Если нужно сохранить след в учёте, не удаляйте документ, а оформите встречный документ с тем же регистром: возврат, списание, корректировку. История остаётся видна в отчётах.
Что делать с закрытым периодом
Когда в базе стоит дата запрета изменения, перепровести старый документ нельзя. Дата запрета настраивается в разделе администрирования, в настройках пользователей и прав. Менять её для одной правки без согласования с главным бухгалтером не стоит: закрытые данные уже могли попасть в отчётность.
Правильный путь в закрытом периоде — корректировка текущей датой: отдельный документ, который меняет остаток сегодня, а в комментарии ссылается на причину.
3. Групповое перепроведение документов
Если ошибка массовая (неверная настройка, исправленный справочник, сбой при обмене), перепроводить документы по одному долго. Для этого в типовых конфигурациях есть обработка группового перепроведения: она находится в разделе Администрирование → Обслуживание, ищите пункт с названием про перепроведение документов
.
Что в ней настраивается:
- 📅 период, за который берутся документы;
- 📄 виды документов, которые нужно перепровести;
- 🏢 организация, если в базе их несколько;
- ▶️ порядок проведения: от старых документов к новым.
Порядок важен. Документ, который списывает товар, должен проводиться после документа, который его оприходовал. При проведении «от старых к новым» остатки считаются верно.
Как не потерять данные
Перед массовой операцией:
- Сделайте выгрузку информационной базы или копию файла базы. Перепроведение необратимо: прежние движения заменяются новыми.
- Выберите узкий период, например один месяц, и проверьте результат на нём.
- Запускайте обработку в нерабочее время, когда в базе нет пользователей. На большом объёме она держит блокировки и сильно нагружает сервер.
| Способ | Когда использовать | Риски |
|---|---|---|
| Провести один документ | Ошибка в конкретной записи | Минимальные |
| Групповое перепроведение | Массовая ошибка за период | Долгая работа, блокировки, пересчёт себестоимости |
| Запись набора кодом | Нет документа, нужна точечная правка | Расхождение с документами |
| Пересчёт итогов | Итоги не сходятся с записями | Нужен монопольный доступ |
Пример: лишнее оприходование на складе
Кладовщик ввёл поступление на 120 штук вместо 102 и провёл его. Через неделю на складе нашли недостачу, а в регистре «Товары на складах» остаток завышен на 18 штук.
Порядок такой:
- Откройте поступление и посмотрите его движения: приход 120 штук виден сразу.
- Если период открыт, исправьте количество на 102 и проведите документ заново. Остаток в регистре станет верным без дополнительных операций.
- Если по этому товару уже были продажи и склад ушёл бы в минус, проведение остановится на контроле остатков. Сначала проверьте, какие документы расходуют товар, и решите, что с ними делать.
- Если период закрыт, оформите списание на 18 штук текущей датой с пометкой «исправление ошибки ввода поступления».
Цифры в отчёте после этого сверьте с актом инвентаризации: разница должна быть нулевой.
4. Корректировка и сторно: когда допустимо менять учёт без перепроведения
В учёте сторнирование — это запись с обратным знаком, которая гасит ошибочную. В регистре накопления остатков роль сторно играет встречное движение: к ошибочному приходу добавляют расход на ту же сумму и по тем же измерениям.
Допустимо это в двух случаях:
- документ закрыт датой запрета, а ошибка найдена позже;
- записи без регистратора, у которых нет документа-основания.
Во всех остальных случаях встречную запись лучше оформлять документом: списание, оприходование, корректировка долга , документ «Операция» или аналог в вашей конфигурации. Тогда в учёте остаётся основание, а аудитор видит, кто и зачем изменил данные.
Принцип корректировки:
- Определите, что именно ошибочно: измерение (не тот склад), ресурс (не то количество) или период.
- Рассчитайте разницу между фактом и записью. Например, оприходовано 120 штук, а было 102. Разница 18 штук.
- Оформите документ, который спишет излишек 18 штук со склада.
- Проверьте, что остаток по регистру стал 102.
Не «подтягивайте» регистр под нужные цифры без документа. Через месяц никто не вспомнит, откуда взялось расхождение, а регистр и первичные документы перестанут сходиться.
5. Прямая запись в регистр: набор записей кодом
Если документа нет, а запись есть, остаётся программная правка. Выполняют её в консоли кода, во внешней обработке или в обработке, которую подготовил разработчик. Не работайте с рабочей базой без копии.
Для регистра, подчинённого регистратору, правят весь набор записей этого документа. Пример: у документа с известной ссылкой нужно уменьшить количество в каждой строке движений на единицу.
НаборЗаписей = РегистрыНакопления.ТоварыНаСкладах.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаДокумент);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
Запись.Количество = Запись.Количество - 1;
КонецЦикла;
НаборЗаписей.Записать();
Что здесь важно:
- 🎯 отбор по регистратору обязателен, иначе вы запишете не тот набор;
- 📝
Записать()с параметром по умолчанию заменяет прежние записи набора теми, что в памяти; - ⛔ если нужно полностью очистить движения, оставьте набор пустым и вызовите
Записать(): записи документа в этом регистре удалятся.
Для регистра без подчинения регистратору отбор строят по измерениям: период и нужные значения измерений. Принцип тот же: прочитать, изменить, записать.
Запись набора напрямую не проверяет остатки, не обновляет другие регистры и не меняет сам документ. Документ по-прежнему будет показывать в движениях то, что считал при проведении. При следующем перепроведении ваша правка исчезнет.
Что проверить сразу после записи
- сравните оборот по регистру с оборотом по документам за тот же период;
- убедитесь, что отрицательных остатков нет;
- запишите в журнал или комментарий, что и когда правили вручную.
6. Где искать причину расхождений
Правка записей не помогает, если причина не устранена. Расхождения обычно появляются из-за нескольких вещей:
- 🕰 документы вводились и проводились «задним числом», и последующие документы посчитались на неверных остатках;
- 🔄 обмен принёс документы с другой датой или удалил старые;
- 🧩 изменили справочник (склад, номенклатуру, организацию) после проведения документов;
- 🧮 итоги регистра не пересчитаны после сбоя или аварийного завершения;
- 👤 пользователь правил данные через обработку или код.
Как найти расхождение
- Постройте отчёт по регистру за период с детализацией по регистраторам. В типовой конфигурации подойдёт любой оборотный отчёт по нужному разрезу или универсальный отчёт из раздела отчётов.
- Найдите строки, которые не сходятся с первичными документами: нетипичные суммы, записи с датой вне периода документа.
- Откройте регистратор из строки отчёта и сравните его движения с табличной частью.
- Если регистратор пустой или документа нет в базе, запись «осиротела». Её исправляют набором записей, как в предыдущем разделе.
Пересчёт итогов
Регистры накопления хранят не только записи, но и итоги. Если после сбоя остатки в отчётах не совпадают с суммой записей, итоги пересчитывают. В Конфигураторе это делается через Администрирование → Тестирование и исправление информационной базы с включённым пересчётом итогов.
Операция требует монопольного доступа: все пользователи должны выйти из базы. Предупредите их заранее, потому что сеансы нужно завершить.
7. Как не плодить ошибочные записи
Чаще всего исправление нужно из-за того, что ошибка прошла незамеченной. Несколько привычек снижают число правок:
- Проверяйте результат проведения у документов, которые сильно влияют на учёт: поступления, списания, ввод остатков.
- Закрывайте период датой запрета сразу после сверки и сдачи отчётности.
- Не разрешайте пользователям менять данные за закрытые периоды без ответственного.
- Выводите отрицательные остатки в регламентный отчёт и разбирайте их ежедневно.
- Не вносите правки кодом без записи в журнал изменений.
Регламентные работы
Раз в месяц имеет смысл проверять:
- отсутствие документов, проведённых с ошибкой;
- совпадение остатков регистра с данными инвентаризации;
- состояние обменов: нет ли висящих сообщений с ошибкой.
А перед закрытием года нужно перепровести проблемные документы, пока дата запрета ещё не стоит. Правка закрытых данных потом обходится дороже.