Убрать системное сообщение "Документ непроведен" #215731


#0 by Smitt
В модуле формы документа документа имеется конструкция: Собственно, Проблема: Если документ не провелся, вываливается системное сообщение "Документ не проведен". А транзакция открыта. И пока юзверь не кликнет "Ок" остальные нервно курят. Я может туплю, но не нашел, как это сообщение отключить?
#1 by ТелепатБот
#2 by romix
А что за "еще разная ерунда", если не секрет?
#3 by FreeFin
#4 by romix
Что делает "разная ерунда"-то? Остаток на складе проверяет?
#5 by AeDen
А проверку на разную ерунду вынести до транзакции?
#6 by Smitt
РазнаяЕрунда управляет связанными документами (в т.ч. их проведение, т.е. в модуль проведения текущего дока это всё не запихать). Вынести до транзакции низззя, т.к. действия связаны с проведением текущего. документа, а других юзерофф много. Могут "успеть" вклиниться в промежуток между
#7 by Smitt
Проблема в том, что оное сообщение вываливается до окончания исполнения метода Провести. Т.е. на самой строке "Провести" и висим...
#8 by FreeFin
Сообщение или предупреждение? Если второе=найти в коде что-то: Предупреждение("Ничегонеполучилось",10); = поставь таймаут, будет отрубаться через 10 сек... или переделай в Сообщить("Ничегонеполучилось").
#9 by Smitt
Если бы так просто :) Это "Предупреждение" системное, т.е. вызывается не из кода, а самим движком. Пример: Модуль документа: КонецПРоцедуры Если из формы вызовем Провести, получим оное сообщение
#10 by Mikki
а если так попробовать НачатьТранзакцию Если Провести=1 Тогда
#11 by Smitt
не-а. предупреждение выводится ПОСЛЕ окончания процедуры ОбработкаПРоведения, но ДО того, как Провести вернет "0". Т.е. висим непосредственно ВО ВРЕМЯ  исполнения "Провести"
#12 by France
вытащи "РазнаяЕрунда управляет связанными документами (в т.ч. их проведение, т.е. в модуль проведения текущего дока это всё не запихать). " из процедуры "ОбработкаПроведения".
#13 by Smitt
дык РазнаяЕрунда НЕ в обработке проведения. Она в модуле формы, откуда вазываем провести. см . Да вопрос, собственно, не в том, как избавиться от вызова проведения внутри транзакции. Это я и сам додумаю, если припрет. Вопрос в том, можно ли системное предупреждение обойти.
#14 by Smitt
Или под "вытащи" подразумевается "вызови" ? Тогда тоже нельзя, т.к. нельзя проводить другие доки в контексте модуля проведения.
#15 by France
нет не "вызови".. а обработка исключения не поможет?.. да, еще, между делом  - если в модуле проведения другого документа транзакция была отменена, то отменена и транзакция, запущенная в ... т.е, если "СделатьРазнуюЕрунду" завершится ошибкой "Документ не проведен", то транзакция уже отменена.
#16 by Smitt
"а обработка исключения не поможет?" нет, не поможет. Исключений то не возникает. "если в модуле проведения другого документа транзакция была отменена, то отменена и транзакция, запущенная в ... " - именно для этого всё и выполняется в единой транзакции. Нужно либо сделать всё, либо - ничего.
#17 by France
эта.. еще раз вот так делать: НачатьТранзакция СделатьРазнуюЕрунду" ОтменитьТранзакцию  лишняя, если в "СделатРазнуюЕрунду" получили ошибку(соответственно и транзакция завершилась) ..и блокировки при сообщении "Документа не проведен" не будет..
#18 by Smitt
Ну, согласен, можно было бы отказаться от использования "ОтменитьТранзакцию". Но проблемы это не решает. Считаем, что Ерундаотработала без ошибок. СделатьЕрунду и Провести должно выполниться внутри общей транзакции. Весим на "Провести" . Как не крути, транзакция активна.
#19 by France
хм.. надо проверть - получается, что в любом случае, если есть сообщение "Документ не проведен" - все отдыхают..
#20 by Smitt
угу. Собственно и вопрос был, можно ли выключить это сообщение...
#21 by romix
Разные системные предупреждения (не только это) можно заменять на сообщение в трее (tooltip).
#22 by Smitt
Во! Это попробую, спасибо! Сообщение в трее не прерывает работу программы?
#23 by romix
На указанное число секунд прерывает. Там сообщения жестко зашиты в код - при желании могу из файла их брать...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С