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