Бухгалтерия / Говнокод #7842 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
Функция ПолучитьЕдиницу(ТекЕдиница)
	Тек = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ТекЕдиница.Наименование);
	Если Тек = Справочники.КлассификаторЕдиницИзмерения.ПустаяСсылка() Тогда
		Тек = Справочники.КлассификаторЕдиницИзмерения.СоздатьЭлемент();
		Тек.Наименование = ТекЕдиница.Наименование;
		Тек.НаименованиеПолное = ТекЕдиница.Наименование;
		СтроковыйКод = "001";
		Запрос = Новый Запрос;
		Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
		               |	КлассификаторСтранМира.Код КАК Код
		               |ИЗ
		               |	Справочник.КлассификаторСтранМира КАК КлассификаторСтранМира
		               |
		               |УПОРЯДОЧИТЬ ПО
		               |	Код УБЫВ";
					   
					   Результат = Запрос.Выполнить().Выгрузить();
					   ЧисловойКод = Число(Результат[0].Код) + 1;
					   Если ЧисловойКод < 10 Тогда
						   СтроковыйКод = "00"+ЧисловойКод
					   ИначеЕсли ЧисловойКод < 100 Тогда
						   СтроковыйКод = "0"+ЧисловойКод
					   Иначе
						   СтроковыйКод = ""+ЧисловойКод
					   КонецЕсли;
					   
		Тек.Код = СтроковыйКод;
		
		Попытка
			Тек.Записать();
		Исключение
			ЕстьОшибка = Истина;
			Сообщить("Не могу записать единицу измерения "+ТекЕдиница.Наименование+" !");
			Сообщить(ОписаниеОшибки());
			Возврат "";
		КонецПопытки;
	КонецЕсли;
	Если Тек = Справочники.КлассификаторЕдиницИзмерения.ПустаяСсылка() Тогда
		ЕстьОшибка = Истина;
		Возврат "";
	Иначе
		Возврат Тек;
	КонецЕсли;
КонецФункции

Получила в наследство от команды разработчиков во главе с неким Леонидом. Порадовало формирование кода для нового элемента классификатора единиц измерения. И правда, почему бы не поискать максимальный код в каком-нибудь неожиданном месте? А такое оригинальное формирование строки с лидирующими нулями просто убило до смерти.

Запостил: Shapokljak Shapokljak, (Updated )

Комментарии (6) RSS

  • > формирование строки с лидирующими нулями
    Я не знаю, насколько уныл этот недо-sql в одноэсе, но в обычном форматирование делается одним вызовом соответствующей функции.
    Ответить
  • ф)L.H$Y"Q,R(G:M.V:V)O.Y(M:Y)X$ZY:J.ZK$G,AVMD,Y.G(C$J"T(T$O(T$V T(M!B!F,V(T,E H:K"B:JPA"O,M)X.P,N$A)E W)P:Q(U$Q,RK!R$N$K?X:V.R!D:I?N N?P)C,E$H,U?BJ?R!O:N(R(X(X$E H(V.L"A,M"J(Z)P)C,J.R(P:L)U,Q!B:A)V!R$M"DX:A:B)N,C NU$N:R!J,P?J"B?B!OR,D$E"N?O!M(V,C:Z!JX,B.M,GD!I!BL.C)G?E.Z$DD)G,F$Y!C(YD$D$H?W$K)N"T A?M!G(J O,NU)Q)H.FW:F"Y,V)J:LWS:I:XD,A T.I(Y!K)HF!P!O!B.K)C?K)P!A,D$S$UW(H(U)Y(J,G(R:S?X B!O:L$M$O!S)F)L?M,E:R,Q.U,G(X!K!X(S"W?J N.E(A(H$O!V?D)N:M,I"F(S(J,W.Q?E U.R,J)NV,L,O!Y(C!Y.G!W)J(P:U"I"I.F?P:Y F"G.J:A,Q$WЕDRYJWMWOFVYFPYUDJVOVEFLZSSABVDHABVWCTFGERKUQCUBOTAINLLXKXFJCTOSLLDCIYDRKBBBDJTIVLMPRKYLLZKIJJNMSHNMXZWHHAFRFQZPGRHYEEUOYKAAAYUVCUZYPXMKAVRCPZFBBWBVKEHQPDPZRYUPYQVNCDOBAKBIGRXQHHZZVKCGWXFWGUCVUJDFVRHUNYWYTGZMWQAVHYRWVXGUHQIBEXIGMWSXCM
    Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8