Имя: Пароль:
1C
1С v8
v8: Отменить сообщение платформы
,
0 sem4cnt
 
23.01.13
18:27
Процедура ОбработкаУдаленияПроведения(Отказ)
   Результат = ПолучитьСтатусДоставки(Ссылка);
   Если Результат <> Неопределено Тогда
       
       Статус = Результат.Статус;
       Если Статус <> Перечисления.СтатусыДоставки.КРаспределению Тогда
           Сообщить(Строка(Ссылка)+" заблокирован! Статус: """+Статус+"""");
           Отказ = Истина;            
           Возврат;
       КонецЕсли;
       
       НаборЗаписей = РегистрыСведений.СтатусыДоставкиМаршрутныхЗаданий.СоздатьНаборЗаписей();
       НаборЗаписей.Отбор.МаршрутноеЗадание.Установить(Ссылка);
       НаборЗаписей.Записать();
   КонецЕсли;
КонецПроцедуры
1 Нуф-Нуф
 
23.01.13
18:28
продолжайте наблюдения
2 sem4cnt
 
23.01.13
18:28
После того как выполнена строка: Отказ = Истина, вылазит сообщение платформы, которое вызывается автоматически.

Как его убрать, подскажите знатоки?
3 sem4cnt
 
23.01.13
18:30
Уже третий час с этим сижу...
4 sem4cnt
 
23.01.13
18:33
Упростим для наглядности (или для тех кому лень читать)

Процедура ОбработкаУдаленияПроведения(Отказ)
 
Результат = ПолучитьСтатусДоставки(Ссылка);
   Если Результат <> Неопределено Тогда    
           Отказ = Истина;            
           Возврат; // тут вылазит сообщение платформы
       КонецЕсли;
       
       //какие-то действия...

КонецПроцедуры
5 sem4cnt
 
23.01.13
18:34
Как его убрать?
6 Wobland
 
23.01.13
18:36
переписать платформу?
7 ssh2006
 
23.01.13
18:38
(5) > Как его убрать?

Отказ = Ложь;
8 Нуф-Нуф
 
23.01.13
18:39
(7) все гениальное просто
9 Reset
 
23.01.13
18:41
(5) К сожалению, приходя в голову только кривые пути:
Спрятать кнопку удаления проведения везде и нарисовать свою, где отмену выполнять в попытке.
Второе-(если совсем невмоготу и любые средства позволены)
Делать проверку ПередЗаписью() и вместо Отказ=Истина писать РежимЗаписи = РежимЗаписиДокумента.Запись
10 Reset
 
23.01.13
18:42
+(9) Нормальных путей я не знаю
11 Wobland
 
23.01.13
18:46
самое главное: на зачем?
12 mehfk
 
23.01.13
18:50
(0) Текст "сообщения платформы" предлагаешь угадать или как в том анекдоте "Услуги программиста. Интерпретирую программы и двигаю курсор. Дорого"?
13 Reset
 
23.01.13
18:51
(12) Текст сообщения очевиден
14 mehfk
 
23.01.13
18:55
(13) Жги
15 sem4cnt
 
23.01.13
18:57
(12) Не счел столь важным. Но если это поможет, то: "Не удалось сделать непроведенным "+Ссылка
16 mehfk
 
23.01.13
19:01
(15) Логично. Смотри (7)
17 sem4cnt
 
23.01.13
19:04
(16) Очень умный совет, если надо отказаться от отмены проведения по некоторому условию...
18 fyn
 
23.01.13
19:06
(0) а зачем убирать-то?
19 etc
 
23.01.13
19:06
(7) а транзакцию кто откатывать будет? Дядя Вася?
20 etc
 
23.01.13
19:08
(0) "против системы не попрешь" :)
21 etc
 
23.01.13
19:09
(18) для красоты.
Вообще могли бы сделать возможность подменить сообщение которое выводится. Лентяи.
22 Reset
 
23.01.13
19:14
(21) Ну, "подменить" при сильном желании можно :)
Через жпо опять же:
ВызватьИсключение "Нельзя отменять проведение, вы чо"
23 fyn
 
23.01.13
19:15
(21) т.е. все остальное уже реализовано и работает, а сообщение о невозможности проведения мешает?

ну делайте все проверки перед записью и не будет тогда проблем при проведении )
24 mehfk
 
23.01.13
19:19
(17) Удаление движений = не удалять автоматически + удаляйте движения или не удаляйте движдения программно.
25 sem4cnt
 
23.01.13
19:21
(23) Дано: документ уже проведен. Надо: запретить его удаление (любыми путями в т.ч. программными), если выполняется условие.

Если запихнуть анализируемые условия в процедуру при записи и выставить отказ = Истина там, то вылезет тоже самое окно с предупреждением. :(((
26 Mort
 
23.01.13
19:22
Ещё один хороший способ поднас*ать следующему программисту. Спрятать исключение за общей фразой, чтобы он зоипался её в коде искать.
27 etc
 
23.01.13
19:23
(23) перед записью в модуле объекта тоже вроде как выводит. Только вот большинство проверок как правило в проведении делают. Особенно если по схеме "записал движения а потом контроль" и если что "отказ". Как в УТ.
28 sem4cnt
 
23.01.13
19:24
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда
       Результат = ПолучитьСтатусДоставки(Ссылка);
       Если Результат <> Неопределено Тогда
           Статус = Результат.Статус;
           Если Статус <> Перечисления.СтатусыДоставки.КРаспределению Тогда
               Сообщить(Строка(Ссылка)+" заблокирован! Статус: """+Статус+"""");
               РежимЗаписи = РежимЗаписиДокумента.Запись; // Все равно вылазит долбанное окно!
               //Отказ = Истина;                            // так тоже вылазит!!!
           КонецЕсли;    
       КонецЕсли;    
   КонецЕсли;
КонецПроцедуры
29 Reset
 
23.01.13
19:29
(28) Если появляется сообщение, значит или Отказ устанавливается далее по тексту, или на самом деле происходит какая-л ошибка
30 sem4cnt
 
23.01.13
19:30
(29) Ни то, ни другое...
31 Mort
 
23.01.13
19:30
+(26)  (22) А исключение это не через жпо, а очень даже труъ.
32 Reset
 
23.01.13
19:31
(30)
Я бы на твоем месте оставил как есть (0)
Сообщение платформы не выглядит странным, на фоне дополнительного разъянения в Сообщить.
33 sem4cnt
 
23.01.13
19:32
(31) Да мне не нужно подменять! Нужно убрать. Достаточно моего: Сообщить(Строка(Ссылка)+" заблокирован! Статус: """+Статус+"""");
34 sem4cnt
 
23.01.13
19:32
(32) А если захотят отменить через групповую обработку? ))
35 mehfk
 
23.01.13
19:32
(25) Ради эксперимента - закинь в серверный модуль.
36 Reset
 
23.01.13
19:33
(30) Не может быть "ни то, ни другое". Сообщение об ошибке есть? Значит есть или ошибка, или отказ, который также рассмаривается как "ошибка" при записи (или отмене проведения)
37 Reset
 
23.01.13
19:37
(34) Групповые обработки обычно делают в скобках Попытка
38 sem4cnt
 
23.01.13
19:39
(37) Так попытка удачна будет! Тут не вызывается исключений никаких!
39 Reset
 
23.01.13
19:40
(38) Не понял.
40 sem4cnt
 
23.01.13
19:40
(37) Это к чему было написано?
41 Reset
 
23.01.13
19:41
(38) Попытка перейдет в исключение, ты же отказ ставишь.
42 Reset
 
23.01.13
19:41
(40) К тому, что сообщения, которых ты хочешь избежать, выводитьтся не будут. Я об этом еще в (9) написал.
43 sem4cnt
 
23.01.13
19:42
(41) Не будет исключений! Проверил!
44 sem4cnt
 
23.01.13
19:42
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда
       Результат = ПолучитьСтатусДоставки(Ссылка);
       Если Результат <> Неопределено Тогда
           Статус = Результат.Статус;
           Попытка
           Если Статус <> Перечисления.СтатусыДоставки.КРаспределению Тогда
               Сообщить(Строка(Ссылка)+" заблокирован! Статус: """+Статус+"""");
               
               // РежимЗаписи = РежимЗаписиДокумента.Запись; // Все равно вылазит долбанное окно!


               Отказ = Истина;                            // так тоже вылазит!!!
           КонецЕсли;
       Исключение
           ОК = 1;              // сюда не попадает!!!
           КонецПопытки;
       КонецЕсли;    
   КонецЕсли;
КонецПроцедуры
45 Reset
 
23.01.13
19:43
(43) Хреново проверил
46 sem4cnt
 
23.01.13
19:44
Тогда я тебя не понимаю. Как правильно написать?
47 Reset
 
23.01.13
19:44
(46) Написать что?
48 sem4cnt
 
23.01.13
19:45
Чтобы не вылазило сообщение платформы.
49 Reset
 
23.01.13
19:45
(44) Зачем ты зафичал туда попытку?
50 Reset
 
23.01.13
19:45
(48) Ничего. Это невозможно нормальным способом.
Ненормальные в (9)
51 sem4cnt
 
23.01.13
19:46
(49) Напиши как правильно. Код напиши.
52 Reset
 
23.01.13
19:46
(51) Правильно написать что? :D
53 sem4cnt
 
23.01.13
19:47
(9) = (44) = не работает! = вылазит сообщение платформы!
54 mehfk
 
23.01.13
19:49
(48) Ты можешь программно удалить движения - удаляй. Хочешь - поставь в конфигураторе "не удалять движения автоматически". Нет - мирись с солбщением платформы.
55 Reset
 
23.01.13
19:50
(53) В (9) другое сказано.

Имелось в виду

Попытка
 ДокОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
Исключение
// исли ты установишь Отказ в Истину как в посте (0), попадешь сюда
// но сообщение не будет выведено, т.к. "ошибка перехвачена"
КонецПопытки;
56 Reset
 
23.01.13
19:55
(54) Какое имееют отношение движения и их удаление/не удаление к выводу сообщения в ситуации автора?
57 sem4cnt
 
23.01.13
19:55
(55) откуда ты предлагаешь вызвать код ДокОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
58 Reset
 
23.01.13
19:58
(57) я не это предлагаю, я предлагаю (32) :)

А так - в обработчике собственнонарисованной кнопки. ну написано же.
59 Reset
 
23.01.13
20:00
И на вопрос "Зачем", многократно в теме заданный, ты так и не ответил.
60 mehfk
 
23.01.13
20:05
(56) Автор хочет при некоторых условиях не оменять движения документа, так?
61 Ник второй
 
23.01.13
20:17
(0) Не лохмать бабушку. Сообщение чем мешает ответь?
62 fyn
 
23.01.13
20:35
(25) если документ нельзя редактировать, то форма должна быть в режиме только просмотр, а программно в передзаписью будет отказ или исключение