Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 09:37

Большая самостоятельная работа "Резервирование товаров и планирование активных продаж"

Автор Сергей Федоров, 23 апр 2017, 14:02

0 Пользователей и 1 гость просматривают эту тему.

Сергей Федоров

Необходимо ввести в систему возможность резервировать товары на складах фирмы под конкретные счета, выписанные для покупателей.
Смысл работы механизма резервирования сводится к следующему:
При проведении документа «Счет», товар попадает в резерв под этого клиента.
Далее, на основании документа «Счет» выписывается документ «ПродажаТоваров». Пользователь может оставить все товарные позиции и их количество, унаследованные из счета, а может часть товара удалить из табличной части документа «ПродажаТоваров». Это значит, что клиент забирает зарезервированный товар по частям.
Далее документ «ПродажаТоваров» проводится, товар при этом должен списываться не только с остатков склада, но и с резерва.
Таким образом, когда на основании счета заводится документ «ПродажаТоваров», то в табличную часть должны переходить только те товары, которые на данный момент остаются в резерве.
Кроме того, необходимо предусмотреть ситуацию, когда по каким-то причинам покупатель не будет забирать остаток резерва товаров, сделанный каким-то счетом. Чтобы разблокировать такой товар, в систему необходимо ввести документ «СнятиеРезерваТоваров».
Ну и, естественно, при проведении счетов и  документов «ПродажаТоваров», необходимо контролировать появление отрицательных свободных остатков!
Кроме всего прочего, необходимо создать отчеты, которые бы показывали, что из товаров на какую-то дату находится в резерве, под какие счета; как происходило движение резерва товаров в интервале дат (какими документами товар заводился в резерв, какими списывался).
Создать блок аналитических отчетов, показывающих активность сервис-менеджеров.

Именно в таком виде Вы бы получили задачу на проекте. И дальнейшие действия по структурированию задачи, распределение работ по этапам - были бы на Вашей ответственности.
Но поскольку сейчас у нас все же учебной мероприятие - что бы в последний раз немножко помочь, облегчить работу, - предлагается решить задачу,  придерживаясь описанной ниже этапности работ:


TytovV


Счет и далее продажа - это интересно, а где оплата под этот счет, а вот если резервирование и далее по принятию решения клиентом что он берет в итоге выписывается счета и далее стандартные процедуры - это помоему логичней. А пока резерв в рамках какого-то периода то он предварительно сделал минусы по складу, как период оговоренный прошел товар обратно вернулся на склад, время на раздумывание для клиента ваши правила, и городить огород не нужно. Документ резервирования банальная реализация только действие ограничено временем и обозвать его можно как предварительная отгрузка товара, если все ок, то на основании делается счет-покупателю, далее счет перекрывается оплатой, а потом на основание счета делается стандартная реализация, если условие не выполняется то нет счета клиенту документ ставится на удаление - и далее все снова.


Отправлено с моего iPhone используя Tapatalk

TytovV

Делить резерв - смысл если есть просто возможность создать новый нужный резерв. Это все по принцыпу корзины, набрал 10 товаров но можешь оплатить только 6, зачем 4 резервировать если клиент их не может оплатить. 


Отправлено с моего iPhone используя Tapatalk

Сергей Федоров

 РЕБЯТ, ЗАВИС НА ЭТОМ ПУНКТЕ
Прописать ввод документа «ПродажаТоваров» на основании документа «Счет». Контрагента и склад необходимо брать из шапки. А вот при наследовании реквизитов табличной части необходимо проверять, находится ли этот товар до сих пор в резерве (может, он уже отпущен другой расходной накладной).  И количество, соответственно, брать из остатка данного резерва в регистре «РезервыНоменклатуры». Напоминаем, чтобы документ «ПродажаТоваров» помнил, на основании какого счета он выписан, необходимо добавить в него реквизит шапки типа <ДокументСсылка.Счет>, и при вводе на основании - вписывать в него документ-источник, т.е. сам «Счет».
КАК ПРАВИЛЬНО РЕАЛИЗОВАТЬ ВСЕ

