|  06.02.2008, 16:56 | #1 | 
| Участник |  непонятный результат str2date 
			
			Ax 3.0 SP4 непонятный результат выдает код: X++: static void Job(Args _args) {; info(strFmt("%1", str2date("CL1", 123))); } какие будут соображения по этому поводу? | 
|  | 
|  06.02.2008, 17:20 | #2 | 
| Участник | 
			
			У меня на 5.0.452.0 не воспроизводится. Видимо, баг. Смешной, но баг. Видимо уже починили. | 
|  | 
|  06.02.2008, 17:25 | #3 | 
| Axapta | 
			
			DAX 4 SP1 не воспроизводится.
		 | 
|  | 
|  06.02.2008, 22:56 | #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; } | 
|  | 
|  07.02.2008, 10:18 | #5 | 
| Участник | 
			
			ax3kr2 - воспроизводится. Интересно, почему с другими буквами не работает. Или это римскими цыфрами?
		 | 
|  | 
|  07.02.2008, 10:28 | #6 | 
| Участник | |
|  | 
|  07.02.2008, 10:34 | #7 | 
| Axapta | 
			
			Ну и что, что последний. Или я чего не понял? Почему именно CL, какие есть еще комбинации букв?
		 | 
|  | 
|  07.02.2008, 10:45 | #8 | 
| Участник | 
			
			мне кажется, это спецзначение. Ведет себя как последний день месяца, но с ним не сравнивается: X++: str2date("29.02.2008", 123)==str2date("CL", 123) false str2date("29.02.2008", 123)==str2date("CL", 123)+1-1 true | 
|  | 
|  07.02.2008, 11:18 | #9 | 
| Участник | 
			
			"OP" себя похоже ведет
		 
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | |
| За это сообщение автора поблагодарили: belugin (1). | |
|  07.02.2008, 11:53 | #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++; } } | 
|  | 
|  07.02.2008, 12:33 | #11 | 
| Участник | |
|  | 
|  07.02.2008, 12:42 | #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++; } } | 
|  | 
|  07.02.2008, 13:22 | #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). | |
|  07.02.2008, 13:31 | #14 | 
| Участник | 
			
			Вынес вот сюда   База знаний ERP : Axapta / Tip / date 
		 | 
|  | 
|  07.02.2008, 14:16 | #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? Хм... Спасибо. | 
|  | 
|  07.02.2008, 14:31 | #16 | 
| Участник | 
			
			Тогда OP - Operation Period?   Вполне возможно. В любом случае, не думаю, что эта фигня достойна исправления, если это вообще считать багом P.S. Хотя скорее даже OPening | 
|  | 
|  07.02.2008, 14:43 | #17 | 
| Участник | 
			
			по документации неправильный формат даты должен возвращать пустую строку. OP не перечислен в форматах даты
		 | 
|  | 
|  07.02.2008, 14:46 | #18 | 
| Axapta | |
|  | 
|  09.02.2008, 10:24 | #19 | 
| Участник | |
|  | 
|  09.02.2008, 12:36 | #20 | 
| Участник | 
			
			Job, приведенный AndyD выводит у меня и CL даты, и OP даты. Но в обратную сторону уже это все не работает. | 
|  |