Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

v8: Отменить сообщение платформы

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

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

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

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

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

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

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


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

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует