Имя: Пароль:
1C
1С v8
Проведение документа
0 first_may
 
23.12.13
12:32
Добрый день, при проведени документа проверяю условие и если оно не выполняется, то пишу

    Если ДоговорКонтрагента.ЗапрещенаОтгрузкаПоДоговору Тогда
        Сообщить("По договору запрещена отгрузка!");
        Отказ = Истина;
        Возврат;
    КонецЕсли;

После нажатия кнопки Ок, сообщение выдается, движения по регистрам не проходит, но значок (галочка) о том, что документ проведен, отображается в спике. Как сделать так, что бы этой галочки нетбыло?

Вроде мелочь, но не пойму как это сделать. Заранее спасибо.
1 mikecool
 
23.12.13
12:34
в каком событии это написано? в призаписи?
2 mikecool
 
23.12.13
12:34
делай в самом начале обработки проведения
3 first_may
 
23.12.13
12:36
Пишу в самом начале процедуры:


Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    
Если ДоговорКонтрагента.ЗапрещенаОтгрузкаПоДоговору Тогда
    Сообщить("По договору запрещена отгрузка!");
    Отказ = Истина;
    Возврат;
КонецЕсли;
    
...
4 Wobland
 
23.12.13
12:36
понять, что форма списка не обновилась, или что документ таки проведён
5 ale-sarin
 
23.12.13
12:37
Может возврат убрать?
6 first_may
 
23.12.13
12:38
(5) если возврат убрать, то выдается Предупредение и форма документа не закрывается.
7 first_may
 
23.12.13
12:38
(4) что значит понять?
8 mikecool
 
23.12.13
12:38
(4) ну форма то должна обновиться автоматом, хотя - хз
9 mikecool
 
23.12.13
12:39
(7) док уже был проведен?
10 skunk
 
23.12.13
12:39
если документ был проведен ... то он и останется проведеным
11 first_may
 
23.12.13
12:39
проведен не был проведен
12 first_may
 
23.12.13
12:42
Если написана строка
Отказ = Истина;
то выдается сообщение о том, что операция не выполнена и форма документа не закрывается, а если этой строки нет, то выдается сообщение, форма документа закрыввается и в журнале ставиться галочка проведения напротив этого документа, хотя движения никакого нет по регистрам.
13 Wobland
 
23.12.13
12:43
(8) я в БП3 после обмена всегда ф5 жму
14 Wobland
 
23.12.13
12:44
(12) отсутствие движений и непроведённость - разные вещи ваще-т
15 first_may
 
23.12.13
12:45
(14) я знаю... просто для пользователя выдается сообщенрие о том, что документ не проводится и тут же бац - в журнале стоит галочка проведения...
16 ale-sarin
 
23.12.13
12:49
(12) Так а чего Вы хотите? Просто закрыть документ с сообщением об ошибке, и все? А сохранить его надо? Или закрыть не записывая?
17 first_may
 
23.12.13
12:54
Просто закрыть документ с сообщением об ошибке, сохранить и не ставить галочку проведения
18 dj_serega
 
23.12.13
12:57
(0) может ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) попробуешь?
19 first_may
 
23.12.13
13:18
Получилось, если надо кому нибудь:

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    
Если ДоговорКонтрагента.ЗапрещенаОтгрузкаПоДоговору Тогда
   Сообщить("По договору запрещена отгрузка!");
   ЭтотОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
Возврат;
КонецЕсли;
20 ИС-2
 
naïve
23.12.13
13:25
(8) нет.
(0) Надо жимкать F5 в списке документов

конфа какая? В типовых перед проведение просходит чистка движений документа. В типовых как-то работает запрет на проведение...

(19) руки надо отрывать за такое. Поставь точку остановки и посмотри сколько раз зайдет в обработку проведения
21 ale-sarin
 
23.12.13
13:25
(19) А если он был проведен, я открыл перевыбрал плохой договор, и нажал ОК. Че будет?
22 dervishsy
 
23.12.13
13:25
(19) Прикольно. Я правильно понял что "ЗапрещенаОтгрузкаПоДоговору" можно установить в любой момент?
А если перепровести документы которые были до того как этот флаг был возведен они отменятся?
23 MKZM
 
23.12.13
13:27
(19) )
24 first_may
 
23.12.13
13:31
(20) поставил, в обработку зашли один раз, самый первый и все... я понял твою мысль, что возможно зацикливание, ничего такого нет...
25 1Сергей
 
23.12.13
13:33
(6) >> если возврат убрать, то выдается Предупредение и форма документа не закрывается.

так и должно быть
26 Enders
 
23.12.13
14:00
(19) это пять =)))
Интересно, насколько быстро ему съедят мозг за такое)
27 first_may
 
23.12.13
14:12
(26) я знаю что это некорректно и разработчики 1С меня не только убьют, но как решить задачу?
28 singlych
 
23.12.13
14:49
(27) В ПередЗаписью поменяй
РежимЗаписи = РежимЗаписиДокумента.Запись;
29 Classic
 
23.12.13
14:54
(0)
Скорее всего где-то дальше Отказ меняется на Ложь
30 Enders
 
23.12.13
15:41
Ну сам посуди какая отмена проведения?
Если документ проведен - значит раньше Отгрузка была не запрещена и всё было хорошо. Так нафига отменять проведения у документов?
Особенно весело, если вдруг надо будет залезть в прошлые период и добавить комментарий какой-нить. А оно опа, и сняло проведение...зашибись... А товар то мы отгрузили...

Если документ не проведен, то он и не проведется.
31 first_may
 
23.12.13
16:20
(30) конечно все правильно. Но вот новый документ, заполнили, нажимаем Ок - проверяем условие, если не выполняется выдаем сообщение и надо форму закрыть.

Так вот, если писать Отказ = Истина; то форма не закроется.
если не писать это, то форма закроется, но в списке напротив документа будет стоять галочка о проведении.
32 Enders
 
23.12.13
16:25
Ну логично как бы, если вы не пишите Отказ=Истина; то документ проводится.
А зачем закрывать форму?
Если человек создал документ, на форме кликнул "Ок", а оно ему сказало нельзя провести, то у него должен быть выбор:
А) или просто записать документ;
Б) перевыбрать договор и провести;
В) не записывать документ вообще.
33 first_may
 
23.12.13
16:27
(32) согласен... я может не говорил, но если запустить типовую обработку справочников и документов на проведение документов? смотреть и ждать когда выдаст такое сообщение и исправлять?
34 х86
 
23.12.13
16:29
(31)если в обработке проведения отказ=истина, то форма не закроется
закрывай её после записи, только это делать тоже не желательно
35 Enders
 
23.12.13
16:39
Если запустить групповую обработку, то форма открываться не будет, и документ проводится не будет, если он уже не проведен.
36 1Сергей
 
23.12.13
16:41
(31) аутор забыл заполнить один реквизит, нажал ок, компутер ему говорит "вы не заполнили реквизит, до свидания!" и труба. Надо заново создавать и заполнять документ
37 1Сергей
 
23.12.13
16:42
(33) а как иначе?
38 first_may
 
23.12.13
16:54
Ясно, спасибо.
39 first_may
 
23.12.13
17:10
Я понял что был не прав, тем более, что если запустить групповую обработку, то форма открываться не будет, появится сообщение и документ проводится не будет. А у меня было написано Предупреждение(...), все из за этого.
40 х86
 
23.12.13
17:24
(39)модальные окна в приЗаписи и ОбработкаПроведения это зло
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн