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

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
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
Процедура ОбработкаНоменклатуры()
    
НомерЛистаТипы = 1;
Попытка ExcelТипы = СоздатьОбъект("Excel.Application");
 ФайлДанныхТипы = ExcelТипы.Workbooks.Open(НазваниеФайла);        
Исключение
КонецПопытки;
//Лист = ФайлДанныхТипы.WorkSheets(НазваниеФайла);
 
ЗагрузкаТипы = ФайлДанныхТипы.Worksheets(НомерЛистаТипы).UsedRange;    
//КоличествоСтрокЭкселеТипы = Лист.Rows.Count;    
 
КоличествоСтрокЭкселеТипы = ФайлДанныхТипы.Worksheets(НомерЛистаТипы).UsedRange.Rows.Count;
ExcelТипы.Sheets(НомерЛистаТипы).Select();    

Спр2 = СоздатьОбъект("Справочник.Номенклатура");
СпрВидНом = СоздатьОбъект("Справочник.ВидыНоменклатуры");
СпрНДС = СоздатьОбъект("Справочник.СтавкиНДС");
СпрНП = СоздатьОбъект("Справочник.СтавкиНП");
СпрЕд = СоздатьОбъект("Справочник.ЕдиницыИзмерений");

Для СтрТипы = НачСтр+1 По КонСтр Цикл      
    
Спр = СоздатьОбъект("Справочник.Номенклатура");
Если Спр.НайтиПоНаименованию(Строка(СокрЛП(ExcelТипы.Cells(СтрТипы,1).Value))) =  1 Тогда
    Сообщить("Номенклатура найдена");
Если ВидыЦен = 1 Тогда
    Спр.Себестоимость = Строка(СокрЛП(ExcelТипы.Cells(СтрТипы,4).Value));
ИначеЕсли ВидыЦен = 2 Тогда
    Спр.Цена = Строка(СокрЛП(ExcelТипы.Cells(СтрТипы,4).Value));
КонецЕсли;
Спр.Записать(); 
Иначе
Спр.Новый(); 
Спр.ИспользоватьДату('01.11.2011');
Если Спр2.НайтиПоКоду("Сй111")=1 Тогда
Спр.Родитель =Спр2.ТекущийЭлемент(); 
Конецесли;
Спр.Наименование = Строка(СокрЛП(ExcelТипы.Cells(СтрТипы,1).Value));  
Сообщить("Создается номенклатура" + Спр.Наименование);
Спр.ТипТовара = Перечисление.ТипыТоваров.Собственный; 
Если СпрВидНом.НайтиПоНаименованию("Товар")=1 Тогда
Спр.ВидНоменклатуры = СпрВидНом.ТекущийЭлемент();
КонецЕсли;
Спр.ПолнНаименование = Спр.Наименование;
Если ВидыЦен = 1 Тогда
    Спр.Себестоимость = Строка(СокрЛП(ExcelТипы.Cells(СтрТипы,4).Value));
ИначеЕсли ВидыЦен = 2 Тогда
    Спр.Цена = Строка(СокрЛП(ExcelТипы.Cells(СтрТипы,4).Value));
КонецЕсли;
Спр.СтранаПроисхожд = 1;   
Если СпрНДС.НайтиПоКоду("3")=1 Тогда
Спр.СтавкаНДС = СпрНДС.ТекущийЭлемент(); 
КонецЕсли;
Если СпрНП.НайтиПоКоду("1")=1 тогда
Спр.СтавкаНП = СпрНП.ТекущийЭлемент(); 
КонецЕсли;        
Если СпрЕд.НайтиПоНаименованию("шт")=1 Тогда
Спр.ЕдиницаИзмерения = СпрЕд.ТекущийЭлемент(); 
КонецЕсли;
Спр.Записать();
КонецЕсли;     

КонецЦикла;

КонецПроцедуры

В бух 7.7 нужно было загрузить определенный данные из экселя. С 7.7 не работаю - начал сочинять. В начале писал по аналогии с 8.х:
Спр.СтавкаНДС = СпрНДС.НайтиПоКоду("3") и т.д.
Потом на инфостарте и мисте подсказали как правильно сделать и посоветовали создать здесь эту запись)

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

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

  • Я не делаю отступы. Чтобы другой программист пришел к моему клиенту - и за пять минут во всем разобрался?
    Ответить
    • так автоформатирование же есть ))
      опять же очень странный способ защиты от "ДругогоПрограммиста"
      p.s.
      или то шутка была?
      Ответить
      • Шутка, конечно. Занят был, когда писал. Текст - Блок - Форматировать некогда было нажать. "Нет времени топоры точить - лес рубить надо")
        Ответить
    • Единственное к чему можно придраться - это присвоение реквизиту цена строковых значений. Но это работает. Когда я загружаю из экселя и преобразовываю значения к числовому типу - возникают погрешности в конечных суммах.
      Ответить
      • это тебе говнокод, а не ПосмотритеКакЯКрутоПишуНаГовноЯзыке
        Ответить
  • ну и нахрена простыни пионэрские хреначить?
    это даже не говнокод - это попытка неумело и тщательно решить частную задачу, с кучей методологических ошибок. этого добра от любого тестового задания в исполнении "младших учеников" - до едреней фени, так что - занавешивать теперь этими простынями ресурс???
    Ответить
  • Я просто удивлен. Человеку за самый дебильный комментарий поставили больше всего плюсов) Нормальный специалист такого не скажет. В 1с, чтобы хоть что-то внедрять - помимо кода, еще нужно знать оперативный и бухгалтерский учет. А сколько различных отраслевых решений...
    Ответить
  • д,T:Q N)S)R"D:I"K M:O$V"Z.Y!K:J(H)J.H,M.M$Q,L P$O)E)F I)J?SN.G"H!B,H(F:P,T L,E?YB?Q:I!D)P)BZS.C"Q$E(S,ZQ$C?J:O(C$X)S"F(Z)U?D(E(J.K"D!N)Z"U LO"KI"K:J(U D(R?Q(G,V C X"V:D!W,D)T S.P)K(W!Q?T.L!D)MV?O.PZ:IF"K$I!HM.X)T V)V(J"A!G.M:W.C!W$G:W!O"C!K Y$Q!T,H)P!A(Q(U(P.U.C?H.I L F?L!R(RP S:N(A!H!Z)Q:V"W(W E!M(N,N"Y"F(B$U(D(Q,U S!A"O!S)L.P,L!M,H!G.U(X.K!W:H.X"M:H E?I.L.H"E.Z J)P:G.L!N"Q?X,XQ X"O B"SL:G.T:Q(O)O.A$C!JD?F)Y)OU)T"I,T P$K!M!C C"B!S"L.F:I)M:Z,V?Y(Q!E?MYA!A.A?E A:U?R$QEK,R(D:C(U R)B)E,Z)C TU.E XZ,T P:O?O!T(K,N"T?U$V B(I(W.V)S?S!E)W(PY$F FZ!X.O)E"G,QQ H:A)E!A$P"Z T$C.S.NH:F(C(O?P!DE$M:C)A)V"Q:I"T!V.I.N:NC"U W)G"O:Y.M$N)X!K"U M(J!B?A?E:M$F$JG!W:C"S V!TA,P$X,L(L?V?C?O,L?H!I"D$TПFIRORBRTDBLULCSUOWUGFADLUMTDRCEIQONXSNWRZFEGHANTUZAMRM
    Ответить
  • - Ну слава Богу! Ты что, сучоныш мелкий, сдохнуть собирался?
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

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


    8