Проведение документа в 1С: что происходит после нажатия
Содержание
Кнопка «Провести» в 1С заставляет программу выполнить код проведения документа: проверить данные, записать документ в базу и сформировать по нему движения в регистрах. Пока документ только записан, он существует как запись в журнале, но на учёт не влияет: остатки, обороты и отчёты его не видят.
Проведённый документ меняет данные учёта. Склад получает приход, счета получают проводки, взаиморасчёты с контрагентом меняются. Поэтому «Провести» и «Записать» — две разные команды, и путать их опасно.
Что именно происходит при проведении
Нажатие запускает обработку проведения, которую разработчик конфигурации написал для данного вида документа. Платформа делает всё в одной транзакции: если что-то пошло не так, изменения откатываются, и в базе остаётся прежнее состояние.
Порядок такой:
- Выполняется проверка заполнения: обязательные реквизиты, табличные части, согласованность полей.
- Документ записывается в базу под текущим номером и датой.
- Старые движения этого документа удаляются, если он проводился раньше.
- Код проведения читает данные документа и формирует новые движения.
- Движения записываются в регистры, документу присваивается признак «проведён».
Пункт 3 важен: при повторном проведении движения не накапливаются, а пересоздаются целиком. Поэтому перепроводить документ можно без страха задвоить остатки.
Движения по регистрам: куда уходят данные
Проведение превращает строки документа в записи регистров. Тип регистра зависит от того, что учитывается:
| Регистр | Что хранит | Пример |
|---|---|---|
| Накопления (остатки) | Количество и суммы с остатком на дату | Товары на складах |
| Накопления (обороты) | Только обороты за период | Продажи |
| Сведений | Значения на дату или без неё | Курсы валют, цены |
| Бухгалтерии | Проводки по планам счетов | Дебет 41.01, кредит 60.01 |
| Расчёта | Начисления и удержания | Зарплата в ЗУП |
Один документ может писать в несколько регистров сразу. Поступление товаров увеличивает остаток на складе, создаёт проводки по счетам учёта и НДС, меняет задолженность перед поставщиком.
Как посмотреть, что сформировалось
После проведения откройте форму документа и найдите команду просмотра движений документа. В бухгалтерской конфигурации она показывает проводки и записи регистров списком. В типовых конфигурациях она вынесена в верхнюю часть формы или в меню «Ещё», название может звучать как «Движения документа» или «Показать проводки и движения».
Если документ не проведён, движений у него нет. Эта команда покажет пустой список — это нормально.
Если сумма в отчёте не сходится с ожидаемой, начните с движений конкретного документа. Они видны за секунды, а поиск причины по оборотам занимает куда дольше.
Провести, записать, провести и закрыть
В форме документа обычно три кнопки, и работают они по-разному.
- ✅ Провести — записывает и проводит, форма остаётся открытой. Удобно, когда нужно сразу посмотреть движения.
- 💾 Записать — сохраняет документ без движений. Подходит для черновика и для случая, когда данных ещё не хватает.
- 🚪 Провести и закрыть — то же проведение, затем закрытие формы и возврат в журнал.
Запись без проведения нужна не только для черновиков. Документ можно подготовить заранее, например поступление, которое ещё не пришло, а провести в день фактического получения. До этого момента остатки остаются прежними.
Ещё одно отличие: при записи контроль ограничивается минимумом. Программа проверит, что документ можно сохранить, но не будет считать остатки и проверять проводки. Ошибки «не хватает товара» вы увидите только при проведении.
Режимы проведения в конфигурациях
В некоторых типовых решениях есть оперативное проведение: документ, созданный сегодняшней датой, проводится с проверкой остатков на текущий момент. Для документов в прошлых периодах работает неоперативное проведение, и программа пересчитывает цепочку после изменённой даты. Это увеличивает время проведения, и именно поэтому правка старых документов бывает долгой. Подробности зависят от конфигурации: в одних режим включается настройками учёта, в других определяется автоматически.
Что проверяется до проведения
Контроль делится на несколько уровней.
Заполнение. Обязательные поля — организация, контрагент, договор, склад — проверяются первыми. Незаполненное обязательное поле подсвечивается красным, и документ не проводится.
Остатки. Для документов списания и реализации программа сверяет количество с остатком на складе на дату документа. В конфигурациях с включённым запретом отрицательных остатков документ не пройдёт, если товара недостаточно.
Периоды. Если в базе установлена дата запрета изменения данных, документ с более ранней датой не получится ни провести, ни перепровести, ни отменить. Это защита закрытых периодов.
Права пользователя. У пользователя может быть право записывать документ, но не проводить его. Тогда кнопка проведения вернёт ошибку доступа.
Не меняйте дату проведённого документа на более ранний период без согласования — движения переедут вместе с датой, и закрытый отчёт изменится.
Как отличить проведённый документ в журнале
В списке документов у каждой строки есть пиктограмма состояния. Проведённый документ отмечен значком с зелёной галочкой, непроведённый — обычным значком документа без неё, а помеченный на удаление — значком с крестом.
| Состояние | Движения | Влияет на учёт | Как выглядит в списке |
|---|---|---|---|
| Проведён | Есть | Да | Значок с галочкой |
| Записан, не проведён | Нет | Нет | Обычный значок |
| Помечен на удаление | Нет, если был непроведён | Нет | Значок с крестом |
Пометка на удаление не означает удаление. Помеченный документ остаётся в базе до процедуры «Удаление помеченных объектов». Если он был проведён, пометка сама по себе движения не отменяет — это отдельная история, о ней ниже.
В журнале можно отобрать документы по состоянию: отбор по полю «Проведён» оставит только нужные строки. Это самый быстрый способ найти «забытые» непроведённые документы за период.
Отмена проведения и исправление
Отмена проведения удаляет все движения документа, но сам документ остаётся. Команда находится в меню «Ещё» формы документа и в аналогичном меню списка, где можно отменить проведение сразу у выделенных строк.
После отмены с документом можно работать: исправить сумму, поменять склад, сменить контрагента, а затем провести снова.
Порядок исправления ошибки в проведённом документе:
- Проверьте, не закрыт ли период для изменений.
- Отмените проведение, если нужно править суммы или состав.
- Внесите изменения.
- Проведите документ заново и откройте движения: убедитесь, что проводки соответствуют ожиданиям.
Если документ уже попал в регламентированную отчётность или период закрыт, правка задним числом чревата расхождениями. В таком случае вносят изменения текущим периодом корректирующим документом, а не переписывают историю.
Помеченный на удаление и проведённый
Типовая ловушка: пользователь помечает документ на удаление, считая, что этим убрал его из учёта. Но если документ был проведён, движения остаются. Отчёты продолжают его учитывать, пока не отменено проведение. В конфигурациях при пометке проведённого документа обычно срабатывает отмена проведения, однако рассчитывать на это не стоит: проверьте статус в журнале.
Типичные ошибки проведения
Когда проведение не проходит, программа выдаёт сообщение с причиной. Главные случаи.
- ⛔ Не заполнено обязательное поле. Решение: заполнить поле, указанное в сообщении.
- ⛔ Не хватает товара на складе. Проверьте дату документа, партию и склад. Часто виноват непроведённый приход, который стоит позже по времени.
- ⛔ Нет договора или счёта учёта. Заполните договор контрагента, проверьте счета в справочнике номенклатуры или в настройках.
- ⛔ Период закрыт. Попросите администратора изменить дату запрета, если исправление согласовано.
- ⛔ Нет прав. Нужна роль, разрешающая проведение документов данного вида.
Что внутри: обработка проведения в модуле документа
Для разработчика и внимательного администратора полезно знать устройство. У каждого вида документа в конфигурации есть модуль объекта с процедурой обработки проведения. Именно в ней описано, какие движения создавать.
Упрощённо процедура делает три вещи:
- Читает реквизиты шапки и строки табличной части.
- Для каждой строки добавляет запись в набор движений нужного регистра:
Движения.ИмяРегистра.Добавить(). - Заполняет поля записи (период, номенклатура, склад, количество, сумма) и записывает набор.
Пока записи не добавлены и набор не записан, регистр не меняется. Если в процессе возникла ошибка или сработал Отказ = Истина, транзакция откатывается, и пользователь видит сообщение, а данные остаются прежними.
Отсюда практический вывод. Если после проведения «не появились» проводки, причина обычно не в самой кнопке, а в условиях внутри обработки: не включена нужная настройка учёта, не заполнен признак в номенклатуре, документ не подходит под условие формирования. Проверяйте настройки учётной политики и карточки справочников, а не нажимайте «Провести» повторно в надежде на другой результат.
Расширения конфигурации и доработки могут добавлять собственные движения и проверки. Если в вашей базе доработанные документы, текст сообщения об ошибке может отличаться от типового, и разбираться придётся со специалистом, который вносил доработку.
Скорость и производительность проведения
Проведение читает и пишет данные в базу, поэтому его время зависит от размера документа и объёма регистров. Документ из трёх строк проводится мгновенно, а реализация на несколько тысяч позиций может занять заметное время.
Что замедляет проведение:
- 📦 Большая табличная часть: время растёт с числом строк.
- 🔗 Длинные цепочки пересчёта партионного учёта после изменения старых документов.
- 🔒 Блокировки: другой пользователь проводит документы по тому же товару, и приходится ждать.
- 🗄️ Нагрузка на сервер в часы пиковой работы.
В клиент-серверном варианте баз проводка идёт в транзакции, и пока одна транзакция не завершилась, другая, затрагивающая те же данные, ждёт снятия блокировки. Если проведение «висит» долго, посмотрите в консоли администрирования, кто держит блокировку, и дождитесь завершения чужой операции, а не обрывайте её. Обрыв сеанса чужого пользователя — крайняя мера, и делать её нужно с предупреждением человека.
Групповое перепроведение
Когда нужно заново провести много документов, например после правки настроек учётной политики, пользуются обработкой группового перепроведения. Найдите её по названию в командном интерфейсе: в типовых конфигурациях она есть. Перед запуском задайте период и виды документов, а саму операцию запускайте вне рабочего времени. Она нагружает базу и может надолго занять документы, которые в это время редактируют пользователи.