Неверные остатки в регистре: как найти виновный документ и поправить движения
Содержание
Записи регистров накопления в 1С 8.3 почти всегда принадлежат документу-регистратору, поэтому исправляют не регистр, а движения конкретного документа. Найти их проще всего консолью запросов: запрос к таблице регистра с отбором по номенклатуре и складу показывает каждый документ, который сдвинул остаток. Править — перепроведением, ручной корректировкой движений (в БП 3.0 это флажок в форме движений документа) или отдельным документом «Корректировка регистров» в УТ 11 и ERP.
Частое заблуждение — что остаток в регистре можно «просто подправить» в таблице. Список записей регистра с регистратором открыт только для чтения, и это правильно: прямое изменение без документа рвёт связь между первичкой и учётом, а при следующем перепроведении правка исчезнет.
С чего начать: локализуем расхождение в регистре накопления
Прежде чем что-то корректировать, ответьте себе на три вопроса. Без них правка превращается в подгонку цифры.
- Какой регистр. Остаток товара, взаиморасчёты, НДС, резервы — у каждого свой регистр накопления. Имя регистра видно в отчёте о движениях документа или в Конфигураторе.
- По какому разрезу. Номенклатура, склад, организация, договор — найдите строку, где цифра расходится с реальностью.
- С какой даты. Найдите последнюю дату, на которую остаток был верным. Между ней и первой неверной датой и лежит виновный документ.
Типичные признаки проблемы:
- 📉 отрицательный остаток там, где его быть не может;
- 🔁 остаток в отчёте не совпадает с данными инвентаризации или акта сверки;
- 🧾 документ проведён, но в отчёте по регистру его будто нет;
- ⏳ после правки документа задним числом поплыли остатки на текущую дату;
- 🧮 отчёт по регистру и запрос к виртуальной таблице «Остатки» дают разные цифры.
Последний признак особый: он указывает не на документы, а на итоги регистра. Это лечится пересчётом итогов, о нём ниже.
Если есть сомнения, верна ли цифра в отчёте, сверьте её с запросом к виртуальной таблице Остатки на ту же дату. Совпадает — проблема в документах. Не совпадает — в итогах или в настройках отчёта.
Где найти записи регистров накопления в режиме 1С:Предприятие
Сначала смотрите сам документ. В БП 3.0 у проведённого документа в командной панели есть кнопка ДтКт — она открывает форму движений документа. Там вкладками показаны все регистры, в которые документ записал данные: бухгалтерский, налоговый и регистры накопления.
В конфигурациях на БСП (УТ 11, КА, ERP, ЗУП 3.1) у документа есть отчёт о движениях. Он открывается из меню Ещё или из подменю Отчёты формы документа и показывает записи всех регистров одной таблицей.
Если нужен сам регистр, а не документ, включите режим «Все функции»:
- Откройте главное меню (кнопка с тремя полосками слева вверху).
- Выберите
Сервис → Параметры. - Отметьте флажок «Отображать команду “Все функции”».
- Теперь в главном меню есть
Все функции → Регистры накопления.
В списке регистра видны период, регистратор, вид движения (приход или расход) и все измерения с ресурсами. Список можно отфильтровать через Ещё → Настроить список — отбор по номенклатуре и складу сразу сужает картину до нескольких десятков строк.
Двойной щелчок по строке открывает документ-регистратор. Так вы за пару минут выходите на документ, который дал «минус».
| Где смотреть | Что видно | Когда удобно |
|---|---|---|
Движения документа (ДтКт в БП 3.0) | Все записи одного документа | Есть подозрение на конкретный документ |
| Отчёт о движениях документа | Записи всех регистров одной таблицей | УТ 11, ERP, КА, ЗУП 3.1 |
Все функции → Регистры накопления | Все записи регистра с отбором | Ищете документ по разрезу и дате |
| Отчёты конфигурации по остаткам | Остатки и обороты | Нужно найти дату, когда цифра поплыла |
Консоль запросов: глубокий анализ записей регистра
Когда записей тысячи, список регистра неудобен. Консоль запросов даёт точный ответ за минуту. Это внешняя обработка, её открывают через Файл → Открыть в режиме 1С:Предприятие (в некоторых конфигурациях она уже встроена в раздел администрирования).
Ниже примеры для регистра ТоварыНаСкладах. Имена регистра, измерений и ресурсов у вашей конфигурации могут быть другими — подставьте свои, их видно в конструкторе запроса консоли.
Запрос 1. Где остаток ушёл в минус.
ВЫБРАТЬ
Остатки.Номенклатура,
Остатки.Склад,
Остатки.ВНаличииОстаток КАК Остаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&НаДату) КАК Остатки
ГДЕ
Остатки.ВНаличииОстаток < 0
Виртуальная таблица Остатки на дату возвращает остаток на начало этого момента. Чтобы учесть документы последнего дня, передайте в параметр конец дня, например 31.10.2026 23:59:59.
Запрос 2. Какие документы двигали позицию.
ВЫБРАТЬ
Движения.Период,
Движения.Регистратор,
Движения.ВидДвижения,
Движения.ВНаличии,
Движения.Активность
ИЗ
РегистрНакопления.ТоварыНаСкладах КАК Движения
ГДЕ
Движения.Номенклатура = &Номенклатура
И Движения.Склад = &Склад
И Движения.Период МЕЖДУ &Начало И &Конец
УПОРЯДОЧИТЬ ПО
Движения.Период
Поле Активность полезно: неактивные записи в остатки не попадают, и это иногда объясняет «пропавший» документ.
Запрос 3. Остаток после каждого документа.
ВЫБРАТЬ
ОИО.Период,
ОИО.Регистратор,
ОИО.ВНаличииНачальныйОстаток,
ОИО.ВНаличииПриход,
ОИО.ВНаличииРасход,
ОИО.ВНаличииКонечныйОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
&Начало, &Конец, Регистратор, ,
Номенклатура = &Номенклатура И Склад = &Склад) КАК ОИО
УПОРЯДОЧИТЬ ПО
ОИО.Период
Периодичность Регистратор даёт строку на каждый документ с остатком до и после него. Первая строка, где конечный остаток стал отрицательным или неверным, — ваш кандидат.
Отбор лучше писать в параметрах виртуальной таблицы, как в запросе 3, а не в ГДЕ. Так платформа фильтрует данные до расчёта остатков, и запрос не тормозит на больших базах.
Последовательности документов и их влияние на записи регистров
Последовательность — механизм платформы, который следит за порядком проведения документов. Он нужен там, где движения одного документа зависят от остатков, созданных предыдущими. Классический пример — списание партий по FIFO: расход берёт себестоимость из остатков партий на свой момент времени.
Как это работает:
- Документы, влияющие на остатки, входят в последовательность.
- У последовательности есть граница — момент, до которого все документы проведены в правильном порядке.
- Если вы изменили или перепровели документ раньше границы, граница сдвигается назад, на дату этого документа.
- Чтобы движения снова стали верными, документы от границы до текущей даты перепроводят по порядку. Это называется восстановлением последовательности.
Отсюда частая ловушка. Бухгалтер исправил приход за прошлый месяц, перепровёл его — и считает дело сделанным. Но все расходы после этого прихода остались с прежней себестоимостью, ведь они проводились по старым остаткам.
Как это выглядит в типовых конфигурациях:
- 🗂 БП 3.0. Обработка «Закрытие месяца» сама подсказывает, что после изменений задним числом нужно перепровести документы, и выносит это отдельным шагом. Есть и групповое перепроведение документов за период.
- 📦 УТ 11, КА, ERP. Себестоимость считается регламентной операцией расчёта себестоимости при закрытии месяца, поэтому после правки прошлого периода её нужно пересчитать за этот и последующие месяцы.
- 🏛 Старые конфигурации (УПП, БП 2.0). Используются классические последовательности и отдельная обработка их восстановления.
Групповое перепроведение за большой период нагружает базу и меняет движения сотен документов. Делайте его вне рабочего времени и только после резервной копии.
Ручная корректировка записей регистров накопления
Если перепроведение не даёт нужного результата — например, документ загружен из обмена с ошибкой или нужно поправить одну строку без изменения первички, — используют ручную корректировку. Способов три.
Ручная корректировка движений документа в БП 3.0
- Откройте документ и нажмите
ДтКт. - В форме движений установите флажок «Ручная корректировка (разрешает редактирование движений документа)».
- Перейдите на вкладку нужного регистра накопления и исправьте, добавьте или удалите строку.
- Нажмите «Записать и закрыть».
Пока флажок стоит, при перепроведении программа не перезаписывает ваши движения. Это и плюс, и минус. Документ с ручной корректировкой не будет пересчитываться ни при закрытии месяца, ни при групповом перепроведении. Изменили табличную часть — движения останутся старыми.
Операция, введённая вручную, и документ «Корректировка регистров»
В БП 3.0 есть документ «Операция» (Операции → Операции, введённые вручную). Помимо проводок, в нём можно выбрать регистры накопления командой выбора регистров в командной панели. Для каждого выбранного регистра появляется своя вкладка, где строки заполняются вручную.
В УТ 11, КА и ERP для этого служит документ «Корректировка регистров». Найти его надёжнее всего через Все функции → Документы. В нём выбирают регистр, вводят записи прихода или расхода и проводят документ.
Плюс этого способа — исправление остаётся отдельным документом с датой, автором и комментарием. Видно, кто, когда и зачем поменял остаток.
Программная корректировка набора записей
Для массовых правок пишут внешнюю обработку. Код выполняется на сервере:
&НаСервере
Процедура ИсправитьДвиженияНаСервере(ДокументСсылка, Номенклатура, НовоеКоличество)
НаборЗаписей = РегистрыНакопления.ТоварыНаСкладах.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ДокументСсылка);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
Если Запись.Номенклатура = Номенклатура Тогда
Запись.ВНаличии = НовоеКоличество;
КонецЕсли;
КонецЦикла;
НаборЗаписей.Записать();
КонецПроцедуры
Записать() по умолчанию полностью заменяет набор записей этого регистратора. Поэтому сначала читаем набор, правим нужные строки и только потом пишем обратно. Если записать пустой набор без Прочитать(), все движения документа по регистру будут удалены.
Иногда в таких обработках ставят НаборЗаписей.ОбменДанными.Загрузка = Истина, чтобы обойти проверки при записи. Этот флаг отключает бизнес-логику конфигурации, включая контроль остатков. Используйте его только когда точно понимаете, какие проверки пропускаете.
| Способ | Когда подходит | Риски |
|---|---|---|
| Перепроведение документа | Ошибка в самом документе, его можно исправить | Сдвиг последовательности, нужен перерасчёт |
| Ручная корректировка в документе (БП 3.0) | Одна-две строки, первичка верная | Документ перестаёт пересчитываться |
| Операция / «Корректировка регистров» | Нужен отдельный след исправления | Легко задвоить, если исходная ошибка тоже будет исправлена |
| Внешняя обработка | Массовые правки по многим документам | Ошибка в коде затрагивает всю выборку |
Любая ручная правка регистра делается после резервной копии базы и с согласованием с главным бухгалтером. Перед программной корректировкой проверьте обработку на копии.
Пересчёт итогов регистров накопления
Иногда записи верные, а остатки — нет. Так бывает после аварийного завершения работы, сбоев при записи или ручного вмешательства в базу. Платформа хранит итоги регистра отдельно от записей, и они могут разойтись.
Признак — запрос к самим записям регистра даёт одну сумму, а виртуальная таблица Остатки на ту же дату — другую.
Пересчитать итоги можно двумя способами:
- В режиме 1С:Предприятие.
Все функции → Стандартные → Управление итогами. Здесь можно пересчитать итоги выбранных регистров и посмотреть период рассчитанных итогов. Пользователи могут продолжать работу, но вечером это делать спокойнее. - В Конфигураторе.
Администрирование → Тестирование и исправление, флажок «Пересчёт итогов». Этот режим требует монопольного доступа, поэтому заранее предупредите пользователей: их сеансы придётся завершить.
Пересчёт итогов не меняет сами записи. Если ошибка в движениях документов, он не поможет — сначала исправьте документы.
Профилактика ошибок в регистрах накопления
Лучшая корректировка — та, которая не понадобилась. Несколько настроек снимают большую часть проблем.
- 🔒 Даты запрета изменения. В БП 3.0 и других конфигурациях на БСП:
Администрирование → Пользователи и права → Даты запрета изменения. После закрытия периода никто не перепроведёт документ задним числом без ведома главбуха. - 🚫 Контроль остатков. В настройках учёта запасов есть параметр, разрешающий или запрещающий списание при отсутствии остатков. Запрет не даст провести расход «в минус».
- ✅ Экспресс-проверка в БП 3.0.
Отчёты → Анализ учёта → Экспресс-проверканаходит отрицательные остатки и другие типичные нарушения до сдачи отчётности. - 📅 Регулярный запрос на минусы. Запрос 1 из раздела про консоль можно сохранить и запускать раз в неделю. Пять минут — и проблема видна в день появления, а не при годовом закрытии.
- 🧾 Корректировки — отдельным документом. Если правка неизбежна, оформите её документом с комментарием, а не правкой движений исходного документа. Через полгода будет понятно, откуда цифра.
Частые вопросы
Можно ли удалить запись регистра накопления без удаления документа?
Чем регистр остатков отличается от оборотного?
Почему после перепроведения документа ручные правки пропали?
Есть ли у независимого регистра накопления регистратор?
Как узнать, кто изменил движения документа?
Администрирование → Обслуживание → Журнал регистрации и отберите события по документу. Там видны пользователь, время и тип события.