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