Ещё одна история о том, как делать не надо или как быстро временно решить свои проблемы.
Как известно, последняя торговля 11.1 не позволяет закрыть месяц, если на складах имеются отрицательные остатки, а значит, не даёт рассчитать себестоимость и узнать валовую прибыль.
О том, как обойти эту проблему, и пойдёт речь.
Идея заключается в том, что если нет времени, а чаще желания и возможности устранять ошибки складского учёта, особенно давно минувших месяцев, то логично просто оприходовать недостающие товары до нуля, а если нужно что бы сегодняшний остаток при этом не изменился списать это оприходование началом следующего месяца. Таким образом, имеем закрытие месяца и текущие остатки до дальнейших разбирательств, которых, как показывает практика, может и не случиться.
Минусом данного метода является искажение себестоимости, а равно и прибыли, в рамках оприходованных позиций, но до настоящего исправления ошибок правильных данных там так и так не будет.
Итак, задача:
Автоматически оприходовать отрицательные остатки перед закрытием месяца и при желании списать их обратно после закрытия.
Решение:
Открываем основную форму обработки Операции закрытия месяца, размещаем на форме надпись-гиперссылку в группе Действие исправление отрицательных остатков, которой (группе) ставим Группировка: «Горизонтальная», таким образом, наша команда будет появляться только при обнаружении программой отрицательных остатков.
Событие Нажатие создаём на клиенте и на сервере, имя процедуры может отличаться от примера – это не важно, но содержимое должно быть примерно как на рисунке (текст полностью видно на картинке, а также прикреплен в приложении к статье):
Если используется учёт остатков в разрезе ГТД то в запросе добавляем строки:
А при заполнении строки оприходования:
При этом списание будет подбирать ГТД автоматически без гарантии, что спишутся те же номера, поэтому либо отказываемся от списания остатков следующим месяцем и учитываем, что оприходование меняет текущий остаток, либо имеем в виду, что остатки в разрезе ГТД могут измениться, побочным эффектом может стать зачёт пересорта по ГТД.
Или допиливаем списание самостоятельно.
Всё. Сохраняем, проверяем.
В обработке регламента по закрытию месяца, если программа находит отрицательные остатки, то появляется ссылка на действие «Исправить», а вместе с ней и «Оприходовать», нажимаем, отвечаем на вопрос, ждём сообщения о результатах выполнения, проверяем созданные складские акты, продолжаем закрытие месяца.
Пример приведен из рабочей конфигурации, но может не учитывать настройки вашей базы данных, например, для списания обратно в минус нужно разрешить отрицательные остатки по складам, не учитывается возможный учёт по подразделениям и т.д. Поэтому, прошу расценивать этот материал как шаблон для запила собственного решения.
Подобное решение может быть оформлено как внешняя обработка, тогда его можно применять на закрытой типовой конфигурации.
Реализовано и проверено на версии 11.1.4