|
Подписка на событие обработка проведения | ☑ | ||
---|---|---|---|---|
0
France
21.12.17
✎
17:51
|
Сделал подписку на событие "ОбработкаПроведения", и по условия очищаю некоторые регистры накопления. ОтладНик показывает, что движения очистились, но после проведения все движения сохраняются.
Что делаю не так, и как очистить движения в подписке? зы. В подумел проведения могу, но не хочу с поддержки снимать документ. |
|||
1
nordbox
21.12.17
✎
17:54
|
А расширение?
|
|||
2
nordbox
21.12.17
✎
17:56
|
&Вместо
подсунуть свою |
|||
3
France
21.12.17
✎
17:59
|
(1) да, лениво изучать.. к тому же, с хранилищем работаю..расширения, вроде как не то с хранилищем.. не?
|
|||
4
vde69
модератор
21.12.17
✎
18:09
|
смотря как очищаешь движения... показывай...
|
|||
5
France
21.12.17
✎
18:14
|
(4) Источник.Движения.ВыручкаИСебестоимостьПродаж.Очистить()
|
|||
6
nordbox
21.12.17
✎
18:15
|
(3)>> да, лениво изучать..
))) Тут просто почитать надо, ничего особо мудреного нет, а лишнего не сможешь сделать )) https://wonderland.v8.1c.ru/blog/rasshirenie-moduley/ мне вот лень "хвосты" подбивать, просто лень открыть конфу и кнопки понажимать, моск отказывается, говорит: "Не делай плохого, не нажимай кнопки, не приноси беды в тихую жизнь, не обижай безвинных" ) |
|||
7
Мимохожий Однако
21.12.17
✎
18:16
|
(3) Там изучать на полчаса.
|
|||
8
France
21.12.17
✎
18:18
|
Да, изучал я, изучал)) и читал ссылку.. но, ни разу не применял.. с хранилищем расширение дружит?
|
|||
9
Вафель
21.12.17
✎
18:25
|
Источник.Движения.ВыручкаИСебестоимостьПродаж.Записывать.Истина;
|
|||
10
nordbox
21.12.17
✎
18:26
|
(8) Раньше расширение не работало с хранилищем, сейчас не знаю, надобности нет, поройся в инете, наверняка что то есть
|
|||
11
France
21.12.17
✎
18:32
|
(9) не.. пробовал уже.. пишит, что не установлен менеджер временных таблиц..
|
|||
12
Вафель
21.12.17
✎
18:41
|
(11) так это уже совсем другая ошибка
|
|||
13
France
21.12.17
✎
18:48
|
(12) да, там в типовом, в регистре записи какой то тупой запрос в при записи. Запрос.Выполнить() - но результаты вообще не анализируются - тупо вываливаеся 1С..
|
|||
14
France
21.12.17
✎
19:18
|
только через расширение, используя модуль проведения в режиме Вместо удалось убедить не делать лишних движений))
|
|||
15
nordbox
21.12.17
✎
19:31
|
(14)>>далось убедить не делать лишних движений))
Кого убедить? |
|||
16
Byasha
21.12.17
✎
20:51
|
(0) Из подписки на проведение этот регистр не очистить.
Делай подписку на событие "Перед записью" набора записей регистра. В подписке получай регистратора и если это тот что тебе нужен делай очистку набора записей. В ЕРП, КА и УТ в обработчике события "Перед записю" набора записей выполняются доп. движения и проверки. Если в своей обработке вызывать метод "Записать", то срабатывает обработчик события. В самом обработчике активно используется менеджер ВТ, который после обработки очищается. Соответственно твой "второй" обработчик валится с ошибкой. И такая фигня почти по всем регистрам. Так что единственный вариант - цеплятся через обработчик "перед записью" набора записей регистра. |
|||
17
vde69
модератор
21.12.17
✎
20:55
|
Источник.Движения.ВыручкаИСебестоимостьПродаж.Записывать=Истина;
|
|||
18
Byasha
21.12.17
✎
20:58
|
(17) Не прокатит :-)
|
|||
19
vde69
21.12.17
✎
21:26
|
(16) почему? я делал http://catalog.mista.ru/public/236363/
|
|||
20
Byasha
21.12.17
✎
21:48
|
(19) Потому что Записывать = ИСТИНА устанавливается в типовой процедуре обработки проведения. И отрабатывает. В момент вызова глобального обработчика события весь набор движений уже записан. Но транзакция не завершена. В модуле набора записей регистра есть обработчик события "Перед записью". В этом обработчике события выполняются проверки. При выполнении проверки используется запрос с менеджером ВТ, который уничтожается после завершения проверки или во время проверки. Когда выполняется вызов "второй" обработки проведения опять отрабатывает обработчик события "Перед записью" набора записей. НО менеджер ВТ, который используется в процедуре - уже убит. И соответственно валится с ошибкой.
Если не влезать в код самого модуля проведения или процедур инициализации данных для проведения, то через глобальный обработчик события обработки проведения. ничего не получиться. Потому что нужно повторно выполнить запись набора записей. Что приведет к ошибке. В ЕРП, УТ и КА - это почти во всех регистрах накопления. И обойти это можно только через подписку на событие "Перед записью" или "При записи" самого набора записей регистра. Ну или модифицировать код процедур вызываемых в обработке проведения. |
|||
21
Byasha
21.12.17
✎
21:53
|
(19) Ты приводишь пример для БП. Там такого хардкора как в ЕРП, КА 2 и УТ 11 нет. И для УПП, КА 1 и УТ 10 - это отработает на УРА. Но новых - только через обработку события перед записью набора записей регистра. Только хардкор.
|
|||
22
France
21.12.17
✎
23:22
|
(15) 1c
|
|||
23
France
21.12.17
✎
23:23
|
(16) да.. у меня и валился на ВТ.. потому, просто забил на все, и через расширение сделал
|
|||
24
France
21.12.17
✎
23:25
|
на ВТ валился именн изза менеджера временных таблиц.. а искать где и как их повторно инициализировать - времени жалко.. тем более, что через изменение типовой я за 30 минут все сделал, а за "не буду меня\снимать с поддержки\" протрахался 3 часа...
|
|||
25
France
21.12.17
✎
23:26
|
(17) не прокатит)) читал 18))..
|
|||
26
France
21.12.17
✎
23:28
|
(21) теперь колись - ты эту хрень писал?)))
|
|||
27
tesseract
21.12.17
✎
23:29
|
(20) Крайне сумбурно, но я без мата еще бы хуже написал.
(21) Нефиг дедлоки плодить. Делайте все запросы в менеджере, а запись в соответствующих модулях. Все правильно сделали наконец. |
|||
28
France
21.12.17
✎
23:36
|
(27) ничего там не сумбурно, если протрахаться 3 часа на всю эту хрень.. все, что он там пишет - я сходу понял.. если бы он это написал сразу после моего сообщения, то я бы сэкономил три часа работы
|
|||
29
tesseract
21.12.17
✎
23:43
|
(28) Три? Я как-то 2 недели искал дедлок от франча в подписках, с тех пор стираю их как только увижу. ИбоНех.
|
|||
30
France
21.12.17
✎
23:47
|
(29) ну, я не франч.. и дедлоки у меня не найдешь.. и три часа для меня нормально - я не прог...
|
|||
31
DmitriyDI
22.12.17
✎
00:32
|
(17) я так делаю, все работает
(20) делал в ЕРП, просто надо еще добавить такой код: Источник.Движения.ВыручкаИСебестоимостьПродаж.ДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц и вуаля проходит все проверки) |
|||
32
DmitriyDI
22.12.17
✎
00:34
|
(31) ну в нужном мне случает с др. регистром все работает (а так смотреть перед записью добавить что не хватает и работает без проблем, в общие модули лезть не надо)
|
|||
33
France
22.12.17
✎
00:36
|
(31) я с допсвойствами дошел до попытки там таблицы очистить.. а методы создания ВР уже не стал искать, и через расширения зафигачил... но, теперь уже буду думать, оставить через расширения, или твой метод взять)) мне твой больше нравиться))
|
|||
34
DmitriyDI
22.12.17
✎
00:38
|
(33) да ЕРП жесть)) особенно типа отложенные обработчики проведения по регл. учету и т.д., как туда лезть сейчас буду смотреть)
|
|||
35
France
22.12.17
✎
00:41
|
(34) я в УТ 11)).. ЕРП - жесть, конечно, но мне она нравиться.. с отложенным проведением, конечно, тоже своя история)).. трудно отвыкать от привычки сразу видеть проводки.. особенно, когда идет внедрение..
|
|||
36
France
22.12.17
✎
00:41
|
уже два месяца с ЕРП не работаю - скучно)) не с чем сношать время))
|
|||
37
France
22.12.17
✎
01:11
|
(31) ептить)) работает же жжж))).. тут мне обещали чизбургер - уступаю его тебе))
респект и уважуха тебе)) |
|||
38
France
22.12.17
✎
01:12
|
таким способом можно изгаляться над базой и документами так, что ой мама не горюй, если не зная регистров начать их давить))
|
|||
39
France
22.12.17
✎
01:13
|
я то таким способом восстановил полезную фичу УПП, которая называлась что то типа "проводить по упр.учету"))
|
|||
40
France
22.12.17
✎
01:21
|
(31) упс.. ты так отложенное проведение по регучету обошел что ли?.. если да, то еще один чизбургер, но уже с меня))
|
|||
41
tesseract
22.12.17
✎
04:02
|
(40) Отложенное проведение это просто параметр. Саму функцию проведения давно вынули из "ОбработкаПроведения", как давно делали люди по заветам Гилева. Чтобы лишний раз не трогать перерасчет авансов и пр.
|
|||
42
DmitriyDI
22.12.17
✎
15:02
|
(40) отложенное проведение по регл учету обошел но по другому, подписку на событие при записи регистра хозрасчетный.
|
|||
43
Byasha
22.12.17
✎
15:25
|
(31) Да, это то же вариант. Я когда всю эту кухню разбирал с регистром партий разбирался. И там у меня подстановки пустого менеджера ВТ не прошел. Что-то потом не так пошло при закрытии месяца. Поэтому для себя решил использовать подписку при записи или перед записью набора записей. Да это не есть хорошо с точки зрения производительности, но во всяком случае отрабатывает уже по факту того как 1с сделает все свои расчеты, а я, если нужно чуток их подправлю :-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |