|
Вывести сообщение в форму списка после нажатия в форме документа "Провести и закрыть" | ☑ | ||
---|---|---|---|---|
0
ADV
24.07.24
✎
19:45
|
При проведении документе "Приобретение товаров" в определенных ситуациях создается "Заказ клиента" (все процедуры на сервере). Нужно об этом радостном событии уведомить пользователя в форме списка "Приобретений товаров", т.к. форма документа закроется. Пробовал по разному, в том числе вот так:
ОбщегоНазначения.СообщитьПользователю("Ура, получилось!", ТекущийОбъект.Ссылка,"Номер","Документы.ПриобретениеТоваровУслуг.ФормаСписка"). Допустил ошибку в параметрах, или направить СообщитьПользователю в другую форму нельзя? Мысль если нельзя: добавить процедуру ПриЗакрытии и из нее ПоказатьОповещениеПользователя, но тогда потребуется сохранять в Поступлении ссылку на созданный заказ клиента, как-то наворочено получается... |
|||
1
Garykom
24.07.24
✎
19:58
|
Перед закрытием формы документа "Приобретение товаров" (надеюсь это происходит уже после создания "Заказ клиента") на клиенте делай Оповестить()
В форме списка его лови в ОбработкаОповещения() и показывай https://forum.infostart.ru/forum9/topic238859/ |
3 |
||
2
Mort
24.07.24
✎
22:43
|
ОбщегоНазначения.СообщитьПользователю("Ура, программа так задрала пользователя сообщениями, что он больше не обращает на них никакого внимания!!!")
|
3 |
||
3
ADV
24.07.24
✎
22:53
|
5 |
|||
4
ADV
24.07.24
✎
23:29
|
Сделал так, вроде работает:
&НаКлиенте Процедура ПриЗакрытииПосле(ЗавершениеРаботы) Если НЕ ЗавершениеРаботы Тогда СозданныйЗаказКлиента = ОбщегоНазначенияКлиентСервер.ПолучитьРеквизитФормыПоПути (ЭтаФорма, "СозданныйЗаказКлиента"); Если ЗначениеЗаполнено(СозданныйЗаказКлиента) Тогда ОповеститьОбИзменении(СозданныйЗаказКлиента); ПоказатьОповещениеПользователя("Создан заказ клиента", ПолучитьНавигационнуюСсылку(СозданныйЗаказКлиента), Строка(СозданныйЗаказКлиента)); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
5
Garykom
24.07.24
✎
23:29
|
(3) Учти что создавать (и записывать) новые объекты (справочники или документы) непосредственно при записи/проведении некоего справочника/документа - архитектурно неправильно!
Правильно это запускать в этот момент фоновое задание (длительное), которое уже вернет результат. Форму из которой запустили фоновое можно блокировать до возврата результата, обработчиком ожидания по адресу временного хранилища периодически проверять https://infostart.ru/1c/articles/1260411/ https://infostart.ru/1c/articles/1793747/ - тут комменты глянь |
6 7 8 |
||
6
Garykom
24.07.24
✎
23:33
|
(5)+ Если этого не сделать - можно получить полную блокировку интерфейса/сеанса у пользователя - так что ему придется его через CTRL+ALT+DEL завершать, а на сервере 1С оно так и останется висеть
Если создание/запись нового объекта попадет на взаимоблокировки |
8 |
||
7
ADV
25.07.24
✎
00:17
|
(5) спасибо, буду это учитывать
|
|||
8
ADV
25.07.24
✎
00:37
|
(5) (6) Но вроде 1С-Архитектор бизнеса фирма достаточно известная? Это в ее материалах https://programmist1s.ru/sozdat-na-osnovanii-programmno/
я обнаружил рекомендацию начинать создавать подчиненный документ в процедуре ПослеЗаписиНаСервере
|
9 |
||
9
Garykom
25.07.24
✎
01:05
|
(8) Фактически там советы уровня "hello world"
Да вполне рабочие но для новичков На практике же в сложных типовых/отраслевых и даже самописных конфах запись/проведение документов очень сложное и долгое С кучей запросов к другим регистрам, например для контроля остатков при проведении Или взаимосвязанные записи в десятки разных регистров при проведении И еще представь что у тебя реальная база с десятками, сотнями и более пользователей работающих онлайн С кучей регламентных/фоновых заданий, всяческих синхронизаций и обменов И да в этих условиях один документ может проводиться пару минут )) И вот у тебя клиент 1С (целиком весь сеанс) заблочится полностью интерфейс, а не как у других типовых всего одна форма блочится и можно переключиться на другую и там дальше работать |
10 |
||
10
lEvGl
25.07.24
✎
01:10
|
(9) эххх верна ли такая архитектура...
|
|||
11
lEvGl
25.07.24
✎
01:18
|
ну типа нажал реализацию и забыл, потом какое то окошко где то внизу одно из ста появилось "не провелозь"
многопоточность ёпырст. важно, чтобы люди такими же были, по факту - последовательность с переменных успехом осилить могут |
12 |
||
12
Garykom
25.07.24
✎
01:59
|
(11) Такая архитектура вполне позволяет не закрывать форму, показывая окошечко (БлокироватьОкноВладельца) с вертящимся индикатором и кнопкой Отмена
Причем другие формы не заблокированы, в них можно работать В отличие от обычного синхронного серверного вызова, который блокирует все |
|||
13
Злопчинский
25.07.24
✎
02:04
|
а не проще сделать две кнопки "Провести" и "Закрыть"...?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |