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

Сообщить при провести и закрыть

Сообщить при провести и закрыть
Я
   pumba055
 
15.06.21 - 15:59
Коллеги, задача такая.
Есть два реквизита документа, при проведении документа проверять что один больше другого, если больше, то выводить сообщение пользователю.
Соответственно в самой обработке проведения я не делаю сообщить, а то вдруг групповое проведение документов как говориться)
Мне надо при нажатии кнопки записать и закрыть - только при проведении когда запускаю его с формы проверить два числа и вывести сообщение пользователю.
   Irbis
 
1 - 15.06.21 - 16:06
ПередЗаписью РежимЗаписи.Проведение
   ГдеСобакаЗарыта
 
2 - 15.06.21 - 16:07
Зачем при проведении то? Сделай декорацию надпись, при изменении реквизитов обновляй. Пользователь в любой момент времени видит больше у него там или меньше
   pumba055
 
3 - 15.06.21 - 16:08
соответственно при записи я выведу это сообщение, а потом в форме в которой вывелось сообщение оно закроется) и пользователь ничего не увидит
   RomanYS
 
4 - 15.06.21 - 16:08
(1) ОбработкаПроверкиЗаполнения
   pumba055
 
5 - 15.06.21 - 16:09
Одно сравниваемое значение в регистре храниться, другое в документе
   RomanYS
 
6 - 15.06.21 - 16:10
(5) без разницы
(3) оно не закроется, если будет ошибка проверки (Отказ)
   Irbis
 
7 - 15.06.21 - 16:10
(4) А не факт, что при любой записи нужно проверять. Но можно и так
   pumba055
 
8 - 15.06.21 - 16:14
Не, не, никаких отказов не нужно! Нужно просто сообщение
   pumba055
 
9 - 15.06.21 - 16:17
ОбработкаПроверкиЗаполнения еще раньше чем Проведение вызывается - т.е. еще хуже((, я при записи или проведении вывела сообщение на форму, а потом при закрытии этой формы он закрывает окно с моим сообщением
   Filin
 
10 - 15.06.21 - 16:19
Ну выводи сообщение в другую форму.  Обычно в форму - владельца.
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Текст сообщения";
Сообщение.ИдентификаторНазначения = Форма.УникальныйИдентификатор;
   pumba055
 
11 - 15.06.21 - 16:22
как в обработке проведения узнать форму владельца или просто у формы узнать ее форму владельца
   arsik
 
12 - 15.06.21 - 16:23
НУ в привяжись к событию в форме документа "ПослеЗаписиНаСервере".
   pumba055
 
13 - 15.06.21 - 16:26
а в форме ПослеЗаписиНаСервере как мне понять что это проведение - что мне нужно или запись - что мне не нужно
   arsik
 
14 - 15.06.21 - 16:27
Там же параметры есть
   arsik
 
15 - 15.06.21 - 16:28
+(14) Да и просто проверь. Если документ проведен, то тогда это проведение (бывают конечно исключения, но ими можно пренебречь).
   _Дайвер_
 
16 - 15.06.21 - 16:32
Я бы пересмотрел вообще решение, после проведения сообщения выводить что одно больше другого, ИМХО
   pumba055
 
17 - 15.06.21 - 16:34
ну так хотят для информации)
   _Дайвер_
 
18 - 15.06.21 - 16:34
А вообще в модуле формы есть ПередЗакрытием и ПриЗакрытии , туда копай
   _Дайвер_
 
19 - 15.06.21 - 16:35
Тогда сообщение будет выводиться уже после проведения, в момент закрытия
   _Дайвер_
 
20 - 15.06.21 - 16:39
Или как в (12) , там есть параметры ПараметрыЗаписи в них можешь понять что это проведение
   pumba055
 
21 - 15.06.21 - 16:39
т.е получается ПослеЗаписиНаСервере мне надо сравнить два значения, если есть разница то свои сообщения запихнуть в какую-то промежуточную константу и потом ПриЗакрытии формы выводить эти сообщения
   Filin
 
22 - 15.06.21 - 16:40
(11) Это зависит от конкретного случая. В общем случае это примерно так:
ЭтаФорма.ВладелецФормы.Родитель
   pumba055
 
23 - 15.06.21 - 16:43
а еще вопрос - есть ПолучитьСообщенияПользователю() а каким способом они набираются? т.е. как их насоздавать чтобы потом получить
   _Дайвер_
 
24 - 15.06.21 - 16:45
(21) Нет, запись в регистре у тебя у же есть, ссылка на проведенный документ тоже со значением, тебе остается только получить их и сравнить. Никакие константы тебе не нужны. Можно это сделать в одном месте, ничего передавать не надо.
   _Дайвер_
 
25 - 15.06.21 - 16:46
(23)
Глобальный контекст (Global context)
ПолучитьСообщенияПользователю (GetUserMessages)
Синтаксис:
ПолучитьСообщенияПользователю(<УдалятьПолученные>)
Параметры:
<УдалятьПолученные> (необязательный)
Тип: Булево.
Признак необходимости удаления полученных сообщений из списка.
Истина - удалять.
Значение по умолчанию: Ложь.
Возвращаемое значение:
Тип: ФиксированныйМассив.
Описание:
Получает массив объектов СообщениеПользователю, которые еще не были выведены пользователю.
Такое может происходить при работе в регламентных заданиях, на стороне сервера или в Web-сервисах.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
При удалении сообщений с помощью данного метода не удаляются сообщения, полученные с помощью метода ПолучитьСообщенияПользователю фонового задания.
См. также:
СообщениеПользователю
Глобальный контекст, метод Сообщить
Использование в версии:
Доступен, начиная с версии 8.2.
   pumba055
 
26 - 15.06.21 - 16:58
чтобы ПолучитьСообщенияПользователю их надо насоздавать и где тут об этом написано не вижу
   pumba055
 
27 - 15.06.21 - 16:59
есть пример насоздвать сообщений, а потом их сразу все получить ПолучитьСообщенияПользователю()
   _Дайвер_
 
28 - 15.06.21 - 17:05
(27) Описание:
Получает массив объектов СообщениеПользователю, которые еще не были выведены пользователю.
Такое может происходить при работе в регламентных заданиях, на стороне сервера или в Web-сервисах.
   _Дайвер_
 
29 - 15.06.21 - 17:11
(27) Тебе это не нужно, используй вообще ПоказатьОповещениеПользователя()
   pumba055
 
30 - 15.06.21 - 17:12
а можно примерчик
 
 
   pumba055
 
31 - 15.06.21 - 17:14
в студию)
   _Дайвер_
 
