|  29.04.2007, 18:50 | #41 | 
| Banned | 
			
			JobId генерируется в трех местах: в производстве, проектах или в самом управлении цехом. Если JobId пришел из производства, то там стоит своя номерная серия.
		 | 
|  | 
|  17.05.2007, 17:05 | #42 | 
| Banned | Comment On Classics Week: Chocolate Covered SQL 
			
			Много занимаясь решениями для упаковочной отрасли, не мог пройти мимо этого:  Прочитайте внимательно состав продукта.  (c) http://worsethanfailure.com/Articles...ered-SQL-.aspx | 
|  | |
| За это сообщение автора поблагодарили: e@gle (1), a33ik (1). | |
|  05.06.2007, 10:22 | #43 | 
| Участник | 
			
			Вчера наткнулся в методе Classes\InventAdjustPost\updateTotal на очень удививший меня код. X++: protected void updateTotal() { InventSettlement inventSettlement; InventTrans inventTrans; ProjLedger projLedger; while select forcePlaceHolders forceSelectOrder sum(costAmountadjustment) from inventSettlement index hint DateVoucherIdx group by itemId,balanceSheetPosting,balanceSheetAccount,operationsPosting,operationsAccount,dimension where inventSettlement.transDate == transDate && inventSettlement.voucher == voucher && inventSettlement.costAmountAdjustment != 0 && inventSettlement.InventTransCurrency_RU == inventTransCurrency && inventSettlement.posted == NoYes::No join inventTrans index hint recId group projId,projAdjustRefId,inventTransId where inventTrans.RecId == inventSettlement.TransRecId { if (correspondenceEnable) { this.updateMap_RU(inventSettlement,inventTrans); } else { projLedger = this.newProjLedger_RU(inventTrans.ProjId, inventTrans.InventTransId, inventTrans.ProjAdjustRefId); this.updateTrans(inventSettlement, ledgerVoucher,projLedger); } } this.updateTrans_RU(); } Это вообще нормально?? | 
|  | 
|  06.06.2007, 10:13 | #44 | 
| Участник | 
			
			В продолжнение темы, приведу вырезку из DevGuide. Оказывается, это задокументированная фича, и помимо group работает и для order Цитата: 
		
			ORDER_GROUP ::= order OPT_BY ORDER_GROUP ::= group OPT_BY OPT_BY ::= by OPT_BY ::= | 
