Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
20 сен 2021, 05:09

Отключение вывода сообщения об ошибки записи элемента справочника при Отказ=Истина в "ПередЗаписью" модуля объекта

Автор oooo800, 30 авг 2020, 22:46

0 Пользователей и 1 гость просматривают эту тему.

oooo800

Самописная конфигурация, платформа 8.3.16, управляемые формы.
Для отдельных элементов справочника (по некоторым критериям, в частности - некоторым пользователям) нужно запретить устанавливать/снимать пометку удаления.
Через роли не подходит - ибо для других элементов (не подходящих под критерии) установка/снятие пометки не запрещается.
Для этого в модуле объекта этого справочника в событии ПередЗаписью делаю проверку на установку/снятие пометки удаления и другие критерии.
Устанавливаю Отказ=Истина и вывожу Сообщить("бла-бла-бла")
Но при этом выводится окно с предупреждением, что не удалось записать такой-то элемент.
Возможно отключить вывод этого сообщения ?

LexaK

ЦитироватьВозможно отключить вывод этого сообщения ?
скорее всего отключить не получится - это механизм платформы!
такой же как вопрос при редактировании и закрытии формы: Данные были изменены. Сохранить изменения?
если только целиком переводить редактирование объекта в несвязанную форму и Запись помещать в Попытку .... 

но можно сделать проще, так как вы всеравно выводите бла-бла-бла, то в процедуре ПередЗаписью, добавьте команду


Процедура ПередЗаписью(Отказ)
//где-то в коде
        Отказ = Истина;
        ...

        //в конце
        Если Отказ Тогда
    ВызватьИсключение "бла-бла-бла";
        КонецЕсли;
КонецПроцедуры


сообщение: Не удалось записать
заменится на ваше: "бла-бла-бла"
ответ Понравился? (в смысле пригодился?)

oooo800


LexaK

oooo800, опять-же, это не совсем профессиональный подход, вернее совсем не профессиональный.
Перехватываете события кнопок: ОК, Записать и др.
там вызывайте свою процедуру проверки. и если она прошла, тогда записываете объект
иначе выводите свои сообщения и объект даже не записываете (соотвественно не будет служебного сообщения об отказе)
ответ Понравился? (в смысле пригодился?)

oooo800

Цитата: LexaK от 01 сен 2020, 10:15
oooo800, опять-же, это не совсем профессиональный подход, вернее совсем не профессиональный.
Перехватываете события кнопок: ОК, Записать и др.
там вызывайте свою процедуру проверки. и если она прошла, тогда записываете объект
иначе выводите свои сообщения и объект даже не записываете (соответственно не будет служебного сообщения об отказе)

Эта ситуация возникает при установке/снятии пометки удаления.
Вся эта ситуация "появляется" во время установки/снятия пометки удаления при Отказ=Истина в ПередЗаписью(Отказ) модуля объекта справочника.
Как "отловить" установки/снятия пометки, иным способ, пока е знаю.
Установка/снятие может быть и через форму элемента (если "выведен" на нее соответствующий реквизит) , но чаще делается в форме списка.
Есть варианты "отловить" установку/снятие в модуле формы элемента ?
Так понимаю помечается же элемент, но пометка (в данном случае) происходит в форме списка.

Но "копки Ок" здесь нет.
Она выведена из игры. :)

LexaK

ЦитироватьЭта ситуация возникает при установке/снятии пометки удаления.
Вся эта ситуация "появляется" во время установки/снятия пометки удаления при Отказ=Истина в
Дорогая редакция! Это делается следующим образом
в событии ПереЗаписью
1.определяете что производится пометка на удаление, тогда
2.проверяете ваше условие можноУдалять()
3.если нельзя,
    а.Выдаете свое сообщение!!!
    б.тут-же убираете пометку удаления, ПометкаУдаления = Ложь;
    в.Отказ при этом не торогаете, он так и остается Отказ = Ложь;

Все!!! системного сообщения не будет! объект/элемент запишется НО БЕЗ ПометкиУдаления 
ответ Понравился? (в смысле пригодился?)

oooo800

Такой вариант, по запарке не рассмотрел (ранее) .
В этом случае осталось попобороть вывод сообщения "Пометка удаления" с именем элемента.
Добавлено: 01 сен 2020, 21:47


А еще лучше в это же окошко вывести свой текст.......
Добавлено: 02 сен 2020, 00:00


Но "ПоказатьОповещениеПользователя" доступно только на клиенте. :dfbsdfbsdf:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск