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

Разработка и Конфигурация · 12 мин

Проведение документа по регистру в 1С: как это работает и как проверить движения

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

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

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

Что такое регистры и почему документ по ним проводится

Регистр в 1С — это таблица, в которую документы записывают результаты своего проведения. Сам документ хранит только введённые пользователем данные (шапку и табличные части), а вся учётная информация — остатки товаров, взаиморасчёты, проводки, начисления — накапливается в регистрах. Отчёты читают данные именно из регистров, а не из документов напрямую.

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

Виды регистров и как документ ведёт себя в каждом

В платформе 1С:Предприятие 8 существует четыре вида регистров, и поведение документа при проведении зависит от вида регистра. Понимание различий помогает предсказать, какие записи появятся и как их интерпретировать.

Вид регистраЧто хранитКак проводится документПример
СведенийЗначения в разрезе измерений (цены, курсы, настройки)Записывает значение на дату; если регистр периодический — с указанием периодаУстановка цен номенклатуры
Накопления (остатки)Остатки в разрезе измеренийЗаписи прихода или расхода изменяют остатокТовары на складах
Накопления (обороты)Только обороты без остатковКаждая запись увеличивает оборот, вычитания нетПродажи, доходы
БухгалтерииПроводки по плану счетовФормирует записи Дт/Кт с суммами и субконтоХозрасчётный

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

Что происходит в момент проведения: этапы платформы

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

Порядок проведения документа
  1. 1
    Платформа вызывает обработчик ОбработкаПроведения модуля объекта документа
  2. 2
    Код обработчика формирует наборы записей по каждому регистру из списка движений документа
  3. 3
    Выполняются контроли: заполненность обязательных полей, блокировки, проверки остатков (если предусмотрены конфигурацией)
  4. 4
    Наборы записей записываются в регистры в рамках одной транзакции
  5. 5
    Документу устанавливается признак «Проведён», транзакция фиксируется
  6. 6
    При ошибке на любом шаге транзакция откатывается целиком

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

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

Как посмотреть, по каким регистрам провёлся документ

Самый быстрый способ — открыть проведённый документ и нажать кнопку «Движения документа» (в разных конфигурациях она может называться «Дт/Кт», «Показать движения» или находиться в меню «Ещё»). Откроется список регистров, по которым документ сделал записи, с возможностью просмотреть каждую строку.

Если кнопки нет или нужен массовый анализ, есть альтернативы:

  • универсальный отчёт по регистру с отбором по регистратору — показывает все записи конкретного документа в нужном регистре;
  • отчёт «Движения документа» / «Анализ движений документа» в типовых конфигурациях;
  • консоль запросов (для разработчика) — запрос к таблице регистра с условием «Регистратор = &Документ»;
  • отчёты по остаткам с детализацией до регистратора — позволяют увидеть вклад документа в итоговый остаток.
Контрольные точки

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

Список регистров в окне движений
Норма

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

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

Регистра нет в списке — документ по нему не проводится, отчёт будет пустым

Знаки и вид движения
Норма

Поступление — «Приход», реализация/списание — «Расход»

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

Неверный вид движения: остатки уходят в минус или растут вместо списания

Период записей
Норма

Дата записей совпадает с датой документа (или ожидаемым периодом)

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

Записи попали не в тот месяц — проверяйте дату документа и логику обработчика

Суммы и количество
Норма

Совпадают с табличной частью документа с учётом курсов и НДС

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

Расхождения — вероятна ошибка в алгоритме проведения или в данных документа

Как настроить проведение документа по регистру в конфигураторе

Для разработчика базовая связка «документ — регистр» настраивается в конфигураторе в два действия: регистр добавляется в список движений документа, а в модуле объекта описывается формирование записей. Без первого шага платформа не создаст набор записей, без второго набор останется пустым.

1c
Процедура ОбработкаПроведения(Отказ, РежимПроведения)

    Движения.ТоварыНаСкладах.Записывать = Истина;

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

КонецПроцедуры

