Показать сообщение отдельно
Старый 18.07.2008, 12:03   #27  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Вот.
Попытался по проще, серовно сложно получилось, но понять можно.
Рассмотрим простейший случай в системе запасы нулевые.
И reqItemTable не заполнен. Он является всего лишь дополнительным поставщиком потребностей.
Создаём заказ. Строку заказа. Выбираем номенклатуру с настроенным складом по заказу первого уровня. Т.е. Склад1_1 - > Основной.
В строке заказа у нас появляется склад1_1.
Запускаем сводное планирование.
1) Класс ReqCalc
метод insertInventTrans – получаем из запроса inventTrans, который нужно гасить.
2) Класс ReqCalc
метод newQueryInventTransReceipt – формирование запроса для прихода по InventTrans
метод newQueryInventTransIssue – формирование запроса для расхода по InventTrans
Наш случай покрыть расходную проводку.
3) Класс ReqCalc метод initTransFromInventTrans
Берём расходную проводку InventTrans, которую нужно гасить и создаём из неё reqTrans.
Т.е. создаём ReqTrans тип заказ Склад1_1
4) Класс ReqCalc метод covCreatePlannedOrder
Теперь берём нашу reqTrans.
И создаём из неё заготовку для будущего документа ReqPo. (журнал перенос)
Т.е. создаём ReqPo для переноса на Склад1_1.
ReqTrans-ов у нас пока для него нет.
5) Таблица ReqTrans метод метод initFromReqPo
Создаём приходную проводку для ReqPo.
Т.е. создаём ReqTrans для переноса на Склад1_1
6) Таблица ReqTrans метод createTransferDemand.
Создаём расходную проводку для ReqPo.
Т.е. создаём ReqTrans для переноса со склада Основной.
7) Класс ReqCalc метод covCreatePlannedOrder
Теперь берём наш reqTrans созданный в (6) и гасим его приходным документом (в нашем случае закупкой).
Т.е. создаём ReqPo для закупки на склад Основной
8) Таблица ReqTrans метод метод insertFromReqPo
Создаём приходную проводку для закупки.
Т.е. создаём ReqTrans для закупки на склад Основной.
Таким образом у нас создалось в ReqTrans 4 записи
1) Историческая – от куда всё началось(заказ)
2) Будущая приходная проводка для журнала перенос
3) Будущая расходная проводка для журнала перенос
4) Будущая приходная проводка для закупки
А также создались две записи в ReqPo (заготовки для будущих документов)
1) Журнал перенос
2) Закупка
Если бы у нас был склад второго уровня для строки заказа, то было бы
2 журнала переноса и 1 закупка.
Т.е. получается для первого уровня.
Склад заказа – склад основной.
Для второго
склад заказа – склад уровнем ниже – склад основной
На концах этих цепочек потребность заказа и потребность закупки.
А чёрточки это переносы.
Схематично было бы лучше, но думаю понятно.
Человек же хочет что была не цепочка, как можно сделать в стандарте
Склад1 (склад заказа) – склад3 – склад4 - склад2(основной)
А было три цепоки, веер
склад1 – склад3
склад1 – склад4
склад1 – склад 2 (в самом конце, если ещё осталось что-нибудь)
Т.е.
2 переноса и одна закупка
Рассмотрим для наглядности большую цепочку
1-2-3-4-5-6-7-8.(Склады)
Как стандарт создаст ReqTrans-ы (16 шт)
1 – заказ
1-2 переносы
2-3 переносы
3-4 переносы
4-5 переносы
5-6 переносы
6-7 переносы
7-8 переносы
8 - закупка
Как человек хочет (те же 16, но другие)
1 – заказ
1-2 переносы
1-3 переносы
1-4 переносы
1-5 переносы
1-6 переносы
1-7 переносы
1-8 – закупка
8 - закупка
Т.е. первый ReqTrans надо всегда подменять на склад заказа и соответственно количество тоже подменять нужно, а остальное как есть оставить.
Ну это очень упрощено.
Я только стержень объяснил.

Последний раз редактировалось miklenew; 18.07.2008 в 12:42.
За это сообщение автора поблагодарили: Wamr (2), Bega (1).