|  | |
| За это сообщение автора поблагодарили: mazzy (5), belugin (3). | |
|  13.07.2007, 11:26 | #46 | 
| Участник | autowtf 
			
			надо было сделать setPrefix для функции с 12 аргументами:  скопировал в ФАР заголовок, вырезал регулярными выражениеями обзявления типов и пишу: X++: setPrefix(strFmt("Открытие документа: %1, %2")я это сделал так (на питоне): Код: ipy:?', '.join(['%'+str(i) for i in range (1, 13)]) Код: '%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12' X++:     setPrefix("Открытие документа" + con2str([
            _H_DM_Link,
            _ProjectID,
            _BaseBuildId,
            _HMG_SUPERTYPE,
            _HMG_TYPE,
            _HMG_DOC_NAME,
            _HMG_DOC_STATE,
            _HMG_DOC_STORAGE,
            _HMG_DOC_IN_STATE,
            _HMG_DOC_APP_ID,
            _HMG_DOC_OBJTYPE1,
            _HMG_DOC_OBJTYPE2
    ])); | 
|  | 
|  13.07.2007, 11:47 | #47 | 
| Banned | 
			
			Похвально. У меня тоже вчера было какое-то особое настроение, так что для того вертикального решения, над которым я работаю в настоящий момент, я написал след. код: X++: // to cope with the apples and bananas problem UnitQty addUnitQtyError(SPPProdUnitQtyMap _that) { UnitQty qty; if (! _that.UnitQtyError) return 0; if (! this.UnitIdError) this.UnitIdError = _that.UnitIdError; if (! this.LanesNo) this.LanesNo = _that.LanesNo; if (this.UnitIdError == _that.UnitIdError && this.LanesNo == _that.LanesNo) // ;-) { qty = _that.UnitQtyError; } else { qty = _that.UnitQtyError; if (_that.LanesNo && Unit::SPPisLengthUnit(_that.UnitIdError)) qty = qty * _that.LanesNo; // ~ kg, m2, pcs if (this.LanesNo && Unit::SPPisLengthUnit(this.UnitIdError)) qty = qty / this.LanesNo; // ~ m // no conv. factor => throw error qty = UnitConvert::qty(qty, _that.UnitIdError, this.UnitIdError, this.prodTable().ItemId); } this.UnitQtyError += qty; return qty; } Последний раз редактировалось EVGL; 18.07.2007 в 12:39. | 
|  | 
|  18.07.2007, 12:30 | #48 | 
| Microsoft Dynamics | Что бы это значило? 
			
			Никто раньше не натыкался? \Classes\InventAdjustPost\updateTrans X++:     if (1)
        _inventSettlement.Dimension = Dimensions::findDimension(_inventSettlement,InventTable::find(_inventSettlement.ItemId),_inventSettlement.Dimension); | 
|  | 
|  18.07.2007, 12:32 | #49 | 
| Участник | 
			
			если про if(1) это скорее оставленный скальпель, чем wtf
		 | 
|  | 
|  18.07.2007, 12:38 | #50 | 
| Banned | |
|  | 
|  18.07.2007, 14:47 | #51 | 
| Microsoft Dynamics | |
|  | 
|  18.07.2007, 15:20 | #52 | 
| Участник | 
			
			Это когда хирург разрезает тело больного, делает операцию, зашивает, а скальпель забывает внутри.  В данном случае if(1), наверное, вставлялось для отладки, а убрать забыли (было. например, if (0) или if (curUserID()=='петрович') ) | 
|  | |
| За это сообщение автора поблагодарили: Мариночка (2). | |
|  21.08.2007, 17:30 | #53 | 
| Axapta | 
			
			\Classes\ReqSetupDim\covRule X++: return reqGroup.covRule ? reqGroup.CovRule : reqCovType::Period; | 
|  | |
| За это сообщение автора поблагодарили: belugin (1). | |
|  21.08.2007, 17:39 | #54 | 
| Administrator | 
			
			oip, а что тут не так? Ну, может перестраховались немного, но в целом это ведь #Default(reqGroup.covRule, reqCovType::Period)
		 
				__________________ Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me | 
|  | 
|  21.08.2007, 17:43 | #55 | 
| Axapta | 
			
			reqCovType::Period == 0
		 | 
|  | 
|  20.12.2007, 16:27 | #56 | 
| Moderator |  Прозрение X++: void deleteFirstRows() { this.deleteRange('A12:Z12'); /* this.deleteRange('A12'); this.deleteRange('B12'); this.deleteRange('C12'); this.deleteRange('D12'); this.deleteRange('E12'); this.deleteRange('F12'); this.deleteRange('G12'); this.deleteRange('H12'); this.deleteRange('I12'); this.deleteRange('J12'); this.deleteRange('K12'); this.deleteRange('L12'); this.deleteRange('M12'); this.deleteRange('N12'); this.deleteRange('O12'); this.deleteRange('P12'); this.deleteRange('Q12'); this.deleteRange('R12'); this.deleteRange('S12'); this.deleteRange('T12'); this.deleteRange('U12'); this.deleteRange('V12'); this.deleteRange('W12'); this.deleteRange('X12'); this.deleteRange('Y12'); this.deleteRange('Z12'); */ } | 
|  | |
| За это сообщение автора поблагодарили: EVGL (1), Eldar9x (1). | |
|  20.12.2007, 16:45 | #57 | 
| Banned | F*cking programming 
			
			http://codeulate.com/?p=7 Я тоже часто руководствуюсь такими соображениями: Цитата: 
		
			/* TODO: this is obviously not right … this whole fucking module * sucks anyway */ Последний раз редактировалось EVGL; 20.12.2007 в 16:49. | 
|  | 
|  20.12.2007, 23:17 | #58 | 
| Microsoft Dynamics | 
			
			Да, и это заметно   : Цитата: 
		
			// EVGL // For you to remember me class CustVendReversePostingLog_RU 
				__________________ You should use Bing before asking dumb questions. | 
|  | |
| За это сообщение автора поблагодарили: EVGL (5). | |
|  20.12.2007, 23:50 | #59 | 
| Banned | 
			
			Да Вы не перешли на 4.0, батенька!   Оттуда коллеги уже вытерли мой тонкий юмор. | 
|  | 
|  20.12.2007, 23:58 | #60 | 
| Microsoft Dynamics | 
			
			Я-то перешел... А вот клиенты нашей компании - нет... И Вашим искрометным юмором приходится наслаждаться не в комментариях к коду, а в самом коде..    
				__________________ You should use Bing before asking dumb questions. Последний раз редактировалось Jabberwocky; 21.12.2007 в 00:00. | 
|  |