Имя: Пароль:
1C
1С v8
Двойное проведение документа
0 alexshape
 
21.09.17
12:05
Привет Всем. По наследству достался код

    попытка
            РеализацияТоваровУслуг.Записать(РежимЗаписиДокумента.Проведение);
        исключение
            Отказ=истина;
            РеализацияТоваровУслуг.Записать(РежимЗаписиДокумента.Запись);
        КонецПопытки;
        //СписокРеализ

Только вот в момент Исключения документ еще не записан, и тут же проходит еще одна запись. Выдает ошибку Наличия товаров. Т.е. На первое проведение товара хватает, а на второе нет.

Можно ли так вообще делать, и как узнать не проводит, если никаких ошибок нет
1 Джинн
 
21.09.17
12:06
?! Что это?
2 h-sp
 
21.09.17
12:07
(0) РежимЗаписиДокумента.Запись - это не проведение.
3 Tatitutu
 
21.09.17
12:11
у тебя в процедуре ПередЗаписью() что происходит
проверка наличия остатка - вот и не дает ни записать не провести
при проведении - сначала запись, потом проведение
4 alexshape
 
21.09.17
12:13
(3) В том то и дело, что вплоть до конца процедуры при записи в строке  РеализацияТоваровУслуг.Записать(РежимЗаписиДокумента.Проведение);  Отказ = ложь, но все равно прилетает Исключение
5 aleks_default
 
21.09.17
12:15
До ОписаниеОшибки()в СП ты видимо еще не дошел.
6 Рэйв
 
21.09.17
12:16
(0)Зачем ты проверяешь остатки ПриЗаписи? Проверяй только при проведении.
7 alexshape
 
21.09.17
12:19
ОписаниеОшибки() = ""
8 Вафель
 
21.09.17
12:21
лучше так
РеализацияТоваровУслуг.Записать(РежимЗаписиДокумента.Запись);
РеализацияТоваровУслуг.Записать(РежимЗаписиДокумента.Проведение);
9 aleks_default
 
21.09.17
12:23
Его в Сообшить выводить надо. В отладке оно не кажет.
Вообще на вопрос "Можно ли так вообще делать? ответ - можно и в некоторых случаях даже нужно.
"И как узнать не проводит, если никаких ошибок нет" - так не проводит или даже не записывает?
10 alexshape
 
21.09.17
12:25
Мне одно не понятно, как все это выполняется вплоть до РеализацияТоваровУслуг.Записать(РежимЗаписиДокумента.Проведение); ПРи записи в модуле объекта, и после выполнения Ошибка?
11 alexshape
 
21.09.17
12:25
(9) А какая разница?
12 aleks_default
 
21.09.17
12:28
(11)Тебе ясна разница между ЗАПИСЬЮ документа и его ПРОВЕДЕНИЕМ?
13 alexshape
 
21.09.17
12:39
(12) Да, ясна. Но проблема в том что он все проверки проходит на строке

РеализацияТоваровУслуг.Записать(РежимЗаписиДокумента.Проведение);

Но все равно выдает попадает в исключения
14 Михаил Козлов
 
21.09.17
12:42
(13) Могут быть еще подписки, которые вырабатывают отказ.
Можно сначала записать, а потом провести. Правда 2 раза запись, вместо 1-ой.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан