1с движения документа отредактированы вручную и не могут быть автоматически актуализированы
26.02.2020 оформлена корректировка поступления услуг с видом операции Исправление в первичных документах PDF В марте 2020 скорректировали проводки документа вручную, установив флажок Ручная корректировка в проводках документа. При закрытии марта программа не потребовала восстановить последовательность документов за апрель 2019. Почему при ручной корректировке проводок не нарушается граница последовательности?
Совершенно верно! При ручной корректировке проводок документа нарушения последовательности не происходит. И этому есть объяснение.
При проведении документа происходит автоматическое включение его в последовательность Документы организации и определение статуса проведенного документа. В зависимости от выставленного программой значения Статуса проведения документа граница последовательности будет считаться нарушенной или нет.
Статус может быть четырех видов:
- Проведен в последовательности — при оперативном проведении документов, входящих в перечень документов последовательности; PDF
- Перепроведение пропущено — при ручной корректировке движений документа;
- Проведен с нарушениями в последовательности — при проведении «задним числом»;
- Исключен из последовательности — документ не входит в перечень документов последовательности.
Это значит, что при закрытии месяца программа не покажет, что последовательность нарушена и не потребует перепроведения документов с момента внесения корректировок.
Можно ли корректировать документы старых периодов, выставляя флажок Ручная корректировка , без последствий нарушений последовательности документов с этого периода?
Да, сейчас это можно. При ручной корректировке проводок документа статус Проведен с нарушением последовательности не выставляется. Восстанавливать последовательность в этом случае не придется.
Ручная правка проводок в прошлых периодах не приведет к нарушению последовательности, если:
- Перед выставлением флажка Ручная корректировка и изменением проводок не нажаты кнопки Записать или Провести . Нажатие этих кнопок до выставления флажка автоматически выставит статус проведения документа в значение Проведен с нарушением последовательности и зафиксирует нарушение границы последовательности.
- Конфигурация базы полностью типовая, не доработанная. В противном случае возможны случаи, когда при открытии документа происходит какой-то внутренний перерасчет и заполнение данных с автоматической записью документа. Тогда даже без нажатия кнопки Записать граница последовательности нарушится.
Корректировка прошлых периодов может влиять на показатели сданной отчетности, поэтому выполняйте предварительно изменения на копии базы. Если все нормально — спокойно повторяете действия в рабочей базе.
БухЭксперт8 обращает внимание, что если проводки меняются за закрытый период, программа не даст провести документ корректировки. Несмотря на то, что граница последовательности при ручной корректировке проводок не нарушается, для записи изменений придется открыть период в разделе Администрирование — Настройки пользователей и прав — Даты запрета изменений.
См. также:
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Проверка изменения данных при записи объектов
В некоторых случаях при записи объектов возникает необходимость проверки, какие данные объекта были изменены и какие были значения до изменения.
Допустим, при записи документа, может возникнуть потребность проверить, не изменилась ли дата документа, и если дата изменилась, то откорректировать движения документа, которые не обновляются при его проведении (например, вводятся вручную).
На первый взгляд видится возможность запомнить старое состояние реквизита в переменной модуля объекта, анализировать его при записи документа, и соответственно при записи запоминать новое значение для анализа в процессе следующей записи. Однако этот метод является неправильным. Дело в том, что запись объекта происходит в транзакции. Соответственно, тот факт, что данные записаны, еще не означает, что они действительно будут изменены в базе данных. Разработчик прикладного решения не имеет возможности обработать успешное или неуспешное завершение транзакции. Соответственно нет возможности и обеспечить хранение в модуле значения реквизита адекватно соответствующего тому значению, которое хранится в базе данных.
Правильным способом реализации такой проверки является считывание значений тех реквизитов, изменения которых нужно анализировать, непосредственно из базы данных.
Например, считывание может быть выполнено обращением через ссылку:
Однако следует учитывать, что при обращении к ссылке считывается весь объект целиком. То, что он ранее считывался и находится в кеше, здесь не поможет, так как при работе транзакции используется отдельный кеш. Соответственно, затраты на получение одного или двух реквизитов могут оказаться неоправданно большими. Поэтому можно рекомендовать для считывания отдельных реквизитов использовать запросы. Например:
В этом случае из базы данных будет считан ровно один реквизит, который требуется анализировать.
Заметим, что таким способом можно, например, определить, что объект помечается на удаление. Для этого достаточно проверить, изменение поля ПометкаУдаления .
Однако если нам нужно обработать изменение реквизита после записи документа, например, в обработчике ПриЗаписи , то, разумеется, считывание данных из базы данных не подходит, так как информация в базе данных уже изменена. В этом случае нужно само считывание выполнять в обработчике ПередЗаписью и запоминать считанные значения в переменных модуля. А уже анализ выполнять в обработчике ПриЗаписи .
Читайте также: