Байланысты: Сборник лабораторных работ для студентов учебных заведений (1)
Предположим, что некий клиент решил купить 50 пакетов молока. В первую очередь, нужно проверить, а есть ли у нас 50 пакетов на складе? Именно такую проверку и нужно добавить. В случае нехватки товаров нужно вывести пользователю сообщение и отметить проведение.
Теперь будем перебирать партии.
Пример Предположим, что в документе указано 50 пакетов молока. На складе в одной партии – 20 пакетов, а в другой – 40. Необходимо сначала списать 20 из первой партии, а затем – 30 из второй. Добавим переменную «ОсталосьСписать» – она будет своеобразным счетчиком, который мы будем вести до нуля.
Теперь проверяем, сколько осталось товаров в конкретной партии и списывать это количество из переменной «ОсталосьСписать», после чего будем переходить к следующей партии.
Списать из конкретной партии можно не больше, чем в ней есть, или меньше. Воспользуемся функцией «Мин», которая выбирает наименьшее из заданных в нее чисел.
Теперь в переменной «Списать» хранится то значение, которое мы можем легко списать и при этом не получить отрицательных остатков. Можно делать движение в регистр накопления. Скопируем ранее закомментированный текст, добавим в цикл и раскомментируем.
Изменим вид движения на «Расход», поскольку данный документ должен делать движения со знаком «-» (минус), то есть уменьшать значение в регистре. Также изменим «Товар», «Срок годности» и «Количество».
Далее нужно уменьшить количество товаров, которые еще нужно списать, и добавить дополнительное условие на переменную «ОсталосьСписать».
Установим маркер формирования движений в значение «Истина».
Целиком получившаяся процедура должна выглядеть следующим образом:
Проверим работоспособность разработанной информационной системы.
Откроем отчет по остаткам.
Всего имеется 35 единиц молока «Буренка». Попробуем продать 25 единиц молока.
Для этого добавим документ «Продажа товаров». Полученный документ необходимо провести.
Если появились проблемы с проведением документа «Продажа товаров», тогда вернитесь к списку всех документов и отмените их проведение. Для этого выделите документ в списке, нажмите на него правой кнопкой мыши и выберите пункт меню «Отменить проведение». Сделайте это для всех документов. Затем проведите документы заново.
Вернемся к отчету и сформируем его.
Система списала 20 единиц молока из партии со сроком годности до 17 сентября, и еще 5 – из партии со сроком годности до 19 сентября.
Поставленная задача решена.