Показать сообщение отдельно
Старый 16.03.2011, 11:38   #1  
ice321i is offline
ice321i
Участник
 
60 / 47 (2) +++
Регистрация: 22.10.2007
Формирование транспортной накладной по отгрузке
Здравствуйте!
При отправке отгрузки, по заказу на продажу, формирую транспортную накладную,
пытаюсь ее распечатать (Печать --> Транспортная накладная) из отгрузки (формат отчета Российский), DAX выдает инфолог:
"Ошибка времени выполнения: WMSBillOfLadingReport_RU (Объект), метод parmBillOfLading вызван с недопустимыми параметрами.

(C)\Classes\WMSBillOfLadingReport_RU\parmBillOfLading
(C)\Classes\WMSBillOfLadingReport_RU\main - line 7
(S)\Classes\MenuFunction\run
(S)\Classes\ReportDispatcher_W\run - line 4
(S)\Classes\WMSBillOfLadingDispatcher_W\main - line 4
(S)\Classes\MenuFunction\runServer
(C)\Classes\FormFunctionButtonControl\Clicked
(C)\Classes\FormMenuButtonControl\Clicked
(C)\Classes\FormMenuButtonControl\Clicked - line 4"

Идем в метод main в классе WMSBillOfLadingReport_RU и видим, что туда можно только передавать запись WMSBillOfLading... %(

Хорошо, пытаемся по другому (Запросы --> Транспортная накладная --> Печать),
DAX выдает инфолог: "Для транспортной накладной "Тра-ля-ля" не найдена накладная" %(

Оказывает в методе fillDocument класса WMSBillOfLadingReport_RU ищется накладная по заказу на продажу с номером данной транспортной накладной, но фин. накладной по отгрузке еще не было обработано... %(

Хорошо обрабатываем фин. накладную в отгрузке (в параметрах Расчеты с клиентами на вкладке отгрузка в поле Транспортная накладная стоит "Разноска накладной"), опля, DAX выдает инфолог "Транспортная накладная не найдена"... %(

Смотрим метод constructFromInvoice таблицы WMSBillOfLading:

X++:
custInvoiceTransQuery = new QueryRun(_custInvoiceJour.queryCustInvoiceTrans());
    custInvoiceTransQuery.query().dataSourceTable(tablenum(CustInvoiceTrans)).addRange(fieldnum(CustInvoiceTrans, QtyPhysical)).value(strfmt('!%1', queryValue(0)));
    custInvoiceTransQuery.query().dataSourceTable(tablenum(CustInvoiceTrans)).firstOnly(true);
    if (!custInvoiceTransQuery.next())
        return wmsBillOfLading;
И видим, что формироваться она будет только если поле QtyPhysical не равно нулю.
Выяснил, что оно не равно нулю, если мы не обрабатываем Отборочную накладную.
Но мне ее необходимо обрабатывать для отправки отгрузки...

Вопрос: Локализаторы специально так сделали, Транспортную накладную можно распечатать только если есть связанная Фин. накладная или они просто забыли, что из Отгрузки то же можно создавать Транспортную накладную, или я что-то не до понял %)