|
Запись документа с неуникальным номером - в ОписаниеОшибки() пусто | ☑ | ||
---|---|---|---|---|
0
N-S-B
24.05.18
✎
12:30
|
Программно записываю документ, если номер неуникальный, то при записи очевидно появляется исключение "Значение "123" поля "Номер" не уникально".
Если же запись документа обернуть в Попытку Исключение, то в ОписаниеОшибки() в этом случае будет пусто. Почему и можно ли как-то отловить это исключение? |
|||
1
DrShad
24.05.18
✎
12:38
|
а зачем ты записываешь с неуникальным номером?
|
|||
2
N-S-B
24.05.18
✎
12:47
|
Парсю файл и на основании него создаю документы с нужными номерами. Если номер неуникальный, то надо обработать это исключение соответствующе. Но проблема в том, что понять по исключение, что ошибка именно в неуникальности номера нельзя, так как в ОписаниеОшибки() в этом случае пусто.
|
|||
3
catena
24.05.18
✎
12:59
|
(2)У меня не пусто.
|
|||
4
N-S-B
24.05.18
✎
13:08
|
(3) Баг платформы оказался. Если ОписаниеОшибки() запихнуть в переменную, то текст ошибки есть, хотя отладкой ОписаниеОшибки() что до присвоения переменной, что после - пустая строка.
Платформа 8.3.11.3034 |
|||
5
Cool_Profi
24.05.18
✎
13:09
|
(4) А ты её отладчиком смотрел? Так это никогда не работало...
|
|||
6
DrShad
24.05.18
✎
13:09
|
а если сразу поискать неуникальный номер, до записи
|
|||
7
N-S-B
24.05.18
✎
13:13
|
(6) Увеличит время выполнения, там тысячи документов создаются
|
|||
8
DrShad
24.05.18
✎
13:15
|
(7) чем увеличит? у тебя при записи что-то отличное от этого происходит?
|
|||
9
N-S-B
24.05.18
✎
13:17
|
(8) А ну да, может и не увеличит)
|
|||
10
catena
24.05.18
✎
13:19
|
(4)"Применять данную функцию имеет смысл только внутри операторных скобок Исключение - КонецПопытки, так как в ином случае она вернет пустую строку. Помогает в выдаче диагностики при возникновении ошибок.
Не рекомендуется использовать для отображения пользователю. " В табле отладчика - это и есть "иной случай". |
|||
11
N-S-B
24.05.18
✎
13:23
|
(10) Ну естественно я ее и проверяю внутри Исключение - КонецПопытки
|
|||
12
Aleksey
24.05.18
✎
13:27
|
(8) Загружается 10 000 документов из них возможно 1 документ будет с не уникальным номером (но это не точно). Думаешь 10 000 поисков по всей базе в поисках, а есть ли такой номер у других документов, не сильно повлияет на общую производительность?
|
|||
13
catena
24.05.18
✎
13:35
|
(11)Тогда как понимать фразу "хотя отладкой ОписаниеОшибки() что до присвоения переменной, что после - пустая строка."?
|
|||
14
N-S-B
24.05.18
✎
13:41
|
(13)
Попытка Документ.Записать(); Исключение Ошибка = ОписаниеОшибки();//Вот тут точка останова Возврат; КонецПопытки; При остановке ОписаниеОшибки() - пусто На следующем шаге (на Возврате) ОписаниеОшибки() - по-прежнему пусто, а в Ошибка уже текст |
|||
15
catena
24.05.18
✎
13:44
|
(14)Вот я и говорю, что вычисление в табло - это уже "иной случай", описанный в СП. Это ж не переменная, чтобы хранить значение.
|
|||
16
DrShad
24.05.18
✎
13:45
|
(12) а как по твоему платформа проверяет уникальность номера? не на каждом ли документе?
|
|||
17
DrShad
24.05.18
✎
13:47
|
+(16) да и не нужно 10 000 раз искать, достаточно собрать все номера в массив и один раз найти уже существующие
|
|||
18
alxxsssar
24.05.18
✎
13:48
|
может перед загрузкой запросом вытащить все номера в таблицу, а в процессе загрузки к таблице обращаться? чтобы не перебирать всю базу на каждом загружаемом документе?
|
|||
19
DrShad
24.05.18
✎
13:48
|
а при записи документа еще кучу времени на выполнение кода в процедурах ПередЗаписью и т.п.
|
|||
20
alxxsssar
24.05.18
✎
13:51
|
(19) зачем при записи? я так понял он обработкой грузит. Вот в ней и прописать. Отработал поиск, нашел заданное значение - пропускаем строку, идем дальше, не грузим этот документ.
|
|||
21
DrShad
24.05.18
✎
13:53
|
(20) читай тему внимательно, я именно за этот вариант - меня убеждают в обратном
|
|||
22
alxxsssar
24.05.18
✎
13:54
|
(21) просю просчения
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |