|
Определение выполненных уведомлений | ☑ | ||
---|---|---|---|---|
0
NIGHTHUNTER
18.05.22
✎
13:14
|
У меня суть задачи такая.
1). При создании документа, определенному кругу лиц нужно отправить уведомление на почту. 2). При установке реквизиту статус документа, значения закрыта (заявка), уведомление уходит определенному пользователю. Я озадачился. Как при повторном перепроведении отследить что уведомления уже были отправлены. И потерялся в этой задаче. С реквизитами булево, как я думал что будет все просто, что то не пошло. Регистр сведений я не создавал. Как можно отслеживать отправку при создании и статусе закрыта? Другими реквизитами? Не булево? |
|||
20
hhhh
18.05.22
✎
13:36
|
(17) ты не читаешь ответы? Еще раз, процедура ПриЗаписи() выполняется ПОСЛЕ записи документа, менять там реквизит бесполезно, он не запишется.
|
|||
21
nodrama
18.05.22
✎
13:43
|
На форме документа
&НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) Объект.ПРОВЕРКАПИСЕМ=Истина; КонецПроцедуры В Модуле документа Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) ПРОВЕРКАПИСЕм=Истина; КонецПроцедуры Работает и так и так в чем трабла то? |
|||
22
NIGHTHUNTER
18.05.22
✎
13:48
|
(21) Нельзя перед записью!!!!!!!!!!
У меня идет проверка перед отправкой уведомлений. И она не сработает, так как там уже Истина. |
|||
23
nodrama
18.05.22
✎
13:49
|
(22) А местами поменять не пробовал код ? и проверки
|
|||
24
nodrama
18.05.22
✎
13:50
|
Процедура ПередЗаписью()
Если ПроверкаПисем=Ложь тогда ОтпрвимПисьмо(); КонецЕсли; ПРОВЕРКАПИСЕм=Истина; КонецПроцедуры не ? |
|||
25
nodrama
18.05.22
✎
13:51
|
Проверил на Истину, сделал все что тебе нужно
Установил Истину Забыл Профит |
|||
26
hhhh
18.05.22
✎
13:57
|
(25) да у него номера документа нет перед записью, поэтому человек и мучается.
|
|||
27
Kassern
18.05.22
✎
13:58
|
(24) а потом при проведении 1ска говорит, извиняй, но у тебя отказ истина) и документ не записался в базу. А рассылка то уже ушла))
|
|||
28
Kassern
18.05.22
✎
14:00
|
ему уже написали, что и как правильно сделать в соседней ветке. Не хочет ТС понимать, как производится запись объектов в базу, что такое транзакция и в какой момент присваивается номер к документу. Хотя все это можно посмотреть самому, тупо поставив точки останова и пройтись разок в отладке...
|
|||
29
nodrama
18.05.22
✎
14:04
|
(26) аа ему еще и номер нужен ;)
|
|||
30
hhhh
18.05.22
✎
14:13
|
(29) ну он же письмо отправляет, в тексте письма должны быть номер и дата документа.
|
|||
31
NIGHTHUNTER
18.05.22
✎
14:30
|
(24) Хотелось бы понять хитрость. наверное не доходит (((.
|
|||
32
Kassern
18.05.22
✎
14:32
|
(31) нет тут никакой хитрости, перед записью еще транзакция не начата, поэтому можно присвоить значение реквизиту, чтобы он впоследствии записался в базу. Но и номера документа у вас не будет, так как он еще не присвоен.
|
|||
33
NIGHTHUNTER
18.05.22
✎
14:32
|
(25) У меня отправка писем происходит в процедуре ПриЗаписи()
А ПередЗаписью() происходит перед. Что мне тогда можно делать в процедуре перед записсью, если она происходит перед отправкой? А нужно после? До меня не доходит ((. |
|||
34
NIGHTHUNTER
18.05.22
✎
14:33
|
(24) В процедуре перед записью, нет реквизитов для отправки, они пусты при создании документа!!!!!
|
|||
35
Kassern
18.05.22
✎
14:33
|
(33) читайте (32) (28) я вроде все разжевал вам.
|
|||
36
NIGHTHUNTER
18.05.22
✎
14:34
|
(28) Понятно как, регистр сведений делать нужно.
|
|||
37
Kassern
18.05.22
✎
14:34
|
(34) вы либо их заполните ранее, либо сделайте как вам написали через регистр.
|
|||
38
Kassern
18.05.22
✎
14:36
|
Перед записью, ДАЖЕ если у вас были заполнен номер, это еще не гарантия, что документ не уйдет в отказ при проведении к примеру. Что делать будете, если документ не проведется,а письмо вы уже отправили с номером?
|
|||
39
NIGHTHUNTER
18.05.22
✎
14:36
|
(37) Ранее, это что то новое!!!! И не известное.
Да регистр я в курсе, остается его пробовать делать. |
|||
40
Kassern
18.05.22
✎
14:37
|
А если еще и нумерацию обнулить (чтобы освободились номер не присвоеные) и с этим номер уже другой документ отправить, вы как потом все это разгребете и объясните?
|
|||
41
NIGHTHUNTER
18.05.22
✎
14:37
|
(38) Я хочу делать стабильное решение. И из всего описанного я понял, что это только регистр сведений.
|
|||
42
Kassern
18.05.22
✎
14:37
|
(39) для вас тут многое новое и неизвестное, как выяснилось...
|
|||
43
NIGHTHUNTER
18.05.22
✎
14:37
|
(40) выход один, регистр сведений.
|
|||
44
Kassern
18.05.22
✎
14:38
|
(41) либо регистр, либо повторная перезапись документа после отправки письма, что бредово.
|
|||
45
hhhh
18.05.22
✎
14:38
|
(39) отправляйте письма регламентным заданием по расписанию, несколько раз в день.
|
|||
46
NIGHTHUNTER
18.05.22
✎
14:38
|
(42) Для меня тут выяснилось. то что это можно сделать только используя регистр сведений!!!!!
|
|||
47
NIGHTHUNTER
18.05.22
✎
14:39
|
(45) Делать это я хотел при записи документа. И для каждого документа только 2 раза, при создании и при записи со статусом закрыта.
|
|||
48
Kassern
18.05.22
✎
14:39
|
(45) у него проблема не как отправить, а как зафиксировать в базе отправку и выбор в реквизит формы в данном контексте корявый с архитектурной точки зрения.
|
|||
49
NIGHTHUNTER
18.05.22
✎
14:40
|
(45) Это к данной задаче думаю не подходит. При записи все должно было функционировать.
|
|||
50
Kassern
18.05.22
✎
14:40
|
(47) при записи вы уже ничего в документ не запишите, поймите наконец
|
|||
51
NIGHTHUNTER
18.05.22
✎
14:40
|
(50) Понял. Только регистр сведений. А то что я хотел никак. Или до меня не доходит в данный момент как.
|
|||
52
NIGHTHUNTER
18.05.22
✎
14:41
|
(48) Вот это правильно!
Проблема в том как зафиксировать факт отправки. |
|||
53
Kassern
18.05.22
✎
14:41
|
(51) я разве вам написал "только"? Читайте еще раз (44)
|
|||
54
hhhh
18.05.22
✎
14:42
|
(47) при записи же объяснили, нельзя, вдруг письмо будет отправляться 5 минут, и человек будет у вас ждать сидеть у монитора, пока документ запишется.
|
|||
55
Kassern
18.05.22
✎
14:42
|
вариантов множество, через регистр выглядит самым оптимальным на первый взгляд
|
|||
56
NIGHTHUNTER
18.05.22
✎
14:45
|
(54) Сделано именно при записи отправка уже!!! Остается зафиксировать факт отправки, только.
Как вы сказали Процедура ПриЗаписи(Отказ) // САМА ОТПРАВКА ЭтотОбъект.УведомлениеПослеСозданияЗаявки = Истина; Записать(); КонецЕсли; Использовать Записать() в процедуре ПриЗаписи() Я не знаю чем это может обернутся. Но что отправка в процедуре ПриЗаписи, это точно. |
|||
57
hhhh
18.05.22
✎
14:47
|
надо проверку вставить, Записать не всегда, а только если Ложь в этом реквизите.
|
|||
58
Kassern
18.05.22
✎
14:47
|
(56) я умываю руки... https://i.makeagif.com/media/7-29-2016/rMuA_R.gif
|
|||
59
YFedor
18.05.22
✎
14:48
|
(55) Поддерживаю, сам так же делал, особенно учитывая (54)
|
|||
60
YFedor
18.05.22
✎
14:56
|
(56) Перед записью проверяешь на предмет изменения статуса, при записи, если статус изменен организуешь отправку письма
|
|||
61
NIGHTHUNTER
18.05.22
✎
15:45
|
(60) Завтра займусь. На сегодня мало меня хватило.
|
|||
62
Мимохожий Однако
18.05.22
✎
17:21
|
(0) Если конфигурация из типовых, то есть регистр Дополнительные сведения. Пиши туда информацию,если документ уже отправлен. Регламентным заданием отправляй документы, которые должны отправляться и пиши в этот регистр при успешной отправке. Документ не должен в себя (в свои реквизиты) записывать дальнейшие операции с ним, если в этом нет острой необходимости.
|
|||
63
NIGHTHUNTER
19.05.22
✎
01:53
|
(60) Да. Все доводы к этому свелись. Сейчас буду пробовать.
Дело в том что мне нужно отправлять не при смене статуса, как это делают. Проверяют ПередЗаписью(), а отправляют ПриЗаписи(), а при создании документа и при закрытии статуса. Сейчас дошло. что это подобное. И я сделаю это сейчас. Думаю получится. Уже без регистра сведений. |
|||
64
kobzon2
19.05.22
✎
07:46
|
(63) Андрей, не забывай что ты еще наплодил тем по одной и той же задаче Установка значения булево реквизиту документа Вот там посмотри сообщения 107-113.
Вкратце, в ПриЗаписи() Записать() уже шляпа, но ладно хочешь так, сделай так. Отправляя письмо при записи документа, ты можешь как минимум затормозить эту самую запись документа, как максимум парализовать работу отдела типа бухгалтерии, т.к. почта может не отправиться по каким то причинам и документ не будет записываться. В конечном итоге тебя просто прибьют там. Если уж решил так, делай вставку по отправке хотя бы через попытку. Опять же подумай, как ты будешь проверять, что письмо действительно отправилось. С регистром зря не захотел. Там несколько хороших вариантов. Можно записывать в регистр то что нужно отправить, то что отправилось, и либо хранить эти записи, либо удалять их сразу после удачной отправки и возвращать в документ уже твою галку отправлено. |
|||
65
Мимохожий Однако
19.05.22
✎
08:36
|
(64) ИМХО. Не в коня корм.
|
|||
66
Kassern
19.05.22
✎
09:11
|
(64) вы походу еще не поняли ТС, у него есть кусочек кода рабочего, который письмо шлет и при проведении документа это работает! И осталось то всего 1 мааааленький шажочек, поставить желанную галочку) А тут выясняется, что подобный подход херня и надо все переделывать по нормальному, вот он и держится за иллюзию, что все почти готово и под это ищет все возможные костыли)
|
|||
67
Мимохожий Однако
19.05.22
✎
09:27
|
(66) ОФФ: Ты, батенька, провидец? ))
|
|||
68
Kassern
19.05.22
✎
09:30
|
(67) нет, но 2 темы по этому поводу и как ТС отчаянно держится за галку в документе, не желая понять, как работает транзакция при проведении документа, говорит об этом.
|
|||
69
NIGHTHUNTER
19.05.22
✎
11:49
|
(64) Да, вот как раз думаю как продолжить, если без регистра.
1). При создании документа. Ну тут можно придумать. наверное. Снова туго соображаю. 2). Но вот статус когда завершена, как то снова теряюсь (((( Какой кстати когд будет с регистром сведений? Для помещения дума записи и для потом ее выборки для проверки, есть ли она уже? Если кому не трудно. А то я все равно сейчас буду искать его. Этот пример. Записи и извлечения из регистра сведений. С РС, все же надежно. |
|||
70
NIGHTHUNTER
19.05.22
✎
11:52
|
(69+) С регистром все же будет верно. осталось решить какова его структура, и код записи, извлечения.
|
|||
71
Kassern
19.05.22
✎
11:55
|
(70) как решите, напишите сюда, обсудим)
|
|||
72
NIGHTHUNTER
19.05.22
✎
11:56
|
(71) РС будет независимый, непериодический? Или подчинен этому регистратору , документу, будет? С которого делаются рассылка этих 2вух уведомлений?
|
|||
73
NIGHTHUNTER
19.05.22
✎
11:57
|
(72+) Правильно наверное что бы регистр был, независимый, непериодический.
|
|||
74
Kassern
19.05.22
✎
11:58
|
(72) а это зависит, что вы собираетесь писать в этот регистр. Если данные только по некоторым документам, тогда можно сделать и подчиненным, если же отмечать еще и произвольные рассылки, тогда лучше непериодическим
|
|||
75
Ryzeman
19.05.22
✎
11:59
|
(66) Это всё как напоминает какой-то сериал. В голове музыка из "реквиема по мечте" и образ найтхантера который пытается сделать невыполнимое: всё же уже почти работает, осталась чёртова галочка...
|
|||
76
Kassern
19.05.22
✎
11:59
|
(72) а это зависит, что вы собираетесь писать в этот регистр. Если данные только по некоторым документам, тогда можно сделать и подчиненным, если же отмечать еще и произвольные рассылки, тогда лучше независимым
|
|||
77
Kassern
19.05.22
✎
12:00
|
(75) погодите, скоро встанет ТС на путь истинный, отбросит костыли и побежит в светлое будущее 1с)
|
|||
78
NIGHTHUNTER
19.05.22
✎
12:00
|
Собираюсь, писать в документ, отправку по одному виду документа.
По каждому документу будет 2 вида отправки. При создании и при закрытии (статус закрыта заявка). То есть по каждому документу, 2 записи. есть или нет. Вот что в нем будет. |
|||
79
NIGHTHUNTER
19.05.22
✎
12:01
|
(78+) Писать собираюсь в регистр....
|
|||
80
Kassern
19.05.22
✎
12:02
|
По поводу периодический или нет. Если вам не нужен срез последних/первых по данному регистру, то можете сделать непериодическим
|
|||
81
NIGHTHUNTER
19.05.22
✎
12:15
|
(80) По каждому документу, всего 2 записи. необходимости в периодичности наверное нет. Только помещать 2 записи.
И извлекать, проверяя есть ли они там. Можно пример? |
|||
82
Kassern
19.05.22
✎
12:16
|
попробуйте, а потом отпишитесь
|
|||
83
Kassern
19.05.22
✎
12:17
|
если у вас проблемы с долгими обновлениями и вы заранее просчитываете все варианты событий, то можете развернуть базу пустышку, создать там документ и регистр и проверять вашу идею.
|
|||
84
Kassern
19.05.22
✎
12:17
|
если концепция верная, то уже ее переносить на тестовую базу вашей конфы. Тогда вам не нужно будет по долгу ждать обновлений
|
|||
85
Ryzeman
19.05.22
✎
12:27
|
(77) ну, дай Бог всё будет как в начале "Форреста Гампа", а не как в конце "Реквиема по мечте")) Хотя в первом случае что б тот отбросил костыли и побежал там возникла опасность (дедлайн) и безнадёжная ситуация, где не на кого больше рассчитывать было
|
|||
86
Kassern
19.05.22
✎
12:30
|
(85) так он писал в соседней ветке "Вчера мне начали угрожать физической расправой, за то что я делаю." (27)
Добавление услуги, доставки в документ Поступление товаров на склад Так что шанс есть) |
|||
87
NIGHTHUNTER
19.05.22
✎
12:33
|
Я стал думать про регистр. Так как с новым если это понятно. А со статусом закрыта, как? Вообще не пойму (((
Есть пример, отправки уведомления при смене статуса. Так это при смене. А тут надо сменить всего раз, на закрыта. а если ещё будут менять, то что будет я не улавливаю. |
|||
88
NIGHTHUNTER
19.05.22
✎
12:35
|
Про пример записи и получения данных в регистр спрашиваю, так как, тоже там может быть все не просто.
И хотелось бы быть уверенным в решении. |
|||
89
hhhh
19.05.22
✎
12:35
|
(87) а что такое "закрыта заявка"? это оплачена, изготовлена? или что?
|
|||
90
Kassern
19.05.22
✎
12:38
|
(87) где хранится статус заявки? Если вам нужно вначале отправить письмо, а потом поставить статус закрыта, то я бы отправку писем вообще бы из документа выпилил, а регламентным заданием на основании регистра делал бы рассылку и при успешном отправлении менял уже статус документа.
|
|||
91
NIGHTHUNTER
19.05.22
✎
12:38
|
(89) Статус заявки. Перечисление. Выбрали Закрытая, нажали записать. Должно уйти уведомление что такая то заявка дата, номер, закрыта.
И отметиться должно что это так. Я хотел галку поставить. И что бы в следующий раз. Уже не отправлялось повторно ничего. Ни как при создании нового. Что можно сделать ПередЗаписью() наверное. Ни при закрытии. Вот этот момент, вынудил отказаться от галок. Как его можно было бы обработать ПередЗаписью() ? Глова снова сдала, и не понимает. |
|||
92
NIGHTHUNTER
19.05.22
✎
12:39
|
(90) Работы много. Уже подобные примеры есть. Я так делаю и все. И хочу забыть про это. закрыть заявку. надеюсь будет работать.
|
|||
93
Kassern
19.05.22
✎
12:40
|
(91) так в этом случае все просто. Вы можете сверить данные записанные в базу, с текущими данными. Если в базу записан статус не равный закрыт, а сейчас у вас в транзакции статус закрыт, значит отправляете письмо. Вот и все дела без всяких галок
|
|||
94
NIGHTHUNTER
19.05.22
✎
12:41
|
(93) Сейчас проверю.
|
|||
95
NIGHTHUNTER
19.05.22
✎
12:43
|
(93) Дело в том что эти моменты мне не знакомы. По этому сильно заторможенно доходит, общая ситуация.
|
|||
96
Kassern
19.05.22
✎
12:47
|
в общем у ссылки, пока вы не завершили транзакцию, будет старая информация, либо если запрос сделаете к этому документу. А у объекта, который у вас в транзакции уже новые данные, которые вы сейчас записываете в базу
|
|||
97
NIGHTHUNTER
19.05.22
✎
12:48
|
(96) А если потом там что то снова понаменяют? Я не могу охватить всю сьтуацию, все возможные моменты.
|
|||
98
Kassern
19.05.22
✎
12:49
|
(97) если откатят статус и снова поставят закрыт, вы снова вышлите письмо и это логично
|
|||
99
NIGHTHUNTER
19.05.22
✎
12:50
|
(98) А галка же проставится? Она как в условии будет учавствовать?
|
|||
100
Kassern
19.05.22
✎
12:50
|
(99) зачем вам галка?
|
|||
101
Kassern
19.05.22
✎
12:51
|
читайте еще раз (93) только внимательно
|
|||
102
NIGHTHUNTER
19.05.22
✎
12:54
|
(101) Я вас, понял. Хотя регистр уже сделал. Но понимаю что лишний он. Можно галками наверное обходиться, или проверками. Я запутался снова.
Мне разобраться теперь только самому в этом. |
|||
103
Kassern
19.05.22
✎
12:57
|
(102) если вам нужно сделать рассылку первую при создании документа, и где-то отметить, что вы ее сделали, то регистр для этого подходит. Вы его можете и для второй рассылки использовать, чтобы у вас была история когда вы и что отправили. Пишите условие типа, Если Статус=Закрыт И В регистре нет записи со второй рассылкой, то делаем вторую рассылку КонецЕсли
|
|||
104
NIGHTHUNTER
19.05.22
✎
12:58
|
(103) Как будет пример (93) ? Нужно делать глобальную переменную? Учитывая что отправка у меня происходит ПриЗаписи() ?
|
|||
105
Kassern
19.05.22
✎
12:58
|
Либо выпилить вообще рассылку из документа, тогда в регистре вы указываете, что вам нужно отправить и булево ресурс отправлен. Регламентным заданием вы проходите по этому регистру и ищете строчки, где у вас есть записи с отправлен=Ложь и по ним делаете рассылку и ставите истина.
|
|||
106
Kassern
19.05.22
✎
13:00
|
я бы поступил как в (105) В регистре бы отразил имя печатной формы, или информацию по рассылке. В регламентом задании бы ее формировал и рассылал и ставил бы, что отправлена. Так же можно 2 даты хранить, первая, когда запись появилась, а вторая - дата отправки.
|
|||
107
Kassern
19.05.22
✎
13:01
|
а в модуле объекта документа я лишь создавал нужные строчки в этом регистре, первую, Если ЭтоНовый() Тогда. Вторую, когда статус поменялся на закрыт
|
|||
108
NIGHTHUNTER
19.05.22
✎
13:02
|
(106) Я понимаю, но я оставляю отправку при записи. И сейчас нужно сделать, по каждому документу 2 отправки.
При создании и при статусе закрытая. Сделать и оставить. |
|||
109
kobzon2
19.05.22
✎
13:05
|
(102) Регистр лишним не будет. Ты поковыряй ERP там почти все действия через регистры. Быстро делается запись в регистр, которую потом отрабатывает регламентное задание.
Можешь например сделать регистр с измерением ДокументСсылка и ресурсами ДокументСоздан, ДокументСозданОтправлен, ДокументСатусЗакрыт, ДокументСтатусЗакрытОтправлен. В зависимости от действия с документом, находить запись, проверять проставленные уже галки и ставить новые. Можешь еще добавить реквизит эл. почта, если при разных отправках нужно отправлять разным получателем. |
|||
110
NIGHTHUNTER
19.05.22
✎
13:09
|
(109) я создал такой регистр http://joxi.ru/vAWEVYvU3apedm
Увидев это, мне показалось это слишком уныло (((. настроение упало (. |
|||
111
vicof
19.05.22
✎
13:13
|
(110) Чо ты как девочка с настроением?
|
|||
112
kobzon2
19.05.22
✎
13:35
|
(110) У тебя упало, у нас поднялось. Это лучшее что ты сделал за последние 3 дня.
Вот теперь в своем ПриЗаписи() не отправляй почту сразу, а проставляй галочки в регистре. Потом сделай пока обработку, которая будет тупо перебирать записи регистра и имитировать отправку почты. Как всё отладишь, перенесешь в регламентное задание. Например, создаешь документ новый, проверяешь что он новый и пишешь в регистр. Потом обработкой перебираешь записи регистра, находится твоя запись без галки на ПриСоздании, отправляется, если успешно ставится эта галка. Если галка уже стоит, значит не отправляется. С изменением статуса так же, но возможно надо добавить еще один реквизит или ресурс, что там у тебя.., чтобы первая галка указывала на задачу для отправки письма оповещающего об изменении статуса документа, вторая, что это оповещение выполнено. Либо с одной, поставил-отправил-снял. Я бы еще добавил реквизит информацию об ошибки, чтобы если не отправилось, туда записалась причина и реквизит Итерация на мах значение 3 или 5. Чтобы подобные записи достигшие максимума можно было отследить, а не ждать пока тебе не скажут что весь день почему то не получают уведомления. |
|||
113
Kassern
19.05.22
✎
13:47
|
делаем ставки господа, думаете к 200ой записи в данном топики получится добиться "счастья" у ТС?)
|
|||
114
Kassern
19.05.22
✎
13:47
|
*топике
|
|||
115
kobzon2
19.05.22
✎
13:57
|
(113) Теперь сомнительно, раз настроение у Андрея упало.
|
|||
116
hhhh
19.05.22
✎
15:24
|
(110) и тут умудрился накосячить. Правильней создать ресурсы, а не реквизиты.
|
|||
117
hhhh
19.05.22
✎
15:26
|
(112) не сможет он новый документ записать в регистр.
|
|||
118
kobzon2
19.05.22
✎
15:32
|
(117) Это уже он сам пусть придумает как сделать. Ему уже предлагали варианты, типа ПриЗаписи() проверять на новый и возводить флаг, а после записи отправлять. Получается теперь добавился регистр сведений, а галочку так и не получается поставить...
|
|||
119
Kassern
19.05.22
✎
15:37
|
(117) можно и подчиненным сделать регистратору, можно хранить не ссылку какой-нибудь уникальный номер, например номер интернет заказа, или что там есть. В общем есть множество вариантов как обыграть, было бы желание)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |