|
Фоновое выполнение кода после закрытия формы Ø (Волшебник 19.12.2024 01:23) | ☑ | ||
---|---|---|---|---|
0
MaryanaR
naïve
18.12.24
✎
16:05
|
КА 2.5.
Подскажите, как правильно выполнить исполнение кода, после проведения документа, чтобы не блокировать работу пользователя? Т.е. пользователь провел документ, после чего начинается исполнение кода, (например, подргузка этих данных на сайт, или изменение элементов справочника, регистров), далее он начинает работу с другими элементами и исполнение кода не блокирует его работу. |
|||
1
MaryanaR
naïve
18.12.24
✎
16:08
|
Запуск желательно производить из формы документа, после проведения, чтобы исключить исполнение кода, при массововм перепроведении документов (что не редкость у нас).
|
|||
2
MaryanaR
naïve
18.12.24
✎
16:11
|
Если поместить в общий модуль свои процедуры и запускать их как фоновые, это то, что нужно?
|
|||
3
maxab72
18.12.24
✎
16:15
|
(2) как вариант.
|
|||
4
Garykom
гуру
18.12.24
✎
16:21
|
(0) 1. РС очередь заданий
2. Подписка или в модуле объекта при проведении писать ссылку в РС 3. Регламентное обрабатывает очередь, можно даже в несколько потоков-фоновых |
|||
5
Мультук
гуру
18.12.24
✎
16:25
|
(0)
А если не начнётся? Или чего хуже начнётся, но конец будет печален. Кто, как и главное когда об этом узнает ? Сценарий: Допустим после проведения документа А, вы запустили фоновое которое должно провести документы Б1, Б2, Б3, Б4 Документ Б1 провёлся, проведение Б2 вызвало ошибку, но фоновое ошибку перехватило, при проведение Б3 фоновое вылетело (упал RPHOST, ну бывает), а до проведения Б4 дело вообще не дошло, фоновое то упало. Что делать будем ? В варианте от Garykom об этом "знает" РС очередь заданий . Но "Кто, как и главное когда об этом узнает ?" |
|||
6
Климов Сергей
18.12.24
✎
16:26
|
(0)
Вариант А. Документ при проведении записывает некое задание в очередь заданий. Это может быть, например, регистр сведений. Регламентное задание по расписанию читает регистр, выполняет задание, удаляет запись. Вариант Б. Документ при проведении не делает никаких движений, или делает необходимый минимум. Ссылка на него пишется в регистр сведений необработанных документов. Регламентное задание (или специальная обработка) читает этот регистр, выполняет нужные действия и удаляет запись из регистра. |
|||
7
MaryanaR
naïve
18.12.24
✎
16:27
|
(5) Какие в итоге рекомендации? Вести журнал с оповещением или выполнять в модуле документа?
|
|||
8
maxab72
18.12.24
✎
16:34
|
(7) Зависит от важности кода. Если это что-то влияющее на регистры - в модуле документа. если рассылка каких-нибудь неважных оповещений - лучше фоновым или регламентным.
|
|||
9
Мультук
гуру
18.12.24
✎
16:36
|
(7)
Всё зависит от денег. Вернее от последствий. Какие-то невыполненные действия можно выполнить через час, завтра, вообще на них забить до закрытия месяца А за какие-то фирма понесёт финансовые потери. Просто должен быть соответствующий мониторинг. |
|||
10
Valdis2007
18.12.24
✎
17:20
|
(5) Но "Кто, как и главное когда об этом узнает ?"
если успешно - удаляешь задачу из рс, нет повторяешь...главное что-бы процедуры были ИДЕНПОТЕНТНЫЕ |
|||
11
Злопчинский
18.12.24
✎
20:11
|
(10) тут не налажать, задание отработает успешно, а по какой-то причине из РС не удалит (ну вот так написан код получился), и получится потом повторное выполнение задания. В каких-то случаях это некритично, а в каких-то случаях таковое должно "блокироваться" и не выполняться повторно...
может такое быть? |
|||
12
Garykom
гуру
18.12.24
✎
20:15
|
(11) в РС добавить ресурсы или реквизиты, туда писать дату начала задания, окончания и результат
удалять уже после для уже начатых повторно не обрабатывать или обрабатывать (типа несколько попыток) это уже на усмотрение |
|||
13
Garykom
гуру
18.12.24
✎
20:17
|
кстати то что хочет ТС - это фактически отражение (отложенное) в регучете в ЕРП/КА
самое простое (точнее не самое простое с точки зрения знаний, но оптимальное) в КА это туда встроиться, если для документа нет - добавить этот механизм |
|||
14
lEvGl
гуру
18.12.24
✎
21:16
|
(5) у меня вот вопрос, на случай если случилось печально
Если перенос, или что там, по имеющимся данным не отработал один раз, то почему он должен отработать со второго, третьего и до бесконечности поднимаемого фонового раза? Обычно ведь проблема в кривых данных, а не в падении рпхоста или сетки Кто то и как то об этом узнал. Узнал пользователь - забил, оно ему не чихало, он дальше работает. Узнал прог - пошел разобрался, тем временем еще два таки же документа прилетело. Ну и тд. В чем профит то Если вопрос стоит денег, как говорили, то подобные действия , как по мне, надо делать в транзакции текущего документа, если печально, то и текущий док провести не получится, пользователь будет думать что не так и исправлять. Если конечно случай не перенеслось да и пес с ним, то как бы да, но и долбить до бесконечности фоновым смысла не видно |
|||
15
Garykom
гуру
18.12.24
✎
21:28
|
(14) в транзакции проведения текущего документа уже и так хватает лишних действий с базой
нагружать еще чем внешним точно нельзя |
|||
16
lEvGl
гуру
18.12.24
✎
21:48
|
(15) :)
за то белый кролик заверещит (с) |
|||
17
Волшебник
18.12.24
✎
21:38
|
(7) Читай меня.
|
|||
18
DrShad
18.12.24
✎
21:38
|
(16) твой кролик пишет (по английски)
|
|||
19
lEvGl
гуру
18.12.24
✎
21:45
|
(18) это достоверно?
|
|||
20
DrShad
18.12.24
✎
21:47
|
(19) ТС ни слова не сказал о том, что они планируют выполнять после проведения документа
а вы тут уже нафантазировали - мама не горюй |
|||
21
lEvGl
гуру
18.12.24
✎
21:59
|
(20) Абстракции были, про перенос на сайты, справочники, регистры, потребности вполне осязаемые - часто бывает, что надо что то с чем то сделать после или во время чего то другого
|
|||
22
DrShad
18.12.24
✎
22:04
|
(21) ну так перенос на сайты это же план обмена + обмен, что тут еще можно лучше придумать?
|
|||
23
DrShad
18.12.24
✎
22:06
|
+(22) изменение справочников после проведения документа!? а нафейхоа нужны такие справочники? регистры сведений же
|
|||
24
lEvGl
гуру
18.12.24
✎
22:08
|
(22) много вариантов, в первую очередь некорректные данные, внесенные пользователем, сайт может отказаться принимать
|
|||
25
DrShad
18.12.24
✎
22:08
|
изменение регистров? что мешает сделать изменение регистров после изменения других регистров (в модуле регистра)?
какие еще нафиг изменения чего-то после проведения документа? только во время проведения формирование вспомогательных объектов или дергание тригеров (например после записи набора записей) |
|||
26
DrShad
18.12.24
✎
22:09
|
(24) регистрация изменений останется в плане обмена, пока не произойдет успешный обмен
|
|||
27
lEvGl
гуру
18.12.24
✎
22:11
|
(26) именно
успешный обмен не случится, пока кто нибудь не обеспечит это |
|||
28
DrShad
18.12.24
✎
22:12
|
(27) тем более выдвигать какие-то варианты решений, не зная конкретной задачи, можно до умопомрачений
|
|||
29
DrShad
18.12.24
✎
22:13
|
вангую: ТС хочет выполнить какой-то говнокод сразу после проведения документа
|
|||
30
MaryanaR
naïve
18.12.24
✎
22:31
|
(23) Тут согласна. Изначально планировался говнокод, который будет просто дублировать типовые серии (стандартный механизм не устроил) и работу с ними. Заняло немалое время множественного выбора в расширении с подстановкой нужных даннных. Далее, понадобилось выгружать данные на сайт, вести учет, писать отчеты. Переделывала 10 раз, пришла к тому, что происходидит много записей, перешла на регистры, прирост времени оказался 0,12 (такое себе). Вернула обратно справочники с указанием документов, ибо отчеты были красивей со справочниками. Вот и вся история. Удаление старых данных у серий и добавление новых, при перепроведении документа хотела повесить на фон, плюс выгрузка на сайт в регламенте, т.к. сайт не типовой, обмен https сервисом, хотела сразу формировать JSON и отпрвавлять на FTP.
По итогу, работу с сериями оставила на Модуле документа (т.к. это важно сделать прямо сейчас и проверить, все ли ок), а обмен повесила на фон. Всем спасибо, говнокодю дальше. |
|||
31
MaryanaR
naïve
18.12.24
✎
22:37
|
(29) увы и ах, бывают моменты, где без "говнокодинга" не обойтись...
|
|||
32
DrShad
18.12.24
✎
22:41
|
(30) твою ж мать.... и все это на ночь глядя, как теперь это развидеть, чтобы уснуть?
гори в аду |
|||
33
MaryanaR
naïve
18.12.24
✎
22:45
|
(29) Я как-то делала рабочий стол менеджера для среднего бизнеса, со спидометрами, где нужно было разработать механизм учета оценки менеджеров, и на основании этих данных отражать цель - факт на шкале со стрелкой. Указывать зеленый, красный цвета в зависимости от показателей продаж и целей. говнокод и колхоз перли через край. НООО, заказчик остался доволен, и пользуется данным механизмом уже 3 года.
Важней ведь, что заплатили, и все работает, а не то, как это выглядит для вас, и, как написано. |
|||
34
MaryanaR
naïve
18.12.24
✎
22:46
|
(32) пфф, стандартная работа для 1с ника - ночь. Монопольный режим, все дела.
|
|||
35
DrShad
18.12.24
✎
22:49
|
(33) да кто тебя спрашивал вообще? расскажи это все Гению1С он тебя поймет и не только
|
|||
36
MaryanaR
naïve
18.12.24
✎
22:50
|
(32) Я недавно собеседовалась в дочку Росатом, дак они там переписали модуль перепродажи так, что он выполнялся 2 часа (стандартный справлялся за пару секунд. Автоматизация, чего вы хотели), но, они забыли про себестоимость, поэтому хреначили просто закуп +5%. Им норм, бухи орут, аудиторы орут. Говнокодеры везде, смиритесь, мы захватили этот мир.
|
|||
37
DrShad
18.12.24
✎
22:50
|
(34) это стандарт для говнокодеров )))
|
|||
38
MaryanaR
naïve
18.12.24
✎
22:51
|
(35) Фу, какой токсик. Я, может, пообщаться с опытным человеком хотела, а он нос воротит. Ну иди, спи, не смею задерживать.
|
|||
39
DrShad
18.12.24
✎
22:53
|
(38) не с того начала
|
|||
40
MaryanaR
naïve
18.12.24
✎
22:54
|
(37) Не совсем поняла, а как вы добавляете новые объекты в расширение, без монопольного доступа. Может я и наивна, но не бесстындно тупа. Обновление рабочих конфигураций, адаптация расширений под обновления, все это делается ночью или в выходные, как мной, так и моими, более "дряхлыми" коллегами.
|
|||
41
DrShad
18.12.24
✎
22:56
|
(40) вот нахрена мне это все в моей голове?
|
|||
42
MaryanaR
naïve
18.12.24
✎
22:56
|
(39) А с чего необходимо начинать общение с опытным человеком, как не с вопроса о говнокодинге? )
|
|||
43
DrShad
18.12.24
✎
22:57
|
(42) поцелуй меня в плечо
|
|||
44
MaryanaR
naïve
18.12.24
✎
22:57
|
(41) Самое смешное, что вы не оставляете попыток, что-то понять, и все время сообщаете о том, что это лишняя, для вас, информация. Не смею более вас задерживать. Доброй ночи.
|
|||
45
DrShad
18.12.24
✎
22:59
|
ты всегда отстаешь на два сообщения? )))
|
|||
46
Волшебник
18.12.24
✎
23:42
|
Щас сдам вас в тюрьму.
|
|||
47
Злопчинский
18.12.24
✎
23:43
|
(12) ", туда писать дату начала задания, окончания и результат"
да пофиг, может что-то сломается в момент записи даты окончания и результата. По факту задание выполнено, а отметки такого события - нет. И что, пихать это в транзакцию все? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |