Ооо! Классика! Самое интересное, что этот "восточноевропейский" метод в принципе невозможно написать правильно. В польской локализации там передаются накладные через запятую. Во всех остальных странах было бы верно поставить queryValue(). К несчастью, у меня в клиентах - концерн с двумя польскими, датской и русскими фабриками. Приходится делать проверки на CompanyInfo::features_W()
Там есть еще прелесть: если packingSlipId пришел пустой, то идет поиск строки InventTrans c ПУСТОЙ (!) накладной. Представляю переписанный тремя поколениями разработчиков пассаж, который, вроде, работает при всех условиях:
X++:
...
packSlipId = packingSlipId ? packingSlipId : movement.packingSlipForUpdate_W();
if( packSlipId )
{
packSlipId = strRTrim(strLTrim(packSlipId));
if( strScan(packSlipId,",",1,strlen(packSlipId)) && CompanyInfo::features_W() == CRSEFeatures_W::PL)
packSlipId = packSlipId;
else
packSlipId = queryValue(packSlipId);
qbds.addRange(fieldnum(InventTrans, PackingSlipId)).value(packSlipId);
}
...