| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			День добрый недавно обнаружился неприятный глюк. При создании накладной с  произвольным текстом RecId первой создаваемой строки совпадает с RecId самой накладной, т.е. CustInvoiceTable.RecId == CustInvoiceLine.RecId. Для всех последующих строк все норм. Подскажите, может кто-то сталкивался, как с этим бороться.  
		
		
		
		
		
		
		
	P.S. Все это на AX 4.0. SP 2  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А как Вы это определили?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			принт скрин в студию!!! Я не верю!!
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Скорее всего вы не весь RecId взяли и по части фильтруете строки. Раздвинте поле RecId в обозривателе и всё поймете
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		
		
		
		
			 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			М-да. Очень интересно.  У меня то же самое наблюдается... 
		
		
		
		
		
		
			
		
		
		
		
		
			Сделал такой джобик: X++: static void Job5(Args _args) { CustInvoiceLine CustInvoiceLine; CustInvoiceTable CustInvoiceTable; ; while select CustInvoiceLine join CustInvoiceTable where CustInvoiceTable.RecId == CustInvoiceLine.RecId { info( int642str( CustInvoiceLine.RecId)); } } Info Сообщение (13:18:15) 21426232134 Info Сообщение (13:18:15) 21426232135 Info Сообщение (13:18:15) 21426232136 Info Сообщение (13:18:15) 21426232137 Info Сообщение (13:18:15) 21426232138 Info Сообщение (13:18:15) 21426232139 Info Сообщение (13:18:15) 21426232140 Info Сообщение (13:18:15) 21426232141 Info Сообщение (13:18:15) 21426232142 Info Сообщение (13:18:15) 21426232143 Задумался.. Последний раз редактировалось Михаил Андреев; 24.10.2007 в 13:19.  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А чего в этом страшного? В 4-ке RecId уникален в рамках таблицы, а не в рамках всей БД, как в 3-ке.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			не очень понятно, не могут ли быть пересечения в этом случае (что происходит при создании второй накладной, если в первой - две строки)
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Мрачный тип 
		
			
	 | 
	
	
	
		
		
		
		 
			
			То ли лыжи не едут, то ли я ... 
		
		
		
		
		
		
		
	Объясните суть глючности данного явления, пожалуйста. В 4-ке генерация RecId вроде наконец-то избавлена от невменяемого атавизма 3-ки ввиде размазывания RecId по всем таблицам в рамках одной компании - RecID вроде потаблично генерится. В 4-ке порог старта RecId начинается 0000000100000000h(4 294 967 296) дабы с RecId 3-ек не пересекаться. Наличие в двух разных таблицах одинаковых значений идентификаторов записи в такой ситуации у 4-ки - явление, IMHO, вполне нормальное и не должно вызывать никоего беспокойства , кроме абсолютной величины (когда успели почти полтора миллиарда записей насоздавать ?)  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Дело в том что я просто не знал о различиях 3-ки и 4-ки по поводу RecId, поэтому и занервничал. 
		
		
		
		
		
		
		
	Теперь все стало на свои места. Всем спасибо за помощь  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Пожалуй, случайность. Все накладные по одной строке содержат. Так что, ложная тревога.
		 
		
		
		
		
		
		
			
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Прикольно конечно, но где написано, что RecID в 4-ке уникален тока в одной таблице.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Мрачный тип 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Михаил, чесслово,  не понимаю причин беспокойства  
		
		
		
		
		
		
		
	![]() В какой-то момент времени значения счетчиков RecId у них сравнялись и было сделано подряд несколько однострочных клиентских накладных - только и всего, вполне вероятная ситуация (я 6 лет работал с системой, где почти все реляционные связи были на суррогатном 8-байтовом идентификаторе, генерируемом отдельно для каждой таблицы, там эта ситуация норма и проблем от этого не возникало). Другое дело - разная скорость пожирания значений идентификатора в разных таблицах. Вот если бы у вас было в значения пробелы - вот тогда надо задумываться. CustInvoiceTable априорно более медленно или равно поедающая по сравнению с CustInvoiceLine.  | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Всё правильно, я уже это понял  
		
		
		
		
		
		
			
		
		
		
		
	 
		 | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Мрачный тип 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
![]() Оно ж ить того ... это самое, обсуждамшись уже давненько ... Последний раз редактировалось TasmanianDevil; 24.10.2007 в 14:01.  | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Программатор 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
- Что вы делаете так поздно? — спросил Резерфорд. - Работаю,— последовал ответ. - А что вы делаете днем? - Работаю, разумеется,— отвечал ученик. - И рано утром тоже работаете? - Да, профессор, и утром работаю, - подтвердил ученик, рассчитывая на похвалу из уст знаменитого ученого. Резерфорд помрачнел и раздраженно спросил: Послушайте, а когда же вы думаете?  
		
				__________________ 
		
		
		
		
	-ТСЯ или -ТЬСЯ ?  | 
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 Программатор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Придется поверить наслово  
		
		
		
		
		
		
		
	  Пробел исправил, осознал суть происходящего и снова работать  
		 | 
| 
	
 | 
| Теги | 
| ax4.0, recid | 
| 
	
	 | 
	
		
			 
			Похожие темы
		 | 
	||||
| Тема | Ответов | |||
| if (record) vs if (record.RecId) | 18 | |||
| Глюк с RecId в Ax 4.0 | 5 | |||
| поля, содержащие RecId | 15 | |||
| aEremenko: Дефрагментация RecID | 2 | |||
| Два RecId у одной записи таблицы | 33 | |||
		
  |