|
Сделать действия после отмены проведения | ☑ | ||
---|---|---|---|---|
0
IvanGorbunov
23.03.19
✎
12:02
|
Нужно после отмены проведения документа программно выполнить некие действия. В обработчике "ОбработкаУдаленияПроведения" документ все еще числится проведенным, поэтому не подходит. Думаю делать в ПриЗаписи(), так как при отмене проведения, там он уже не проведен, но как там понять, что это не запись, а именно отмена проведения?
|
|||
1
Фрэнки
23.03.19
✎
12:03
|
Объект.Проведен = Ложь
|
|||
2
IvanGorbunov
23.03.19
✎
12:06
|
(1) это в ОбработкаУдаленияПроведения самому написать?
|
|||
3
Фрэнки
23.03.19
✎
12:23
|
Нет, это ты спрашиваешь, как в процедуре по подписке узнать о состоянии объекта, который снят с проведения.
|
|||
4
RomanYS
23.03.19
✎
12:42
|
(1) Документ мог никогда не быть проведенным
|
|||
5
RomanYS
23.03.19
✎
12:44
|
(0) Какие "некие действия" нужно делать?
|
|||
6
Фрэнки
23.03.19
✎
12:54
|
хм...
Если бы задача была поставлена мне, то я бы сразу подумал, что ранее проведенный документ от такого, который еще не был никогда проведен, отличается наличием ссылок на себя в неких записях, в неких наборах записей и т.д. Если же таких ссылок найти нет возможности, т.е. некие процедуры проводились/действовали не оставляя ссылок на объект проведения... Ну что тут еще придумаешь? Ничего. |
|||
7
RomanYS
23.03.19
✎
12:58
|
(6) Узнать режим записи не проблема:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) ДополнительныеСвойства.Вставить("РежимЗаписи", РежимЗаписи); КонецПроцедуры Процедура ПриЗаписи(Отказ) ЭтоОтменаПроведения = (ДополнительныеСвойства.РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения); КонецПроцедуры Вопрос в том какие действия собирается делать ТС, не факт, что это можно делать при записи. |
|||
8
Cyberhawk
23.03.19
✎
13:23
|
Еще интересный момент, подходит ли под задачи автора случай, когда происходит просто запись документа в режиме "Запись" и флаг "Проведен" и с флагом "Проведен" = Ложь, а по ссылке этот флаг еще Истина
|
|||
9
IvanGorbunov
23.03.19
✎
13:26
|
(7) спасибо за идею. дело в том, что в момент проведение кое-что в кое-каком другом документе должно записываться. При отмене проведения откатываться.
|
|||
10
IvanGorbunov
23.03.19
✎
13:26
|
(9) но таким образом, что этот документ уже должен быть не проведен
|
|||
11
IvanGorbunov
23.03.19
✎
13:27
|
(10) короче причина почему именно так глубока и запутанная)
|
|||
12
palsergeich
23.03.19
✎
13:36
|
(9) Изменение состояния одного документа не должно вызывать изменение состояние другого явно.
Это основы архитектуры. В данной постановке - грабли которые уже положены на землю, рано или поздно вы на них все таки наступите. |
|||
13
palsergeich
23.03.19
✎
13:36
|
Тем более интерактивное, документ прилетает с обменом и в базе начинается каша.
|
|||
14
Фрэнки
23.03.19
✎
13:38
|
(9) (11) но должна же быть какая-то связь, ссылка на источник записей, хоть в другом документе, хоть наборах записей регистров с другими регистраторами, но если связь устанавливать нет возможности, то и действия предпринимать практически бесполезно.
Допустим, что при проведении одного документа была установлена некая запись для другого, с другим регистратором или даже вовсе без регистратора - как вы потом это узнаете, если источник записи нигде не будет указан? |
|||
15
palsergeich
23.03.19
✎
13:40
|
(14) Это не отменяет коллизий при обмене. Весь текущий функционал завязан на интерактивные действие.
|
|||
16
Фрэнки
23.03.19
✎
13:41
|
(12) ну-ну... посмотри на фокусы в последних типовых, где теперь наплодили кучи независимых регистров сведений
То что в архитектуре решения этот подход будет чреват фокусами, то все понимают, но в типовых даже косячат именно таким же самым способом. |
|||
17
Фрэнки
23.03.19
✎
13:42
|
(15) да какие там коллизии, о чем ты? Какие там обмены?
И так все понимают, что обмен непроведенными документами не всякому разработчику в голову придет. |
|||
18
palsergeich
23.03.19
✎
13:45
|
(16) переход на РС был ожидаем, я аналогичные вещи делал еще года 4 назад, другое дело что надо аккуратно, сдуру много что сломать можно.
Мой посыл в том, что если есть возможность по человечьи - лучше сделать. Завязываться на интерактивный функционал и менять состояния других объектов - должно быть крайне осмысленное решение. (17) Это случается чаще чем кажется) Если бы я не видел как наступают на эти грабли - прошел бы мимо. |
|||
19
palsergeich
23.03.19
✎
13:47
|
А чорт это модуль объекта, а не форма, что то меня сглючило, сорри.
|
|||
20
palsergeich
23.03.19
✎
13:48
|
Тогда слова про интерактивный функционал забираю обратно)
|
|||
21
Cyberhawk
23.03.19
✎
13:50
|
(12) В БП 3 счет-фактура обновляется при обновлении ПТУ. В линейке ЕРП пока такое не сделали, там обошлись сердито - интерактивная заглушка с предложением ввести корректировочную СФ ))
|
|||
22
palsergeich
23.03.19
✎
13:51
|
(21) Да знаю я)
Я просто предупреждаю о том что у такого решения могут быть паоследствия. |
|||
23
Cyberhawk
23.03.19
✎
13:53
|
Да в 9 из 10 случаев любое сколько-нибудь "синхронное" изменение документов - это решение, от которого потом голова болит.
А уж если учесть, что обычно внедренцы делают такие решения через *опу, то вероятность боли возрастает еще больше. |
|||
24
Мимохожий Однако
23.03.19
✎
16:00
|
Мне на ум приходит только взаимосвязь реализации и счета-фактуры выданной. Можно там подсмотреть.
|
|||
25
Garykom
гуру
23.03.19
✎
16:23
|
(0) В отмене проведения пиши куда то "задание на обработку" (например в РС) со ссылкой на документ.
Затем фоновое задание проверяет список заданий, смотрит документа и если он не проведен то выполняет некие действия. Предусмотреть варианта когда документа уже снова проведен или дважды отменен и уже два (или больше) задания в списке. |
|||
26
Cyberhawk
23.03.19
✎
18:29
|
(25) Угу, а еще предусмотреть вариант, когда фоновое задания по обработке документов из очереди (регистра) уже началось и приступило к очередному документу, и этот документ в этот же момент по обмену или интерактивно пользователем меняет свое состояние (проводится / разпроводится). Кстати, в ЕРП это одна из причин, когда у непроведенных документов остаются движения, сформированные фоновым заданием допроведения, бгг.
|
|||
27
Cyberhawk
23.03.19
✎
18:30
|
Хотя казалось бы простейшая вещь - до начала обработки очередного документа считать его версию данных и после завершения обработки этого документа еще раз версию данных считать и сравнить. Если различаются - откатить результат обработки (допроведение по регистрам) и отложить документ для повторной обработки.
|
|||
28
Cyberhawk
23.03.19
✎
18:31
|
Но нет, ребятки из 1С почему-то пошли по пути "дешево и сердито" ))
|
|||
29
Garykom
гуру
23.03.19
✎
18:40
|
(26) ERP меня уже ничему не удивляет, там ситуация "у семи нянек".
Вместо того чтобы нанять мало дорогих-хороших сама 1С ищет/нанимает подешевле, ниже чем средняя на рынке, но зато много. |
|||
30
palsergeich
23.03.19
✎
19:22
|
(29) Вроде же в самой 1с рынок\выше рынка дают
|
|||
31
Cyberhawk
23.03.19
✎
21:15
|
(30) Если и выше рынка, то совсем чутка. А работа там далеко не сахар.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |