Задание «Планирование поставок товара»
Ситуация
Компания «Планета» занимается оптовой торговлей эксклюзивными товарами. Из-за банкротства своего основного поставщика компания попала в сложную ситуацию: есть риск, что она не сможет выполнить некоторые заключённые ранее контракты. Все необходимые товары уже заказаны у других поставщиков, но их поступления придётся ждать некоторое время.
На текущий момент ситуация такова:
- На складе компании имеется запас товаров.
- Имеются контракты с покупателями на поставку им товаров. В каждом контракте прописан перечень товаров, которые должны быть поставлены, объём поставки каждого товара, срок поставки. А также штрафные санкции за невыполнение контракта — сумма пени, которую придётся выплатить за каждый день просрочки. Частичное выполнение контракта не допускается, то есть весь товар по контракту должен быть поставлен единовременно.
- Имеются заказы поставщикам. Для каждого заказа известен перечень товаров (и для каждого товара — количество), а также ожидаемая дата поступления товаров на склад компании «Планета».
Ваша задача: помочь коммерческому директору компании «Планета» определить, сможет ли компания выполнить все контракты с покупателями в срок, а если не сможет — то найти вариант выполнения контрактов, при котором компания заплатит наименьшую пеню.
Постановка задачи
Необходимо, начав с пустой конфигурации 1С:Предприятия 8, разработать все необходимые объекты — документы, справочники и регистры для регистрации текущего складского запаса, контрактов с покупателями и заказов поставщикам.
Также должен быть разработан отчёт «Анализ контрактов». В настройках отчёта необходимо выбирать дату. Отчёт должен проводить анализ ситуации с контрактами на указанную дату. Результатом отчёта должна быть выходная форма, содержащая перечень контрактов, для каждого контракта — перечень товаров, которые должны быть поставлены покупателю по этому контракту. В отчёте должен быть показан оптимальный вариант выполнения контрактов (то есть вариант, при котором получается либо выполнение всех контрактов в срок, либо минимальная сумма пени).
- Для каждого товара в этом перечне необходимо указать количество и источник, из которого будет взят товар для отправки (либо «складские остатки», либо ссылка на заказ поставщику, по которому поступит этот товар).
- Для контракта в целом должна быть указана дата возможной поставки покупателю (с учётом сроков поступления товара на склад компании) и сумма пени, которую придётся выплатить.
- Если контракт не может быть выполнен даже с учётом всех имеющихся заказов поставщикам, то для него вместо даты возможной поставки следует указать прочерк, а для расчёта пени в этом случае следует использовать количество дней от даты поставки по контракту до даты отчёта.
- В нижней части отчёта следует вывести итоговое решение: либо «Все контракты могут быть выполнены в срок», либо «Минимальная пеня: …».
Кроме разработки требуемых объектов и процедур, необходимо внести в информационную базу данные (заполнить справочники, ввести и провести документы), которые позволят жюри проверить работу вашего отчёта. Если вы предусматриваете возможность проверки нескольких ситуаций, опишите ситуации в прилагаемом файле «Описание.txt». Разумеется, для более полной проверки жюри будет также изменять введённые вами данные.
Пример
Для пояснения задания рассмотрим следующий пример. Пусть имеются два контракта:
Контракт 1 | Контракт 2 | |||
Дата поставки | 20.11.10 | Дата поставки | 30.11.10 | |
Пеня за день просрочки, руб | Пеня за день просрочки, руб | |||
Товар | Кол-во | Товар | Кол-во | |
Изумрудное колье | Рубиновый трукандаж | |||
Сапфировая диадема | Сапфировая диадема |
Складские запасы:
Товар | Кол-во |
Изумрудное колье | |
Сапфировая диадема |
И заказы поставщикам:
Заказ поставщику 1 | Заказ поставщику 2 | |||
Дата поступления | 15.11.10 | Дата поступления | ??? | |
Товар | Кол-во | Товар | Кол-во | |
Изумрудное колье | Изумрудное колье | |||
Сапфировая диадема | Сапфировая диадема | |||
Рубиновый трукандаж |
Рассмотрим три ситуации:
1. Для заказа поставщику 2 дата поступления 27.11.10. В этом случае могут быть выполнены оба контракта.
2. Для заказа поставщику 2 дата поступления 02.12.10. В этом случае выполнить все контракты без задержки не получится. Оптимальный вариант — выполнить в срок контракт 1, а контракт 2 задержать на 2 дня до поступления товара по заказу поставщику 2. Пеня: 2*2500 = 5000 руб.
3. Для заказа поставщику 2 дата поступления 30.12.10. Также не получится выполнить все контракты в срок, но оптимальный вариант — выполнить в срок контракт 2, а задержать выполнение контракта 1. Пеня: 40*1000 = 40?000 руб.
Оценка задания
За выполненное задание участник получает баллы в зависимости от реализованных пунктов (см. ниже), степени завершённости и корректности реализации каждого пункта. Указано максимальное количество баллов, в случае наличия замечаний по реализации количество баллов может быть уменьшено. За полную реализацию решения участник может получить до 100 баллов.
1. Средства для ввода данных (документы, справочники): 5 баллов.
2. Отчёт «Анализ контрактов», позволяет получать итоговое решение — можно выполнить все контракты без уплаты пени, или нет: дополнительно 25 баллов.
3. Отчёт «Анализ контрактов» находит оптимальное решение и позволяет получать детальную информацию по каждому контракту и товару, как описано в задании: дополнительно 55 баллов.
4. Наличие в базе введённых данных для проверки работы отчёта: дополнительно 10 баллов.
5. Стиль программирования и удобство интерфейса: дополнительно 5 баллов.
Требования к оформлению результата
Участник олимпиады должен создать каталог со своей фамилией.
В этом каталоге необходимо создать подкаталог «Результат».
Завершив работу над заданием, необходимо сохранить в каталог «Результат»:
- Выгрузку (dt) базы. Одну! Если их там окажется несколько, то жюри не будет гадать, какой из вариантов Вы считаете окончательным, и тем более не будет проверять все варианты. Для проверки будет выбрана произвольная выгрузка.
- Текстовый файл «Описание.txt» следующего формата:
ФИО: Ваши ФИО
Реализованные пункты задания:
1. Средства для ввода данных: да/нет
2. Отчёт «Анализ контрактов», позволяет получать итоговое решение: да/нет
3. Отчёт «Анализ контрактов» позволяет получать детальную информацию: да/нет
Далее, если необходимо, можете включить произвольные пояснения, которые помогут жюри оценить Ваше решение. Например, Вы можете описать несколько вариантов данных .