Ключевые моменты, которые часто упускают:

  • свойство Записывать = Истина обязательно — без него набор записей не будет записан, даже если строки добавлены;
  • при оперативном проведении дата документа не может быть меньше текущей — платформа сама откажет в проведении «задним числом» для оперативных документов;
  • контроль остатков при расходе в типовых конфигурациях выполняется отдельным механизмом, а не автоматически — в самописной конфигурации его нужно реализовать вручную запросом к остаткам;
  • при отмене проведения платформа сама удаляет все записи документа из регистров — отдельная очистка в коде обычно не нужна.

Типичные проблемы при проведении по регистрам

Большинство обращений по теме сводятся к нескольким повторяющимся сценариям. Зная их, можно локализовать проблему за минуты, а не часами искать ошибку в отчётах.

Типичные ошибки
01
Документ проведён, но отчёт пуст: регистр не входит в движения документа или обработчик не записал записи из-за невыполненного условия
02
Отчёт показывает двойные суммы: документ перепроводился с ошибкой в старой версии кода, а записи не очистились — помогает отмена проведения и повторное проведение
03
Отрицательные остатки: расходный документ проведён раньше приходного по времени внутри одной даты — проверьте время документов и последовательность проведения
04
Движения есть, но в бухгалтерском отчёте их нет: документ проводится по регистру накопления, но не формирует проводок по регистру бухгалтерии — это разные механизмы
05
После обновления конфигурации документы перестали проводиться: изменился состав измерений регистра или обязательность реквизитов — нужно смотреть текст ошибки и новые требования к заполнению

Отдельная группа проблем — ручные операции и корректировки регистров. Если кто-то исправил записи регистра напрямую (документом «Операция» или «Корректировка регистров»), то связь «документ → движения» разрывается: перепроведение исходного документа не восстановит картину, а отчёты будут расходиться с документами. Такие правки стоит делать только осознанно и документировать.

Маршрут решения

Как выбрать действие при проблеме

Документ не проводится с сообщением об ошибкеЧитайте текст ошибки: обычно это незаполненное поле, отрицательный остаток или запрет изменения данных в закрытом периоде
Документ проводится, но отчёт не видит данныхОткройте движения документа и проверьте, есть ли записи по регистру, на котором построен отчёт
Остатки не сходятся с первичкойСформируйте отчёт по остаткам с детализацией до регистратора и найдите документ с неверным видом движения или датой
Нужно изменить логику проведения типового документаИспользуйте расширение конфигурации или подписку на событие, а не прямое изменение типового модуля — иначе потеряете изменения при обновлении

Оперативное и неоперативное проведение

Для документов, влияющих на остатки в реальном времени (касса, склад, продажи), в конфигурациях включают оперативное проведение. В этом режиме документ всегда проводится текущей датой и временем, а контроль остатков выполняется «на момент проведения». Это не даёт продать товар, которого ещё нет на складе.

Неоперативное проведение позволяет проводить документы любой датой, что удобно для документов прошлых периодов, но требует аккуратности: проведение «задним числом» меняет остатки на всём последующем периоде. В типовых конфигурациях для этого существует механизм восстановления последовательностей или регламентные операции закрытия месяца, которые пересчитывают зависимые данные.

Если после ввода документа прошлым периодом отчёты по текущему месяцу «поплыли», не спешите перепроводить всё подряд. Сначала выясните, какие регистры затронул документ, и проверьте, есть ли в конфигурации штатный механизм пересчёта (закрытие месяца, восстановление последовательностей) — он безопаснее ручного перепроведения.
ПЗ
Практическое замечание

FAQ: частые вопросы о проведении документов по регистрам

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

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

Что происходит с записями регистров при отмене проведения?

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

Почему документ в списке отмечен как проведённый, но движений нет?

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

Как безопасно перепровести документы за прошлый период?

Сделайте резервную копию, убедитесь, что период не закрыт для редактирования (дата запрета изменения данных), и проверьте, не повлияет ли перепроведение на сданную отчётность. Используйте штатные обработки группового перепроведения с отбором по типу документов и периоду, а результат сверяйте по контрольным отчётам до и после.

Чем регистр накопления отличается от регистра бухгалтерии при проведении?

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

Как узнать, какие регистры вообще может использовать конкретный документ?

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

Итог

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

При проведении документ пишет движения в регистры из списка своих движений; отчёты читают данные из регистров, а не из документов. Диагностику начинайте с кнопки «Движения документа», изменения логики проведения делайте в копии базы и через расширения, а массовое перепроведение — только после резервной копии.