|
Запись в попытке | ☑ | ||
---|---|---|---|---|
0
Aston
17.09.12
✎
14:10
|
Добрый день.
v. 8.1.15.14. Получаю СправочникОбъект в базе_Com. Если не найден в базе, из который подключаюсь - пытаюсь записать. Выдает "Код не уникален". Меняю код. Выдает "Ошибка при установке значения атрибута контекста (Код)"... Если же я до первой попытки записи меняю код - без проблем, записывает... что я делаю не так? Примеры кодов: Попытка СправочникОбъек​т.Записать(); Исключение Попытка СправочникОбъек​т.Код = "3452фыуе3"; СправочникОбъек​т.Записать(); Исключение КонецПопытки КонецПопытки // Выдается ошибка. Если целиком меняю на Попытка СправочникОбъек​т.Код = "3452фыуе3"; СправочникОбъек​т.Записать(); Исключение КонецПопытки //Работает без проблем Что не так? и как реализовать попытку записи с существующим кодом, в случае ошибки - установить новый код? |
|||
1
Maxus43
17.09.12
✎
14:15
|
сомневаюсь что вложенные попытки поддерживает
|
|||
2
Aston
17.09.12
✎
14:18
|
(1) пробовал вывести из попытки - то же самое.. т.е. писал так
Попытка СправочникОбъек​т.Записать(); Исключение НеЗаписали = Истина; КонецПопытки Если НеЗаписали Тогда Попытка СправочникОбъек​т.Код = "3452фыуе3"; СправочникОбъек​т.Записать(); Исключение КонецПопытки КонецЕсли; Результат тот же... Ошибка.. |
|||
3
МишКа
17.09.12
✎
14:19
|
Какая ошибка?
|
|||
4
Kreont
17.09.12
✎
14:20
|
А между этими первыми строками:
Попытка СправочникОбъек​т.Записать(); Исключение Нету еще чего-то, что влияет на заполнение, создание элемента справочника? |
|||
5
МишКа
17.09.12
✎
14:21
|
И где инициализация переменной "НеЗаписали"?
|
|||
6
vde69
17.09.12
✎
14:22
|
(1) вложеные попытки поддерживаются, только вот КОМ обьект не умеет работать с ошибками,
по этому в КОМ соединении для обработку ошибки на удаленной стороне можно сделать только в удаленной процедуре. (0) такое поведение обусловлено тем, что при генерации ошибки в первом исключении 1с получат не ошибку записи а ошибку метода КОМ обьекта, и у всего КОМ обекта устанавливается флаг необработаной ошибки... если ты эту конструкцию внешешь в код удаленной базы и будешь вызывать эту процедуру - все прокатит |
|||
7
Maxus43
17.09.12
✎
14:23
|
(6) ыть, не знал :)
|
|||
8
Aston
17.09.12
✎
14:23
|
(6) - да спасибо - только что пробовал.. действительно так... странно, но...
|
|||
9
vde69
17.09.12
✎
14:27
|
(8)(7) вообщето в сабже должна быть ошибка "в данной транзакии уже были ошибки",
собственно это по тому что первая ошибка обработана для КОМ и НЕ обработана для обьекта. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |