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

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
Г = 0;
Пока Г = 0 Цикл
	ПОПЫТКА
		Док.РазрешитьОтгрузку = Перечисление.Булево.Да;
		Док.Записать();
	ИСКЛЮЧЕНИЕ
		Сообщить("" + Г + " : Документ " + Док.НомерДок + " заблокирован. Пробую еще раз ...");
		Если Г > 20 Тогда
			Сообщить("Неудачка...");
			Прервать;
		КонецЕсли;
	КОНЕЦПОПЫТКИ;
	Г = Г + 1;
КонецЦикла;

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

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

  • Я все никак не могу разобраться, что меня больше умиляет - говнокод на адынэсе или сам адынэс. В любом случае, радость двойная.
    Ответить
  • Посмотрел это и долго думал. В итоге так и не понял, чего хотел автор.
    Ответить
    • Автор хотел 20 раз попытаться провести документ, если сразу не получилось. А вдруг на 19-й раз удастся?
      Ответить
  • Всё равно после первого прогона Г уже не будет равен нулю, значит цикл остановится.
    Ответить
    • И я даже представляю как это перечисление было рождено на свет божий.
      Сказали студенту, добавь значит "разрешить отгрузку" на форму.
      Добавил.
      Ну и что это за флажок? Непонятно. Сделай, "Разрешить отгрузку да и нет"
      Тот почесал репу, потом еще раз почесал, вместо того что бы прочесть книжку, высрал такое говно.
      Думаю как-то так.
      Ответить
    • Я тоже ломал над таким голову, потом дошло: Обычное булево дает возможность обрабатывать "Истина" и "Ложь", а Перечисление.Булево позволяет ловить "Да", "Нет", Неопределено и "ПустаяСсылка"
      Ответить
        • Иногда логика 1с-ников бывает настолько сложна, что не умещается в ограниченные категории Ложности и Истинности... Тут нужно познать дзен.
          Ответить
          • Все гораздо проще.
            В 7.7, если память ни с кем не изменяет, нет встроенного типа "Булево". На уровне кода все сравнивается с 0 и 1.
            Но если эти 0 и 1 выводить на форму, то у тети бухгалтера случится коллапс головы. Поэтому во всех типовых на семерке было такое перечисление.
            Ответить
            • В 7.7 такое вроде есть. Я знаю точно что в 7.0 такого не было
              Ответить
  • Процедура ПровестиВоЧтоБыТоНиСтало(ДокументОбъект)
    ДатаОкончания = ТекущаяДата() + 24 * 60 * 60;
    Пока ТекущаяДата() <= ДатаОкончания Цикл
    Попытка ДокументОбъект.Записать(РежимЗаписиДокум ента.Проведение); Исключение КонецПопытки;
    КонецЦикла;
    КонецПроцедуры
    Ответить

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

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

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


    8