При работе в 1С:Бухгалтерия 3.0 многие пользователи сталкиваются с особенностью работы стандартного алгоритма: когда вы создаете документ Поступление (акты, накладные, УПД) и вводите дату входящего первичного документа, программа автоматически переносит её в поле Дата самого документа в системе. Часто это вызывает недоумение, так как бизнес-логика пользователя требует, чтобы дата регистрации документа в системе оставалась текущей (датой оформления), а дата входящего документа лишь фиксировала факт отгрузки от поставщика.
Давайте разберем, почему так происходит, какие риски это несет и как можно настроить систему под ваши нужды.
Прежде всего, важно понимать, что разработчики 1С заложили это поведение не как ошибку, а как защиту от ошибок учета. Рассмотрим основные причины:
Если вы столкнулись с необходимостью сохранять текущую дату в поле документа, но при этом указывать реальную дату от поставщика, рассмотрим безопасные варианты действий:
Способ 1: Перевыбор даты после заполнения.
Самый простой и безопасный способ, не требующий вмешательства в конфигурацию:
Поступление.Дата входящего документа. Программа автоматически изменит Дату документа на дату входящего.Дату документа обратно на текущую или нужную вам.Этот метод позволяет избежать конфликтов при обновлении типовой конфигурации, однако требует дисциплины от пользователя, чтобы не допустить ошибок.
Если специфика вашего производства требует жесткого разделения дат, и вы готовы нести ответственность за возможные нестыковки в налоговой отчетности, вы можете изменить алгоритм системы. Использование Расширений — единственный корректный способ сделать это без снятия конфигурации с поддержки.
Разберем, как это реализовать программисту:
Логика изменения даты прописана в обработчике события ПриИзменении поля Дата входящего документа. Чтобы отменить эту «автоматику», нам нужно создать Расширение, в котором перехватить управление этим событием.
Примените аннотацию &Вместо для процедуры обработчика события изменения входящего документа. Ваша задача — оставить тело процедуры пустым или реализовать логику, которая не затрагивает основной реквизит Дата документа.
Пример логики для реализации в модуле объекта расширения:
&Вместо("ДатаВходящегоДокументаПриИзменении")
Процедура Расш_ДатаВходящегоДокументаПриИзменении(Элемент)
// Оставляя процедуру пустой, мы блокируем стандартный код 1С,
// который принудительно меняет дату документа.
// Теперь дата документа останется неизменной.
КонецПроцедуры
Использование Расширения с методом &Вместо позволяет полностью отключить стандартную проверку. Это дает вам полную свободу действий: дата документа остается той, которую вы установили изначально, а дата входящего документа будет служить только для целей бухгалтерского учета и отчетности.
Прежде чем приступать к доработкам, проанализируйте следующие моменты:
ФИФО, неверно указанные даты могут привести к некорректному списанию себестоимости. Убедитесь, что ваши складские операции отражаются последовательно.Подводя итог: если вам мешает автоматическая смена дат, используйте Расширение для точечной модификации кода. Это позволит избежать лишних кликов и ошибок пользователей, обеспечив при этом комфортную работу в программе 1С:Бухгалтерия.