Показать сообщение отдельно
Старый 17.06.2003, 00:57   #14  
Khodakovska is offline
Khodakovska
Участник
 
13 / 10 (1) +
Регистрация: 02.03.2003
Ок, постараюсь как-то объяснить что я сделала .Может быть не очень красивое решение но во всяком случае оно работает.
1. Создаем Purchase order в Сompany A --- в Company B автоматически создается Sales order.
a ) В company A создаем Vendor с именем и всеми данными company B .В таблице
vendor добавляем поле Сompany c TableRelation-Company ,Data Type –Text
b) В company B создаем Customer с именем и всеми данными company A В таблице
Сustomer добавляем поле Сompany c TableRelation-Company, Data Type –Text
c) В форме 50 Purchase Order создаем отдельную страницу например у меня это Intercompany где я помещаю следующие данные (естественно добавлены соответствующие поля в Purchase Header) : Sales order сделан для company….
Sales order номер …..
d ) )В форме 42 Sales Order создаем отдельную страницу Intercompany где я помещаю следующие данные (естественно добавлены соответствующие поля в Sales Header):
Cделан для компании ……
Для Purchase Order номер….
e) Создаем таблицу InterCompanyRefTable DataPerCompany-No
Type,SourceCompany,Source No.,Destination Company,Destination No
Я думаю здесь все понятно для чего
f) Следующее что я сделала создала отдельный CоdeUnit InterCompany где находяться все мои функции

И так создаем Purchase order в company A (Buy-from Vendor No –выбираем того у кого поле Соmpany –нужная нам Company B) в меню выбираем –Создать InterCompanyOrder
B CodeUnit создается функция СreateInterCompanySales order

Я думаю дальше все ясно ,что нужно сделать чтобы создать Sales order автоматически
В начале создаете Sales Header идете в табель Sales & Receivables Setup делаете CHANGECOMPANY(Vendor.Company)находите следующии номер Находите Customer
в Company B у которого Company = Company A и заполняете все оставшиеся поля как они заполняются в таблице Sales header .Понятно что VALIDATE применить не получиться Здесь лучше всего написать отдельный код. Например создать функцию
CreateDimansion где использовать codeunit DimenssionManagement где в свою очередь создать функию UpdateDocDefaultDimInterCompany куда следует добавить параметр txtInterCompany
Обязательно заполнить поля в c) и d)
C помощью таблицы InterCompanyRefTable создаем Sales line……

Думаю, как делать Post всех документов уже легко догадаться --- c) и d)…..
Здесь я не стала конечно переписывать код как в случае с Sales header и Sales line а сделала все гораздо проще хоть и там можно было сделать все аналогично Если нужно продолжу описание следующий раз

2 Как из Sales Order автоматически создать Purchase Order + Sales Order я думаю тоже должно быть понятно

Вопросы ?????