![]() |
![]() |
![]() |
|
Дамп при записи документа | ☑ | ||
---|---|---|---|---|
0
Stim
18.10.12
✎
16:41
|
такой код:
Попытка ОбъектДок.записать(); Сообщить("Перенумерован документ "+ПредставлениеДокументаДоИзменения+" в документ: "+Строка(стр.документ)); исключение ОбъектДок.Номер = Формат(МаксимальныйНомер - стр.НомерСтроки, "ЧГ=0"); ОбъектДок.записать(); КонецПопытки; когда отладчик заходит в исключение - предприятие вылетает с дампом. Присваиваемый номер при этом: "99999999998" документов с таким номером больше нет. При этом, забавно - если вместо кода выше написать просто ОбъектДок.Номер = Формат(МаксимальныйНомер - стр.НомерСтроки, "ЧГ=0"); ОбъектДок.записать(); без попыток и исключений, то спокойно создается док с номером "99999999998" Почему так? БП 2.0 |
|||
1
Stim
18.10.12
✎
16:42
|
+ в исключение сваливается, когда записывает док с существующим уже номером. выполняется в толстом клиенте, на сервере, в обычных и в управляемых формах - везде с ошибкой
|
|||
2
Vadim_37
18.10.12
✎
16:43
|
Записать() в попытку
|
|||
3
Stim
18.10.12
✎
16:44
|
(2) бесполезно. Городил
Попытка ОбъектДок.записать(); Сообщить("Перенумерован документ "+ПредставлениеДокументаДоИзменения+" в документ: "+Строка(стр.документ)); исключение ОбъектДок.Номер = Формат(МаксимальныйНомер - стр.НомерСтроки, "ЧГ=0"); Попытка ОбъектДок.записать(); исключение КонецПопытки; КонецПопытки; все равно вылетает с дампом |
|||
4
Stim
18.10.12
✎
16:45
|
при этом как-то странно - только для одного типа документов такая ошибка. во всех остальных заходит в исключение и не вываливается.
такое ощущение, что какие-то внутренние таблицы нумерации переполнены |
|||
5
Vadim_37
18.10.12
✎
16:45
|
ну и пес с ним, записывай без попыток. Мож в платформе дело.
|
|||
6
Stim
18.10.12
✎
16:49
|
(5) мне так нужно. полный код:
Попытка ОбъектДок.записать(); Сообщить("Перенумерован документ "+ПредставлениеДокументаДоИзменения+" в документ: "+Строка(стр.документ)); исключение ОбъектДок.Номер = Формат(МаксимальныйНомер - стр.НомерСтроки-100, "ЧГ=0"); ОбъектДок.записать(); НеУникальныеНомера.Вставить(НовыйНомерДокумента, ОбъектДок.Ссылка); КонецПопытки; Для каждого Зн Из НеУникальныеНомера Цикл НовыйНомер = Зн.Ключ; ОбъектДок = Зн.Значение.ПолучитьОбъект(); ОбъектДок.Номер = НовыйНомер; Попытка ОбъектДок.Записать(); Сообщить("Перенумерован документ "+Строка(ОбъектДок.ссылка)); Исключение Сообщить("Повтор номера: " + НовыйНомер + " за пределами данной выборки!"); КонецПопытки; КонецЦикла; |
|||
7
Stim
18.10.12
✎
16:50
|
+ т.е. получается, что в первой попытке док записывается либо как есть, либо с номером 99999999998, следующий - 99999999997 и тд.
а потом уже при обходе структуры НеУникальныеНомера - этим документам даются их номера |
|||
8
Stim
18.10.12
✎
16:50
|
++
ОбъектДок.Номер = Формат(МаксимальныйНомер - стр.НомерСтроки-100, "ЧГ=0"); и даже так не хочет записывать(( |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |