| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Ax 3.0 SP4 
		
		
		
		
		
		
		
	непонятный результат выдает код: X++: static void Job(Args _args) {; info(strFmt("%1", str2date("CL1", 123))); } какие будут соображения по этому поводу?  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			У меня на 5.0.452.0 не воспроизводится. 
		
		
		
		
		
		
			
		
		
		
		
	Видимо, баг. Смешной, но баг. Видимо уже починили.  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Axapta 
		
			
	 | 
	
	
	
		
		
		
		 
			
			DAX 4 SP1 не воспроизводится.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			трудно объяснить, но в 3.0 SP5 такой код работает, и видимо, CL в распознается  как  последний день месяца %)  
		
		
		
		
		
		
		
	X++: static void test_CL(Args _args) { Date d = str2date("CL-2-2008",123); ; print date2str(d,123,1,1,3,1,4); print dayOfMth( d ); pause; }  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			ax3kr2 - воспроизводится. Интересно, почему с другими буквами не работает. Или это римскими цыфрами?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Axapta 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну и что, что последний. Или я чего не понял? Почему именно CL, какие есть еще комбинации букв?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			мне кажется, это спецзначение. 
		
		
		
		
		
		
		
	Ведет себя как последний день месяца, но с ним не сравнивается: X++: str2date("29.02.2008", 123)==str2date("CL", 123) false str2date("29.02.2008", 123)==str2date("CL", 123)+1-1 true  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			"OP" себя похоже ведет
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Axapta v.3.0 sp5 kr2  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: belugin (1). | |
| 
			
			 | 
		#10 | 
| 
			
			 Axapta 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Угу, и других комбинаций больше нет.  
		
		
		
		
		
		
		
	![]() X++: static void Jobeee(Args _args) { container c = ['a','b','c','d','e','f','j','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']; int length = conlen (c); int i = 1; int j; str s; ; while (i <= length) { j = 1; while (j <= length) { s = strFmt("%1", str2date(conpeek(c,i)+(conpeek(c,j)), 123)); if (s) info(s); j++; } i++; } }  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Axapta 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Э? 
		
		
		
		
		
		
		
	info(strFmt("%1", str2date("d", 123))); => ' ' И трехбуквенных комбинаций уже нет таких. X++: static void Jobeee(Args _args) { container c = ['a','b','c','d','e','f','j','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']; int length = conlen (c); int i = 1; int j; int k; str s; void checkAndInfo (str _s) { if (s) info(s); } ; while (i <= length) { j = 1; s = strFmt("%1", str2date(conpeek(c,i), 123)); // Однобуквенные строки checkAndInfo (s); while (j <= length) { k = 1; s = strFmt("%1", str2date(conpeek(c,i)+conpeek(c,j), 123)); // Двухбуквенные строки checkAndInfo (s); while (k <= length) { s = strFmt("%1", str2date(conpeek(c,i)+conpeek(c,j)+conpeek(c,k), 123)); // Трехбуквенные строки checkAndInfo (s); k++; } j++; } i++; } }  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Это не спецсимволы. 
		
		
		
		
		
		
			Просто, так хитро отображается переполнение даты (точнее дней). Причем, до 64 дня включительно так и отображается - 64 февраля (или любой другой месяц)  . А дальше выводится либо CL, либо OP.Для четверки это все так же верно, за исключением того, что этот вызов str2date("CL-2-2008",123) возвращает пустую дату (подозреваю, что и в пятерке так же). А вот небольшой демонстрационнй тестик X++: static void Job01Args _args) { Date d; int i; ; for (i=0;i<=0xff;i++) { [d] = ContainerClass::blob2Container( BinData::stringToData(strfmt("07036c01%1ff", int2hex(i, 2))) ); info(strfmt("%1 - %2 - %3", int2hex(i, 2), date2str(d,123,1,1,3,1,4), dayOfMth( d ))); } }  
		
				__________________ 
		
		
		
		
	Axapta v.3.0 sp5 kr2  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: oip (2). | |
| 
			
			 | 
		#14 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вынес вот сюда   База знаний ERP : Axapta / Tip / date 
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Может, это ошметки старой функциональности, связанной с закрывающими периодами? 
		
		
		
		
		
		
			
		
		
		
		
	В Навижине можно записывать выражение для вычисления даты. Цитата: 
	
		
			Entering Dates and Times. There are many ways to enter a date in Navision Attain. Entering digits and letters are translated in the following ways: 
 Цитата: 
	
		
			The first entry MUST be posted on the last day of the current month and the Recurring Frequency should be either 1D+1M-1D or 1M+CM.
		
	 
Но может это рудимент совсем старых версий для указания закрывающего (CLosing) периода? Сейчас для этих целей служат периоды совместно с интервалами дат. http://axapta.mazzy.ru/lib/ledgerperiodcode/ Т.е. d обрабатывается ядром на уровне GUI? Хм... Спасибо.  | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Тогда OP - Operation Period?  
		
		
		
		
		
		
			
		
		
		
		
	![]() Вполне возможно. В любом случае, не думаю, что эта фигня достойна исправления, если это вообще считать багом P.S. Хотя скорее даже OPening  | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			по документации неправильный формат даты должен возвращать пустую строку. OP не перечислен в форматах даты
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Axapta 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Job, приведенный AndyD выводит у меня и CL даты, и OP даты. 
		
		
		
		
		
		
			
		
		
		
		
	Но в обратную сторону уже это все не работает.  | 
| 
	
 |