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

Администрирование · 12 мин

Как записать документ в 1С без перепроведения

Как записать документ в 1С без перепроведения: интерактивные способы, метод Записать() в коде, режимы записи, риски и проверка результата.

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

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

Ниже разобраны интерактивные способы для пользователя, программные методы для разработчика, типичные риски и способы проверить результат.

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

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

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

Интерактивная запись без проведения

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

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

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

Порядок действий в форме документа
  1. 1
    Откройте нужный документ из журнала
  2. 2
    Внесите изменения в реквизиты или табличную часть
  3. 3
    Нажмите «Записать», а не «Провести»
  4. 4
    Если конфигурация требует отмены проведения — оцените, допустимо ли это, и при согласии подтвердите
  5. 5
    Проверьте состояние документа в журнале: пометка проведения и движения

Программная запись без проведения

В коде на встроенном языке используется метод Записать() объекта документа. Без параметров он выполняет именно запись, без проведения. Для явного управления режимом применяется параметр РежимЗаписиДокумента.

ДокОбъект = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(НомерДок, ДатаДок).ПолучитьОбъект();

ДокОбъект.Комментарий = "Исправлено без перепроведения";

ДокОбъект.Записать(РежимЗаписиДокумента.Запись);

Доступные режимы: РежимЗаписиДокумента.Запись (только сохранение), РежимЗаписиДокумента.Проведение (запись с проведением), РежимЗаписиДокумента.ОтменаПроведения (запись с отменой проведения и очисткой движений). Если вызвать Записать() без параметра у проведённого документа, объект запишется, а движения останутся прежними.

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

bsl
ДокОбъект.Записать(РежимЗаписиДокумента.Запись); // запись без перепроведения

Групповое изменение реквизитов без перепроведения

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

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

Для нестандартных конфигураций без БСП массовую правку выполняют произвольной обработкой с циклом по выборке документов и вызовом Записать(РежимЗаписиДокумента.Запись) в транзакции. Транзакция позволит откатить всю пачку при ошибке на середине.

Какие изменения безопасны, а какие требуют перепроведения

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

Тип измененияМожно ли без перепроведенияКомментарий
Комментарий, ответственный, подразделение-оформительДа, обычно безопасноНе участвуют в движениях
Номер входящего документа, дата входящегоОбычно даПроверьте, не выводится ли в регистры
Суммы, количество, цены, ставки НДСНетДвижения устареют, отчёты разойдутся
Дата документаНетМеняет период движений и последовательность
Контрагент, договор, склад, организацияНетКлючевые измерения учёта

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

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

Как выбрать действие

Меняется комментарий, ответственный или иной неучётный реквизитЗаписывайте без перепроведения — движения останутся корректными
Меняются суммы, количество, дата, контрагент, складПерепроводите документ — иначе регистры разойдутся с первичкой
Документ в закрытом периоде и перепроведение запрещеноНе меняйте учётные данные; правьте только неучётные реквизиты или оформляйте корректировку текущей датой
Нужно исправить сотни документовИспользуйте групповое изменение реквизитов с предварительной проверкой на копии базы

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

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

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

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

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

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

Состояние документа в журнале
Норма

Пиктограмма проведения сохранилась, изменения видны в форме

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

Проведение снялось неожиданно или изменения не сохранились

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

Набор и суммы движений не изменились после записи

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

Движения обнулились или появились новые строки

Сверка с отчётами
Норма

Отчёты по регистрам соответствуют данным документа

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

Отчёт показывает старые суммы при новых данных документа

Типичные ошибки и ограничения

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

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

Третья ошибка — попытка записать документ в закрытом периоде при установленной дате запрета изменения данных. Запись будет отклонена независимо от того, с проведением она или без. Понадобится либо временное изменение даты запрета администратором, либо отказ от правки.

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

Ограничения и границы самостоятельной работы

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

Не пытайтесь править данные напрямую в таблицах СУБД в обход платформы — это нарушает целостность ссылок и лицензионные требования, а восстановление после такой правки может оказаться невозможным. Все изменения выполняйте только средствами платформы: формами, обработками, кодом.

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

Итог

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

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

Часто задаваемые вопросы

Что происходит с движениями, если записать проведённый документ без проведения?

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

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

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

Почему кнопка «Записать» неактивна или документ не записывается?

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

Сработает ли обмен данными при записи без проведения?

Да. Регистрация изменений в планах обмена происходит при записи объекта, а не при проведении. Документ, записанный без перепроведения, будет зарегистрирован к выгрузке и уйдёт в связанные базы при ближайшей синхронизации — учитывайте это при правках в распределённых системах.

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

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

Отличается ли механика в управляемых и обычных формах?

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