alex0402

Цитата: Сергей Федоров от 25 апр 2017, 09:33КАК ПРАВИЛЬНО РЕАЛИЗОВАТЬ ВСЕ
1) разделить на подвопросы как можно подробнее.
2) все реализовать в ОбработкеЗаполнения.

Цитата: Сергей Федоров от 25 апр 2017, 09:33А вот при наследовании реквизитов табличной части необходимо проверять, находится ли этот товар до сих пор в резерве (может, он уже отпущен другой расходной накладной).  И количество, соответственно, брать из остатка данного резерва в регистре «РезервыНоменклатуры».

запрос к регистрам резерва и в табличную часть заполняем с учетом ограничения по резерву.
Спасибо за Сказать спасибо

Сергей Федоров

Цитата: alex0402 от 25 апр 2017, 10:01
Цитата: Сергей Федоров от 25 апр 2017, 09:33КАК ПРАВИЛЬНО РЕАЛИЗОВАТЬ ВСЕ
1) разделить на подвопросы как можно подробнее.
2) все реализовать в ОбработкеЗаполнения.

Цитата: Сергей Федоров от 25 апр 2017, 09:33А вот при наследовании реквизитов табличной части необходимо проверять, находится ли этот товар до сих пор в резерве (может, он уже отпущен другой расходной накладной).  И количество, соответственно, брать из остатка данного резерва в регистре «РезервыНоменклатуры».

запрос к регистрам резерва и в табличную часть заполняем с учетом ограничения по резерву.
ПЫТАЮСЬ СДЕЛАТЬ СЛЕДУЮЩИЙ ПУНКТ(А вот при наследовании реквизитов табличной части необходимо проверять, находится ли этот товар до сих пор в резерве (может, он уже отпущен другой расходной накладной).  И количество, соответственно, брать из остатка данного резерва в регистре «РезервыНоменклатуры». )
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |   ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК Остаток,
               |   ПродажаТоваров.Товары.(
               |      Номенклатура,
               |      СУММА(Количество)
               |   ),
               |   ПродажаТоваров.Ссылка
               |ИЗ
               |   Документ.ПродажаТоваров КАК ПродажаТоваров
               |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки
               |      ПО ПродажаТоваров.Товары.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
               |ГДЕ
               |   ПродажаТоваров.Ссылка = &Ссылка
               |   И ПродажаТоваров.Товары.Количество = &Количество
               |
               |СГРУППИРОВАТЬ ПО
               |   ПродажаТоваров.Товары.(Номенклатура)";
Запрос.УстановитьПараметр("Ссылка", Ссылка);

Результат = Запрос.Выполнить();   
ВыборкаДетальныеЗаписи = Результат.Выбрать();
    Если ВыборкаДетальныеЗаписи.Количество < ВыборкаДетальныеЗаписи.Остаток Тогда
        Сообщить("Не хватает товара " + ВыборкаДетальныеЗаписи.Номенклатура + ", из необходимых " + ВыборкаДетальныеЗаписи.Количество + " в наличие имеется только " + ВыборкаДетальныеЗаписи.Остаток);
        Отказ = Истина;
    КонецЕсли;
    Если Не Отказ Тогда
        Движение = Движения.ОстаткиТоваров.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
        Движение.Количество = ВыборкаДетальныеЗаписи.Количество;
    КонецЕсли;


Добавлено: 25 апр 2017, 14:08


РЕБЯТ ПОМОГИТЕ ВЫПОЛНИТЬ ЭТИ 2 ПУНКТА. ОПИШИТЕ ПОЖАЛУЙСТА ПОДРОБНЫЕ ДЕЙСТВИЯ , С ЧЕГО НАЧИНАТЬ
Прописать проведение документа «СнятиеСРезерва». При этом необходимо выбирать остатки резервов на текущий документ по каждому из снимаемых счетов, из регистра «РезервыНоменклатуры»

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск