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