| 
			
			 | 
		#1 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
			
			
			Номерная серия без нулей
			 
			
			Вот стало надо нумеровать серии без нулей. То есть вместо 
		
		
		
		
		
		
		
	ППП_009 написать ППП_9. Максимум = 999 Как задать формат такой номерной серии? Не хочется заниматься постобработкой полученной строки.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
2. формат с нулями нужен для правильной сортировки "как числа". В вашем варианте номера будут сортироваться "как строки" (ППП_1, ППП_11, ППП_12, ... ППП_19, ППП_2, ППП_21...) См. http://axapta.mazzy.ru/lib/adjustment/  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Eldar9x (1). | |
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если все же хотите сделать по-своему, невзирая на замечание №2 от mazzy (очень существенное замечание, хочу заметить), то смотреть нужно в сторону метод NumberSeq::numInsertFormatInternal(). 
		
		
		
		
		
		
			
		
		
		
		
	В нем надо сделать следующее изменение X++: case #SymbolNumerals: //tmpTxt = strpoke(tmpTxt,'0',x); tmpTxt = strDel(tmpTxt, x, 1); break; Это только для ситуации, когда используются числовые подстановки, а не буквенные Если уже были использованы номера, и серия непрерывная, то значения будут браться из списка, а не формироваться новые - тогда этот код, опять же, не отработает.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Member 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Тогда придется править еще как минимум ::numRemoveFormat(), насколько я помню. 
		
		
		
		
		
		
			Желательно отказаться от хотелки. 
				__________________ 
		
		
		
		
	С уважением, glibs®  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Axapta 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Зачем и кому это надо? Не зная ответа на этот вопрос можно много "вредных" советов надавать. 
		
		
		
		
		
		
		
	А то ведь получится как у Джоэля. Цитата: 
	
		
			Хороший кандидат попытается вытянуть из вас побольше информации. Для кого нужен дом? Я принципиально не приму на работу кого-то, занимающегося проектированием и не спрашивающего, для чего. Однажды меня это так возмутило, что я прервал кандидата и сказал: «Вы забыли об этом спросить, но это дом для семейства слепых жирафов.»
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			У нас одна из серий имеет формат - КЛ9-#######, номера сейчас такие - КЛ9-0029921, максимум -9999999 
		
		
		
		
		
		
		
	Так что впрде все нормально работает  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
чтобы при таком формате, как у Вас, вместо КЛ9-0029921 получилось КЛ9-29921  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Давайте разделять реальный используемый номер и вывод на экран-на печать. 
		
		
		
		
		
		
		
	Напишите дисплей-метод, и все дела! С Уважением, Георгий  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А поиск? а переход к основной таблице? 
		
		
		
		
		
		
		
	имхо, предложение имеет смысл только при отображении номера в печатных документах. Возможно, автору вопроса стоит подумать над изменением постановки задачи как раз в эту сторону.  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Зачем и кому это надо?
		
	 
Вот мне и нужно, запретить ввод кода, оставив при этом формат предыдущей системы, который идет с префиксом и не имеет ведущих нулей. Цитата: 
	
		
			Напишите дисплей-метод, и все дела!
		
	 
Да, жаль, конечно, что нельзя. Если оставить формат номерной серии пустым, то нумеруется именно так как мне и надо, но без префикса. Вот и подумалось, что можно задать то же самое но с префиксом. Но ради такой малой задачи, вряд ли буду модифицировать эти классы. Всем спасибо!  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если данные заливаются из другой системы, то нельзя ли влезть в процесс заливки и добавить "не достающие" нули? Ну или поправить после заливки?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Если данные заливаются из другой системы, то нельзя ли влезть в процесс заливки и добавить "не достающие" нули?
		
	 
К тому же, если добавлять нули, формат исходной системы теряется. И еще получаем проблему: в аксапте, ППП_0001 и ППП_1 это разные значения, в другой системе - одинаковые  .
		 | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Смысл есть. И не маленький. 
		
		
		
		
		
		
		
	1. Значение ключа формируется в формате "естесственном" с точки зрения идеологии построения номерных серий. Не надо будет никуда влезать и ничего править в "родной" системе. 2. Опыт перекачки данных из других систем научил тому, что нельзя использовать идентификатор другой системы в качестве идентификатора данной системы. По разным соображениям. Идентификатор "чужой" системы должен хранится в отдельном поле. Как служебная (справочная) информация.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: oip (1). | |
| 
			
			 | 
		#14 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Идентификатор "чужой" системы должен хранится в отдельном поле.
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Какое у пользвателей обоснование
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Eldar9x как в итоге решили вопрос с 'удалением' ведущих нулей?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Dynamics AX 4.0 SP2  | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Eldar9x как в итоге решили вопрос с 'удалением' ведущих нулей?
		
	 
X++: BrendId genBrendId()
{
    NumberSeq       NumberSeq;
    str 4           prefx = "ПОС.";
    Num             num;
    ;
    do
    {
        numberSeq = NumberSeq::newGetNum(CompanyInfo::tmn_numRefBrendId(), true);
        if (!numberSeq)
            throw checkFailed("Не задана номерная серия для Бренда в параметрах УЗ.");
        num = numberSeq.num();
        numberSeq.used();
    }
    while (BrendTable::exist(prefx + num));
    return prefx + num;
}Формат номерной серии - пустой.  | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Как-то не совсем красиво, если только нет твердой уверенности что ничего не поменяется в политике формирования номеров. Может есть еще какие-то варианты? 
				__________________ 
		
		
		
		
	Dynamics AX 4.0 SP2  | 
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Может есть еще какие-то варианты?
		
	 
Но попробовав, поиск по классу на эти макросы, вы получите, что придется модифицировать еще несколько методов. Разбираться в них не было необходимости, так как текущая модификация меня вполне устраивает. По поводу компаний, они в виртуальной, так что - нет проблем. Плюсы: заполняются промежутки для данного кода, так как количество их ограничено (9999); после отказа от старой системы, номерная серия продолжает функционировать (после некоторых изменений, конечно); обнуление номерной серии никак не сказывается на работе.  | 
| 
	
 | 
| Теги | 
| download, faq, законченный пример, номерная серия, нули, нумерация, полезное, пример | 
| 
	
	 | 
	
		
			 
			Похожие темы
		 | 
	||||
| Тема | Ответов | |||
| Номерная серия,,, превышена. | 28 | |||
| Номерная серия | 11 | |||
| Номерная серия общая для всех компаний! | 13 | |||
| Номерная серия в виртуальной компании | 2 | |||
| Номерная серия требование-накладная | 2 | |||
		
  |