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