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

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
. . .
	ццц=0;                               
	Если Сотрудникз.Выбран()=0 Тогда
		Сомр= СоздатьОбъект("Справочник.Сотрудники");
		Сомр.ВыбратьЭлементы();     
		цццк=50000;
	Иначе
		Сомр=Сотрудникз;
		цццк=1;
	КонецЕсли;	  
	Пока ((ццц<цццк) ) цикл   
		ццц=ццц+1;    
		Если цццк>1 Тогда
			Если (Сомр.ПолучитьЭлемент()=0) Тогда
				Прервать;
			КонецЕсли;  
		КонецЕсли;	 
		Сотрудник = Сомр.ТекущийЭлемент();   
		Если Сотрудник.ЭтоГруппа()=1 Тогда
			продолжить;
		КонецЕсли;
                . . .

По нормальному решается:

    Сотр = СоздатьОбъект("Справочник.Сотрудники");
    Сотр.ВыбратьЭлементы();
    Пока  (Сотр.ПолучитьЭлемент() = 1)  Цикл
      . . . 
    КонецЦикла

Досталось в наследство на основной работе, самописная конфа на 7.7,
как выяснилось этот участок кода писала 50-ти летняя женщина-программист

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

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

  • Меня всегда удивляло, как люди могут писать код по-русски... Хотя, наверное, есть захочешь - ещё и не так раскорячишься.
    Ответить
    • Да легко:)

      ТабличныеДанные.ДобавитьЗначение((Итоги. НачисленоВсего - ПолучитьДанные("НачисленноВсего_СНачалаГ ода", (Индекс - 1))), "НачисленноВсего_Месяц" + Индекс);
      ТабличныеДанные.ДобавитьЗначение((Итоги. ПособийЗаСчетФСС - ПолучитьДанные("ПособияЗаСчетФСС_СНачала Года", (Индекс - 1))), "ПособияЗаСчетФСС_Месяц" + Индекс);
      ТабличныеДанные.ДобавитьЗначение(((Итоги .ЕСНОблагаемая - Итоги.ЕСНОблагаемаяФСС) - ПолучитьДанные("ДоговораПодряда_СНачалаГ ода", (Индекс - 1))), "ДоговораПодряда_Месяц" + Индекс);

      ТабличныеДанные.ДобавитьЗначение(?(Итоги .ЕСНОблагаемая >= Предел, Итоги.ЕСНОблагаемая - ПолучитьДанные("СуммаПревыщающая_СНачала Года", (Индекс - 1)) - Предел, ""), "СуммаПревыщающая_Месяц" + Индекс);
      ТабличныеДанные.ДобавитьЗначение(?(Итоги .ЕСНОблагаемаяФСС >= Предел, Итоги.ЕСНОблагаемаяФСС - ПолучитьДанные("СуммаПревыщающаяФСС_СНач алаГода", (Индекс - 1)) - Предел, ""), "СуммаПревыщающаяФСС_Месяц" + Индекс);
      Ответить
    • ABAP = 1С на английском (это для тех, кто языками владеет), так в нем тоже можно не код писать, а строчки из "Войны и мир", например:
      shift param_name left deleting leading space. // удаляет из строки param_name лидирующие пробелы
      data table_name1 like structure_name occurs 0 with header line. // объявление внутренней таблицы table_name1 со структурой structure_name, с инициализацией на 0 строк и с заголовочной частью
      Ответить
      • Авас не обыдлился до немецких ключевых слов, в этом различие
        Ответить
        • 1С — это пародия на VB или JS, поэтому плохо подходит для русских ключевых слов. А вот синтаксис ABAP можно было бы попробовать перевести на другие языки. Перевели же COBOL на русский!
          Ответить
    • это еще что, вы типовые конфигурации посмотрите, особенно под 8.х, которые пишутся не с целью повысить эффективность решения, а с целью минимально нарушить универсальность кода, чтобы его можно было с таскать между типовыми решениями, это приводит к появлению невероятно громоздких и тормознутных конструкций, которые вообще не документируются и их знают только авторы, т.е. сама 1С, так что когда приходится разбираться в этом говнокоде, то бывает матов не хватает, поэтому не люблю типовые решения
      Ответить

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

Переведи на "PHP", guest!

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


    8