Ситуация следующая (это чисто пример который отражает проблему):
13.09 мы переместили ручку с "Основного" склада на склад "Сидоров".
14.09 мы отдельно разработанным документом списали ту самую ручку со склада Сидоров.
Пока все хорошо.
15.09 какой-то нехороший человек отменил перемещение от 13.09.
В итоге при перепроведении документа от 14.09 выскакивает ошибка, что на складе Сидоров не хватает ручки в количестве 1.
Вопрос: есть ли в типовых конфигурациях решение этой проблемы, или как лучше ее решить?
(2) гунявое решение. 5 секунд назад в сегодняшнем дне это тоже "заднее число" (но такое послабление можно сделать, но у меня - нет). По всем операциям, которые касаются остатков - проведение документов только в текущем времени. неправильное перемещение? - сторнируй его операцией сегодняшней датой или сделай сейчас обратное перемещение.
(6)Посмотрите два файла
1 Общий модуль "ПроведениеСервер", в нем посмотрите процедуру "ВыполнитьКонтрольРезультатовПроведения"
2 Модуль документа ПТиУ, в нем посмотрите процедуру проведения где вызывается "ПроведениеСервер.ВыполнитьКонтрольРезультатовПроведения(ЭтотОбъект, Отказ);"
3 Еще нужно создать константу "КонтролироватьТоварыОрганизацийПриОтменеПриходов"
и роль "ПропускКонтроляТоваровОрганизацийПриОтменеПриходов"
1. Запретил редактирование проведенных документов
2. При проведении документа в обработке проведения проверяю остатки по "складу источнику" на МоментВремени()
3. При отмене проведения в обработке удаления проведения проверяю остатки по "складу приемнику" на ТекущуюДату()
(6)Посмотрите два файла
1 Общий модуль "ПроведениеСервер", в нем посмотрите процедуру "ВыполнитьКонтрольРезультатовПроведения"
2 Модуль документа ПТиУ, в нем посмотрите процедуру проведения где вызывается "ПроведениеСервер.ВыполнитьКонтрольРезультатовПроведения(ЭтотОбъект, Отказ);"
3 Еще нужно создать константу "КонтролироватьТоварыОрганизацийПриОтменеПриходов"
и роль "ПропускКонтроляТоваровОрганизацийПриОтменеПриходов"
Это критично даже в пределах текущего дня, запрет на изменение есть, если документ был создан позже 3-х дней, это минимизировало такие ошибки, но не исключило. Хочется сделать и забыть.
(8) Изначально я хотел решить это запретом на изменение документов, но на практике получается что документ редактируется 10 раз на дню, то комментарий не тот написали то еще что-то
(23) У меня тут 2 документа зависят друг от друга. Если 1 документом в 12:12 переместили, вторым документом в 12:13 списали, то что помешает пользователям отменить проведение 1 документа и образовать тем самым -1 на складе при Вашем варианте?
(25) Сейчас уже не на месте, показать не могу, могу сказать что контроль остатков там отрицательных остатков включен и работает, забыл ещё сказать что эти 2 документа самописные (писал не я)
(25) Ещё дополню что обычный контроль отрицательных остатков на этих документах тоже работает. Но судя по статье в БУ нет проверки остатков при отмене проведения.
(20) Поработайте на живом складе с живым товародвижением. а не с его посмертным учетным представлением. На складском учете заднего числа нет в принципе. Все заднее число - это когда вы двигаете и исправляете некие оторванные от реальности "воздушные" данные. И вот как тут раз подкрадывается маркировка и прочие прелести реальности.
(18) Даже если установить запрет на проведение задним числом, это ошибка будет присутствовать в текущем дне, или просто возьмут и отменят проведения, пометят на удаление, а этого я запретить им не могу (не потому что считаю что это технически невозможно). А за ссылку спасибо.
(2) гунявое решение. 5 секунд назад в сегодняшнем дне это тоже "заднее число" (но такое послабление можно сделать, но у меня - нет). По всем операциям, которые касаются остатков - проведение документов только в текущем времени. неправильное перемещение? - сторнируй его операцией сегодняшней датой или сделай сейчас обратное перемещение.
1. Запретил редактирование проведенных документов
2. При проведении документа в обработке проведения проверяю остатки по "складу источнику" на МоментВремени()
3. При отмене проведения в обработке удаления проведения проверяю остатки по "складу приемнику" на ТекущуюДату()