32 - 15.06.21 - 17:14
(30) Сколько тебе платят?)
   pumba055
 
33 - 15.06.21 - 17:23
За поцелуй!
   pumba055
 
34 - 15.06.21 - 17:26
Чмоки чмоки)
   pumba055
 
35 - 15.06.21 - 17:44
Процедура ПослеЗаписи(ПараметрыЗаписи) получается что рановато выводить сообщение в ФормуРодитель, на этом этапе я еще не знаю о том, закрывается после проведения форма или нет, без промежуточной переменной получается никак?
   pumba055
 
36 - 15.06.21 - 19:11
Не получается получить все сообщения, подскажите что не правильно    

&НаСервере
Процедура Команда1НаСервере()

    МассивСообщений = Новый Массив;
    
    Сообщение1 = Новый СообщениеПользователю();
        Сообщение1.Текст = "111";     
    МассивСообщений.Добавить(Сообщение1);
        
    Сообщение2 = Новый СообщениеПользователю();
        Сообщение2.Текст = "222";      
    МассивСообщений.Добавить(Сообщение2);
    
    ВсегоСообщений = ПолучитьСообщенияПользователю();

КонецПроцедуры
   Mort
 
37 - 15.06.21 - 21:47
(0) Пользователи не читают сообщения. Программируйте с этой точки зрения.
   Mort
 
38 - 15.06.21 - 21:49
Если документ нельзя провести - сообщите техподу ясное послание как отморозить пользователя. Если можно - ничего не говорите пользователю. Всё равно эта обезьяна ничего не запомнит и вам не скажет.
   Mort
 
39 - 15.06.21 - 21:51
Если кого-то возмутило моё предыдущее сообщение:
Если писать программу для идиотов, только идиоты будут её пользоваться. Если пользователь понимает что нужно для проведения документа - он это сделает. А с идиотом Вы не договоритесь. Любыми сообщениями.
   ДедМорроз
 
40 - 15.06.21 - 22:00
Есть такое понятие как Уведомление.
Оно всплывает и какое-то время висит,еще можно сделать,чтобы висел колокольчик,чтобы пользователь гарантированно отреагировал.
Здесь оно в самый раз.


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.