#0
by Tateossian
Всем привет! Делаю следующую схему. Имеется свой (нетиповой) документ. Но частично движения при проведении можно получить из типового. Чтобы не усложнять код (да и просто потому что я ленивый) иду следующим путем: начинаю транзакцию, создаю новый типовой документ при проведении, заполняю его упрощенно, провожу, получаю движения на выходе и делаю отменить транзакцию. Я такую схему делал несколько раз (но не при проведении) и никогда не было проблем, а нынче получаю ошибку: в данной транзакции уже были ошибки. Из чего я делаю вывод, что системой ОтменитьТранзакцию трактуется как ошибка. Почему? И как обойти это? Можно, конечно, создать новый документ, а потом его удалить, но это еще более грубое решение... Использовать экспортные функции нет возможности, так как придется повторять почти всю реализацию типового документа.
#3
by Рэйв
транзакция - это таже самая Попытка. ОтменитьТранзакцию вызывает Исключение как и у попытки, что в Попытке трактуется как ошибка
#4
by YFedor
начинаю транзакцию, создаю новый типовой документ при проведении - вообще не понял кто на ком стоял
#5
by vicof
Потому что при нормальной ситуации транзакции не откатываются. А если воспринимать это как нормальную ситуацию, база данных может придти в не работоспособном состояние.
#7
by vicof
Допустим, во вложенной транзакции я создал элемент справочника, потом понял, что он мне не нужен, транзакции отменил. Потом в основной начал обращаться к этому элементу. А его уже нет в базе.
#8
by Tateossian
Тогда зачем в букваре написано, что канонично нужно делать Попытка НачатьТранзакцию Исключение ОтменитьТранзакцию КонецПопытки ? Это ж получается масло масляное.
#12
by Рэйв
Ну, оно не на 100% одно и тоже ведь.Просто ОтменитьТранзакцию и Исключение имеют одинаковый эффект с точки зрения try-catch
#13
by Borteg
Я так понимаю что вся транзакция обернута в попытку, при записи происходит невосстановимая ошибка, но так как транзакция обернута в попытка, то код продолжает работать, но при следующем обращение к БД происходит вышеупомянутая ошибка Для того чтобы отловить ошибку в попытке пиши исключение Вызватьисключение(ОписаниеОшибки). Кстати подход без исключения неправильный.
#18
by Borteg
ВызватьИсключение напишет на какой строке кода произошла ошибка, а так ты сможешь отловить только ошибка в методе записать, а где ищи свищи сам.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как отменить выход стандартных диалогов при записи дока?
- В данной транзакции уже были ошибки!
- Отменить переход к следующему реквизиту
- "В данной транзакции уже были ошибки". Как обойти ошибку?
- V8 как отменить изменение поля ввода?
- v7: Отменить проведение из открытого документа...
- Запись документа в транзакции и отмена транзакции
- Как откатить всю транзакцию? "В данной транзакции уже происходили ошибки"
- В данной транзакции уже были ошибки, Константы[ИмяПараметраВР], хелп... !!
- поле html документа "на этой странице произошла ошибка сценария"
- Ошибка "в этой транзакции уже происходили ошибки".
- В данной транзакции уже происходили ошибки!
В этой группе 1С
- Не меняется СКД после добавления отчета в справочник "Дополнительные отчеты и обработки"
- Форматирование текста для запроса [решено]
- Сохранение значения реквизита расширения
- DBCC FLUSHPROCINDB обработать сразу несколько БД
- Удалить пустую строку при печати макета
- ШтрихМ - поменялся порядок строк в чеке
- Перезапись регистра сведений (Непериодического, Независимого). Помогите разобраться.
- ЗУП 3.1 Разовые начисления
- Метод недоступен на сервере
- v7: с формировать отчет 1с 7.7 нужна помощь
- отчет по документам, сделать по периодам. СКД
- Сканер штрихкода не правильно сканирует штрихкод
- Формирование финансового результата
- MS SQL Server 2017, tempdb: временные таблицы vs вложенные запросы
- Получение курса валюты на текущую дату в УТ 11.3
- 1C Расширенная конфигурация. Отладчик не идет на Модуль формы Расширенной конфигурации
- ХранилищеЗначения Несоответствие типов при выводе картинки на элемент формы
- Онлайн кассы Штрих версия формата 1.0.5 пробитие кредита, как?
- Разрыв текста запроса в СКД в зависимости от параметра
- УНФ Номенклатура контрагентов/поставщиков