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

    −165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Попытка
    	ДокО.Записать();
    Исключение
     	Попытка
    		ДокО.Записать();
    	Исключение
    	КонецПопытки;	
    КонецПопытки;

    а вдруг!

    Запостил: alexinzaz, 10 Сентября 2014

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

    • Надо сделать цикл и будет вообще зашибись.
      Ответить
    • Нет что вы, хороший человек не способен такое гавно написать! Не надо наговаривать!
      Просто там внутри:
      bool b = true;
      
      void Записать()
      {
          if (b)
      	{
      		b = false;
      		throw;
      	}
      }
      Ответить
    • > а вдруг!
      А в 1с нет блокировок и т.п.? Т.е. чего-то, что может временно помешать записи.

      Для SQL на уровне изоляции SERIALIZED, к примеру, вполне нормальная практика повторять транзакцию несколько раз, если сервер возвращает определенное исключение...
      Ответить
      • есть в 1с блокировки. и уровней изоляции несколько.
        Ответить
    • Я когда "маленький" был тоже так делал, но было 3 вложения с нарастающей паузой между попытками, в файловой нетленке.
      Ответить
    • Пока Истина Цикл

      Попытка
      ДокО.Записать();
      Прервать;
      Исключение
      КонецЦикла;
      КонецПопытки;

      Чтоб уж наверняка
      Ответить

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