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