Добрый день, Коллеги!
Причина разработки
Необходимость в течение дня (и прошлом периоде) проводить документы реализации и при этом, чтобы работал контроль дебиторской задолженности. Компания работает по 100% предоплате. Естественно, такое проведение документа является – неоперативным и типовые механизмы контроля не работают. Взаиморасчеты ведутся по договору в целом. Все договора имеют признак контроля дебиторской задолженности и кредит ноль.
ПРИМЕР СИТУАЦИИ
Контрагент оплачивает по заказу 100% предоплату, забирает двумя реализациями. Продажа №1 и Продажа №2. В тот момент всё хорошо, система оперативно корректно провела документы. Но после оператор меняет позицию и перепроводит документ Продажа №1 неоперативно, при этом сумма документа меняется и система без дополнительного контроля успешно даст это сделать, потому, что на тот момент времени система видит "полную" предоплату по заказу.
Кому подойдёт
Разрабатывалось для конфигурации Комплексная автоматизация 1.1, думаю, подойдёт на Управление Производственным Предприятием 1.3 и Управление торговлей 10.3.
В договоре с покупателями установлен признак "взаиморасчеты ведутся по договору в целом".
Описание алгоритма
На дату документа, получаем остатки по взаиморасчетам на договор контрагента. Дальше, с даты документа по конец текущего дня получаем поступление денег по договору контрагента. Затем, с даты документа по конец текущего дня получаем продажи по договору контрагента (кроме текущего документа продажи). А затем простая формула, предоплату и поступление суммируем и вычитаем продажи. Оставшееся сумма является «чистой» предоплатой, её и сравниваем с суммой неоперативно проводимого документа.
Код
Применение
Выше приведенный код, на самом деле процедура объекта метаданных - подписки на события. По этому именно туда я её и применил, насколько помню где-то там слышал через пятое колено, что подписки выполняются последовательно, как они расположены в дереве метаданных, всегда самые важные опускаю вниз, если не прав поправьте J
Альтернативные мысли
После я уже подумал, что можно ведь применить новую методику проведения. Т.е. записать документ со всеми проводками, а после проверить на конец дня взаиморасчеты, всё ли нормально, если не нормально отменить проведение. Но переделывать пока не стал.
Резюме
Стоит ли это использовать? Я, конечно бы, лучше рекомендовал запретить неоперативное проведение или доверять такой способ проведения ответственным операторам (которые и являлись бы тем самым контролем в таких случаях), в этом предприятии таких лиц нет и поэтому данное решение, на мой взгляд, оптимально и имеет право на жизнь. Данное решение используется, и я буду корректировать публикацию по мере изменений.
Удачного кодинга!