1. 1C / Говнокод #18368

    −105

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    Г = 0;
    Пока Г = 0 Цикл
    	ПОПЫТКА
    		Док.РазрешитьОтгрузку = Перечисление.Булево.Да;
    		Док.Записать();
    	ИСКЛЮЧЕНИЕ
    		Сообщить("" + Г + " : Документ " + Док.НомерДок + " заблокирован. Пробую еще раз ...");
    		Если Г > 20 Тогда
    			Сообщить("Неудачка...");
    			Прервать;
    		КонецЕсли;
    	КОНЕЦПОПЫТКИ;
    	Г = Г + 1;
    КонецЦикла;

    Запостил: dsfix, 19 Июня 2015

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

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

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