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

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

Проведение документа в 1С: что происходит и в каком порядке

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

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

Механизм проведения построен на событиях и транзакциях. Платформа последовательно вызывает обработчики, документ делает движения по регистрам, система контролирует остатки, и только если всё прошло без ошибок — изменения фиксируются в базе. Любая ошибка на любом шаге откатывает всю операцию целиком.

Ниже разобран порядок проведения «по шагам»: от нажатия кнопки до записи в регистры, а также типичные проблемы и способы их диагностики.

Что такое проведение и чем оно отличается от записи

Запись документа — это просто сохранение его реквизитов и табличных частей в базе данных. Записанный, но не проведённый документ существует в журнале, но никак не влияет на остатки, взаиморасчёты и бухгалтерские итоги. Именно поэтому черновики можно хранить сколько угодно — учёт они не портят.

Проведение — это запись плюс формирование движений. Документ при проведении создаёт записи в тех регистрах, которые указаны в его свойствах в конфигураторе (накопления, сведений, бухгалтерии, расчёта). Уже эти движения попадают в отчёты, оборотно-сальдовые ведомости и контроль остатков.

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

Порядок проведения: что происходит по шагам

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

Порядок проведения документа
  1. 1
    Открывается транзакция — все дальнейшие изменения временны до фиксации
  2. 2
    Документ записывается в базу (реквизиты и табличные части)
  3. 3
    Вызывается обработчик ОбработкаПроведения — здесь код формирует движения
  4. 4
    Наборы записей по регистрам записываются в базу
  5. 5
    Выполняется контроль остатков (если он включён для регистра)
  6. 6
    Срабатывают подписки на события проведения
  7. 7
    Транзакция фиксируется — изменения становятся постоянными

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

Внутри обработчика проведения типовой код обычно строится так: сначала формируются запросы к табличной части документа, затем заполняются наборы записей (Движения.ИмяРегистра), потом вызывается запись движений, и после этого выполняется контроль — либо встроенный платформенный, либо программный в самой конфигурации.

Движения по регистрам: какие бывают и как их смотреть

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

Посмотреть движения можно прямо из формы документа: кнопка «Движения документа» или команда «Ещё → Движения документа» в зависимости от конфигурации. Откроется список регистров, по которым документ провёлся, с записями по каждому.

Тип регистраЧто хранитПример движения
Накопления (остатки)Остатки товаров, денег, взаиморасчётовРасход 5 шт. по складу «Основной»
Накопления (обороты)Обороты без остатков: продажи, заказыПродажа на сумму 10 000
СведенийЦены, курсы, статусы, привязкиУстановка цены номенклатуры
БухгалтерииПроводки по плану счетовДт 62.01 Кт 90.01 на сумму реализации

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

Контроль остатков и оперативное проведение

Контроль остатков — механизм, который не даёт списать со склада больше, чем есть. Он бывает двух видов: контроль при проведении (проверяется остаток на момент документа) и контроль при записи набора. В типовых конфигурациях логика контроля часто реализована программно внутри обработки проведения.

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

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

Транзакции и откат при ошибках

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

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

В клиент-серверном режиме при параллельном проведении документов по одним и тем же регистрам возможны конфликты блокировок. Это нормальное явление при высокой нагрузке: один из пользователей получит ошибку «Конфликт блокировок» и должен повторить проведение. Управляемые блокировки в типовых конфигурациях снижают частоту таких ситуаций.

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

Большинство проблем с проведением укладывается в несколько типовых сценариев. Ниже — признаки и первые действия для каждого.

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

Что делать при ошибке проведения

Сообщение «Недостаточно товара»Сформируйте отчёт по остаткам склада на дату документа и найдите, каким документом остаток был израсходован
Документ проведён, но отчёты его не видятОткройте движения документа и проверьте, по тем ли регистрам и с теми ли измерениями сделаны записи
Ошибка «Конфликт блокировок»Повторите проведение через несколько секунд; при постоянных конфликтах проверьте фоновые задания и обмены
Ошибка в обработчике проведения (ссылка на код)Передайте текст ошибки разработчику — проблема в модуле объекта или подписке на событие

Документ не проводится без видимой причины

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

Перепроведение меняет результаты

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

Типичные ошибки
01
Массовое перепроведение за закрытый период без копии базы — себестоимость и остатки пересчитываются, отчётность расходится
02
Исправление движений вручную вместо исправления документа — при следующем перепроведении ручные правки затрутся
03
Игнорирование даты запрета редактирования — пользователь думает, что документ проведён, а он не записался
04
Проведение документов не в хронологическом порядке — контроль остатков срабатывает на промежуточных минусах

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

После проведения важного документа полезно выполнить короткую проверку, особенно если документ нестандартный или период критичный (закрытие месяца, инвентаризация).

Контрольные точки

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

Статус в журнале
Норма

Документ отмечен как проведённый

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

Пометка отсутствует — проведение не выполнено

Движения документа
Норма

Есть записи по ожидаемым регистрам с верными измерениями

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

Движений нет или измерения (склад, организация) не те

Отчёт по остаткам
Норма

Остаток изменился на количество и сумму документа

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

Остаток не изменился или появился минус

Проводки
Норма

Корреспонденция счетов соответствует хозяйственной операции

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

Проводок нет или счета не соответствуют операции

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

Итог

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

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

Частые вопросы

Чем отличается «Записать» от «Провести»?

«Записать» сохраняет только данные самого документа — он виден в журнале, но не влияет на учёт. «Провести» дополнительно формирует движения по регистрам, которые попадают в отчёты и влияют на остатки и проводки.

Почему документ провёлся, а в отчёте его нет?

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

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

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

Опасно ли перепроводить документы за прошлые периоды?

Да, это требует осторожности. Перепроведение пересчитывает движения, может изменить остатки, себестоимость и последовательность документов, а контроль остатков начнёт учитывать более поздние документы. Перед массовым перепроведением сделайте резервную копию и сначала проверьте результат на копии базы.

Что делать при ошибке «Недостаточно товара на складе»?

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

Почему возникает «Конфликт блокировок» при проведении?

Другой пользователь или фоновое задание в этот момент изменяет те же записи регистров. Обычно достаточно повторить проведение через несколько секунд. Если ошибка повторяется постоянно, проверьте расписание обменов и фоновых заданий — они могут надолго блокировать данные.