Имя: Пароль:
1C
1С v8
Сломалась транзакция (
,
0 Юзер123
 
naïve
28.09.21
12:44
Добрый день.
Есть обработка которая создает документы в базе 1С Бухгалтерия.
В данном случае идет речь о документе поступление из переработки.


Операция в транзакции выполняется.

Вопрос такой.  Смотрю по отладчику все проходит до конца без ошибок.
В процессе заполнения документа я вижу в отладчике все реквизиты. Он записывается. С номером датой и ссылкой все ок.

в Конце         ЗафиксироватьТранзакцию();     проходит без ошибок.

Но  документ не появляется.

ЖР говорит

https://i.gyazo.com/560af82965f19bf777ae6d7a0ec1dd2d.png

что нетак ?(
1 DrZombi
 
гуру
28.09.21
12:45
(0) Код покажи :)
2 Юзер123
 
naïve
28.09.21
12:45
Точнее так.  После зафиксировать транзакцию ничего не происходит.
3 DrZombi
 
гуру
28.09.21
12:46
(2) Код покажи, У тебя Ошибка в строке № 3400 :)
4 1Сергей
 
28.09.21
12:47
5 Юзер123
 
naïve
28.09.21
12:50
6 Юзер123
 
naïve
28.09.21
12:50
(4) ахахахаа  как смешно.. а по делу?
7 fisher
 
28.09.21
12:51
(0) Посмотри представление несуществующего документа в ЖР, какое записалось при создании, и поищи по нему. Возможно док просто был удален после создания.
8 timurhv
 
28.09.21
12:51
(6) уберите транзакцию на тесте, убедитесь что вывалилась ошибка, исправьте
9 fisher
 
28.09.21
12:53
(7) + Хотя точно не вспомню - пишется ли при удалении представление...
10 DrZombi
 
гуру
28.09.21
12:53
(5) Да
11 Ненавижу 1С
 
гуру
28.09.21
12:55
Возможно фиксируется вложенная транзакция а внешняя отказывается
12 DrZombi
 
гуру
28.09.21
12:55
+(0) Ну, если лениво.
Начни показ, с процедуры "Запустил начало транзакции"
Потом покажи "Выполняю Код"
Потом Покажи А вот тут, после "Запустил начало транзакции", я вызвал "Зафиксировать транзакцию".
13 Юзер123
 
naïve
28.09.21
12:55
(8)  Убрал транзакцию - док создался.
14 d4rkmesa
 
28.09.21
12:57
(0) Дата запрета редактирования, например.
15 1Сергей
 
28.09.21
12:57
(13) Значит не доходит до фиксирования транзакции. Отладчик помомжет
16 Юзер123
 
naïve
28.09.21
12:58
(11) Всего одна она.  Или я не понимаю что то)

Грубо говоря

    НачатьТранзакцию();  

КОД СОЗДАНИЯ И ЗАПОЛНЕНИЯ ДОКУМЕНТА


    Если (ФлТест=0) тогда          

    ЗафиксироватьТранзакцию();
    КонецЕсли;                
    Иначе          
        ОтменитьТранзакцию();          
    КонецЕсли;

В конце вот так.  Типа тестовый прогон для обнаружения ошибок до загрузки.  ( СЕйчас Эта галка не стоит )

Отладчик заходит.

В ) писал)
17 DrZombi
 
гуру
28.09.21
12:58
(16) Ошибка в:    ФлТест=0

Убери ограничение.
18 Юзер123
 
naïve
28.09.21
12:59
(17)  это работало всегда. Работает для других доков...
19 DrZombi
 
гуру
28.09.21
12:59
+ (16) Условие ошибочное. Много Концов по Если :)

  Если (ФлТест=0) тогда          

    ЗафиксироватьТранзакцию();
    КонецЕсли;                
    Иначе          
        ОтменитьТранзакцию();          
    КонецЕсли;
20 Gimalaj
 
28.09.21
13:00
(16) >>Или я не понимаю что то
Почитай вот это: https://habr.com/ru/post/419715/
21 Юзер123
 
naïve
28.09.21
13:08
(19) Там я лишнее раскоментил.  Нет там этого КонецЕсли.
22 Юзер123
 
naïve
28.09.21
15:49
(21) Там ошибка при создании счф была.  ЗАкоментил и все заработало в транзакции..  Спс.
Ошибка? Это не ошибка, это системная функция.