Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Показать оповещение пользователю

Показать оповещение пользователю
Я
   DmitrYY
 
14.01.22 - 10:10
Всем привет! Есть документ у которого есть реквизит "Задача". Требуется чтобы в системе не было двух документов с одинаковой задачей. Нужно при проведении выполнить проверку и показать оповещение пользователю (если уже есть документ с такой задачей), с ссылкой на документ, на которую можно нажать и открыть документ.
Проблемы в проверке нет, есть проблема с выводом оповещения. Проверку я делаю в модуле объекта "ПередЗаписью", а оповещение можно показать только на клиенте. Видимо нужно по другому совсем делать. В общем нужна помощь, как это все сделать?
   DmitrYY
 
1 - 14.01.22 - 10:11
(0) Если есть в системе документ с такой задачей, то текущий документ не должен проводиться
   Momus
 
2 - 14.01.22 - 10:16
ОбщегоНазначения.СообщитьПользователю лучше же. Можно сразу проблемный реквизит подсветить
   DmitrYY
 
3 - 14.01.22 - 10:20
(2) дело не в подсветке, мне нужно именно оповещение пользователя, чтобы можно было тыкнуть и открыть документ
   Momus
 
4 - 14.01.22 - 10:26
(3) И это оповещение нужно создавать при любом изменении документа (даже другим пользователем)?
   DmitrYY
 
5 - 14.01.22 - 10:28
(4) не при любом изменении документа, а именно при проведении идет проверка, если проверка не прошла, то показываем оповещение со ссылкой на документ
   Momus
 
6 - 14.01.22 - 10:31
(5) Кто проводит? Текущий пользователь из какой-либо формы? Метод доступен только на клиенте, нужно привязываться в форме. Если документ проводит текущий пользователь из формы документа, то почему не добавить это оповещение в контексте формы?
   Momus
 
7 - 14.01.22 - 10:33
Можно добавить регистр сведений и при проведении делать запись в нем, а обработчиком ожидания проверить сообщения, но все равно нужна открытая форма, где будет вызван этот метод.
   DmitrYY
 
8 - 14.01.22 - 10:34
(6) А как, в модуле формы в событии ПередЗаписью нельзя вызвать серверную процедуру(для проверки существования такого же документа), в событии ПередЗаписьюНаСервере можно сделать проверку, но как вернуть результат проверки на клиент и показать оповещение? Без РС никак?
   Momus
 
9 - 14.01.22 - 10:39
(8) Почему нельзя? Внеконтекстный вызов возможен. Параметром передаем ссылку (или значение реквизита, если документ еще не создан) и возвращаем результат есть такой документ или нет.
   Ryzeman
 
10 - 14.01.22 - 10:42
(8) У тебя по самой логике задаче нужна проверка при интерактивном заполнении поля, что бы пользователь не смог задвоить. Так и сделай её на форме.
Ты хочешь интерактивные на интерактивные действия пользователя интерактивно реагировать (показать на форме оповещение) но при этом используешь серверные процедуры объекта...
   Ryzeman
 
11 - 14.01.22 - 10:43
(10)+ к тому же допустим сохранит пользователь задвоенную задачу, а потом из формы списка начнёт проводить, или вообще обработка в регламентном задании. Кто должен увидеть это оповещение будет и где?
   МимохожийОднако
 
12 - 14.01.22 - 10:45
Перед записью сообщай об ошибке  и очищай реквизит задача. При выдаче сообщения есть возможность активировать очищаемый реквизит для правильного ввода. Посмотри в СП СообщениеПользователю.
   DmitrYY
 
13 - 14.01.22 - 10:46
(9) да, оказывается можно, неправильно понял описание из СП. Спасибо
   DmitrYY
 
14 - 14.01.22 - 10:47
(11) оповещение только когда из формы проводится, для формы из списка можно просто вывести сообщение, а для РЗ в журнал записать ошибку.
   DmitrYY
 
15 - 14.01.22 - 10:48
(14) хотя, для формы списка тоже можно наверное вывести оповещение?

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