| 
    
        
     
     | 
    
  | 
v7: Чего нельзя делать внутри транзакции? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        ado    
     12.08.11 
            ✎
    12:55 
 | 
         
        Господа, напомните сабж, плиз.
  
        Валится опработка с ошибкой "Ошибка при выполнении процедуры ЗафиксироватьТранзакцию", никак не могу найти, в чем косяк.  | 
|||
| 
    1
    
        Kreont    
     12.08.11 
            ✎
    12:56 
 | 
         
        (0) Снять НачалоТранзакции и ошибка покажется там где реально что-то не так     
         | 
|||
| 
    2
    
        Попытка1С    
     12.08.11 
            ✎
    12:57 
 | 
         
        Попытку?     
         | 
|||
| 
    3
    
        Попытка1С    
     12.08.11 
            ✎
    12:58 
 | 
         
        Хотя не..     
         | 
|||
| 
    4
    
        Sserj    
     12.08.11 
            ✎
    12:58 
 | 
         
        Так надо искать что не так сделалось, типа проводился документ и не провелся.     
         | 
|||
| 
    5
    
        Sserj    
     12.08.11 
            ✎
    13:00 
 | 
         
        Тобишь обычно лучше делать так:
  
        ТранзакцияУспешна = 1; НачатьТранзакцию(); ... Попытка ЧтонибутьПровести ИлиЧтонибутьЗаписать Исключение ТранзакцияУспешна = 0; КонецПопытки Если ТранзакцияУспешна = 1 Тогда ЗафиксироватьТранзакцию(); Иначе ОтменитьТранзакцию(); КонецЕсли;  | 
|||
| 
    6
    
        ildary    
     12.08.11 
            ✎
    13:09 
 | 
         
        (5) еще лучше после строки Исключение вставить 
  
        Предупреждение( "Ошибка при записи/проведении:" + ОписаниеОшибки(), 120 );  | 
|||
| 
    7
    
        ЧеловекДуши    
     12.08.11 
            ✎
    13:09 
 | 
         
        Лучше так 
  
        ТранзакцияУспешна = 1; Попытка НачатьТранзакцию(); Исключение // Обломись, не могу заблокировать таблицы БД Возврат КонецПопытки ... Попытка ЧтонибутьПровести ИлиЧтонибутьЗаписать Исключение ТранзакцияУспешна = 0; КонецПопытки Если ТранзакцияУспешна = 1 Тогда ЗафиксироватьТранзакцию(); Иначе Попытка ОтменитьТранзакцию(); Исключение //Что - то не так :) КонецПопытки КонецЕсли;  | 
|||
| 
    8
    
        Кириллка    
     12.08.11 
            ✎
    13:09 
 | 
         
        (0)можно делать все, но некоторые действия будут влиять на успешность завершения транзакции.     
         | 
|||
| 
    9
    
        ado    
     12.08.11 
            ✎
    13:47 
 | 
         
        (5) Хмммм ...     
         | 
|||
| 
    10
    
        Кириллка    
     12.08.11 
            ✎
    13:51 
 | 
         
        (5)после
  
        ЧтонибутьПровести ИлиЧтонибутьЗаписать уже транзакция откатилась и нет смысла ее отменять.  | 
|||
| 
    11
    
        andrewks    
     12.08.11 
            ✎
    15:35 
 | 
         
        (0) СтатусВозврата(0);     
         | 
|||
| 
    12
    
        Torquader    
     12.08.11 
            ✎
    23:19 
 | 
         
        У меня такое было, когда BeginTransaction() написал один раз, а CommitTransaction() - два раза.
  
        И долго-долго чесал репу, пока не посчитал.  | 
|||
| 
    13
    
        Aleksey    
     12.08.11 
            ✎
    23:53 
 | 
         
        На ноль делить нельзя внутри транзакции     
         | 
|||
| 
    14
    
        Torquader    
     13.08.11 
            ✎
    00:03 
 | 
         
        (13) Ошибки времени исполнения от транзакции не зависят и выводятся сразу, а транзакция при этом автоматически откатывается - причём в сообщении об ошибке о транзакции ни слова не будет.     
         | 
|||
| 
    15
    
        ado    
     15.08.11 
            ✎
    09:00 
 | 
         
        (12) Та не, посчитал, всё верно, вроде ...     
         | 
|||
| 
    16
    
        ado    
     15.08.11 
            ✎
    18:20 
 | 
         
        Аааа, вот она, скотина. Во глубине процедур, вызываемых внутри транзакции был такой код:
  
        
 
 И вот когда срабатывало исключение ... Щас найду коллегу, который это написал, и скажу ему разные нехорошие слова.  | 
|||
| 
    17
    
        andrewks    
     15.08.11 
            ✎
    18:21 
 | 
         
        (16) зачётно )     
         | 
|||
| 
    18
    
        andrewks    
     15.08.11 
            ✎
    18:21 
 | 
         
        +(17) напомнило: 
  
        "по колёсам стучал? ну, тогда не знаю..."  | 
|||
| 
    19
    
        ado    
     15.08.11 
            ✎
    18:25 
 | 
         
        В который раз убеждаюсь, что исключения -- зло.     
         | 
|||
| 
    20
    
        andrewks    
     15.08.11 
            ✎
    18:27 
 | 
         
        (19) та не, просто надо уметь их готовить.
  
        тут дело-то не в исключении, а в гКоде  | 
|||
| 
    21
    
        ado    
     15.08.11 
            ✎
    18:34 
 | 
         
        (20) Точнее зло -- затыкать исключениями то, что можно обычной проверкой проверить.
  
        Впрочем, такая проверка, как в (16) говорит о несколько бОльших проблемах в консерватории, но это уже другая тема.  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |