Как провести документ будущей датой в 1С:Управление торговлей 10.3?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

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

Выясним причину такого поведения системы, проанализируем риски проведения будущей датой и рассмотрим как программные, так и организационные способы решения этой задачи.

Почему возникает ошибка при проведении будущим числом?

По умолчанию у большинства учетных документов свойство конфигуратора Оперативное проведение установлено в значение Разрешить, а у формы документа свойство ИспользоватьРежимПроведения переведено в режим Автоматически.

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

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

  1. Смещение границы последовательности: проведение документов будущей датой сдвигает точку актуальности партионного учета вперед. Это означает, что проведение любых документов задним числом потребует регулярного перепроведения и восстановления последовательности партий.
  2. Контроль остатков: при неоперативном проведении типовые алгоритмы списания партий могут иначе контролировать складские остатки (в зависимости от настроек учетной политики и роли пользователя), что повышает риск появления отрицательных остатков на складе.
  3. Права доступа: чтобы пользователь мог провести документ неоперативно (включая будущие даты), у его роли должно быть активно право Интерактивное проведение неоперативное.

Способ 1. Программное переключение в неоперативный режим

Рассмотрим вариант, при котором мы добавляем отдельное действие на форму документа «Реализация товаров и услуг». Основная идея заключается в том, чтобы явно указать форме режим проведения НеОперативный, обойдя автоматический контроль оперативности платформы.

Посмотрим на пример кода обработчика кнопки, предложенный в обсуждении:


Процедура ДействияФормыПровестиБудущейДатой(Кнопка)
    
    // Принудительно устанавливаем неоперативный режим для формы
    ЭтаФорма.ИспользоватьРежимПроведения = ИспользованиеРежимаПроведения.НеОперативный;
    
    Если Дата > ТекущаяДата() Тогда
        Попытка
            ЗаписатьВФорме(РежимЗаписиДокумента.Проведение);
        Исключение
            Предупреждение("Не удалось провести документ будущей датой: " + ОписаниеОшибки());
        КонецПопытки;
    Иначе
        // Если дата не будущая, запрашиваем у пользователя желаемую дату проведения
        НоваяДата = ТекущаяДата() + 86400; // следующий день
        Если ВвестиДату(НоваяДата, "Укажите дату документа для проведения") Тогда
            Дата = НоваяДата;
            ЗаписатьВФорме(РежимЗаписиДокумента.Проведение);
        КонецЕсли;
    КонецЕсли;

КонецПроцедуры

Если операторам приходится оформлять большой поток таких накладных, оптимальным решением станет создание внешней обработки. Обработка позволяет отобрать подготовленные за день документы, групповым образом изменить их реквизит Дата на утро следующего дня и выполнить запись с параметром РежимПроведенияДокумента.Неоперативный в цикле.

Способ 2. Использование штатного диалога режима проведения

Если нет желания дорабатывать форму отдельными кнопками и вносить изменения в модуль, разберем штатный механизм конфигурации. В свойствах управляемой или обычной формы документа для свойства ИспользоватьРежимПроведения можно выбрать значение Запрашивать.

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

Способ 3. Переход на ордерную схему учета

Проанализируем методически верный вариант организации оптовых отгрузок, который снимает противоречие между датой выписки документов и фактическим списанием товаров со склада — использование складских ордеров.

В конфигурации «1С:Управление торговлей 10.3» ордерная схема настраивается отдельно для каждого склада (в карточке склада флаг «Использовать ордерную схему»):

  1. Финансовый документ Реализация товаров и услуг оформляется и проводится оператором сегодняшним числом в момент подготовки первичных документов. В финансовом контуре товар списывается, фиксируется долг контрагента.
  2. Фактическое списание товара со склада отражается складским документом Расходный ордер на товары. Кладовщик проводит расходный ордер на следующее утро ровно в момент физической отгрузки продукции водителю.

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

Способ 4. Корректировка даты в печатной форме

Часто проведение будущей датой требуется исключительно для того, чтобы на бланках ТОРГ-12, транспортных накладных или УПД стояла завтрашняя дата приемки груза. Если это единственный повод проводить документ вперед, менять дату самого документа в информационной базе не рекомендуется.

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

← На главную