Вход | Регистрация



Подписка на событие обработка проведения

Подписка на событие обработка проведения
Я
   France
 
21.12.17 - 17:51
Сделал подписку на событие "ОбработкаПроведения", и по условия очищаю некоторые регистры накопления. ОтладНик показывает, что движения очистились, но после проведения все движения сохраняются.
Что делаю не так, и как очистить движения в подписке?
зы. В подумел проведения могу, но не хочу с поддержки снимать документ.
 
 
   nordbox
 
1 - 21.12.17 - 17:54
А расширение?
   nordbox
 
2 - 21.12.17 - 17:56
&Вместо
подсунуть свою
   France
 
3 - 21.12.17 - 17:59
(1) да, лениво изучать.. к тому же, с хранилищем работаю..расширения, вроде как не то с хранилищем.. не?
   vde69
 
Модератор
4 - 21.12.17 - 18:09
смотря как очищаешь движения... показывай...
   France
 
5 - 21.12.17 - 18:14
(4) Источник.Движения.ВыручкаИСебестоимостьПродаж.Очистить()
   nordbox
 
6 - 21.12.17 - 18:15
(3)>> да, лениво изучать..  
)))
Тут просто почитать надо, ничего особо мудреного нет, а лишнего не сможешь сделать ))
https://wonderland.v8.1c.ru/blog/rasshirenie-moduley/

мне вот лень "хвосты" подбивать,
просто лень открыть конфу и кнопки понажимать, моск отказывается, говорит: "Не делай плохого, не нажимай кнопки, не приноси беды в тихую жизнь, не обижай безвинных" )
   МимохожийОднако
 
7 - 21.12.17 - 18:16
(3) Там изучать на полчаса.
   France
 
8 - 21.12.17 - 18:18
Да, изучал я, изучал)) и читал ссылку.. но, ни разу не применял.. с хранилищем расширение дружит?
   Вафель
 
9 - 21.12.17 - 18:25
Источник.Движения.ВыручкаИСебестоимостьПродаж.Записывать.Истина;
   nordbox
 
10 - 21.12.17 - 18:26
(8) Раньше расширение не работало с хранилищем, сейчас не знаю, надобности нет, поройся в инете, наверняка что то есть
 
 Рекламное место пустует
   France
 
11 - 21.12.17 - 18:32
(9) не.. пробовал уже.. пишит, что не установлен менеджер временных таблиц..
   Вафель
 
12 - 21.12.17 - 18:41
(11) так это уже совсем другая ошибка
   France
 
13 - 21.12.17 - 18:48
(12) да, там в типовом, в регистре записи какой то тупой запрос в при записи. Запрос.Выполнить() - но результаты вообще не анализируются - тупо вываливаеся 1С..
   France
 
14 - 21.12.17 - 19:18
только через расширение, используя модуль проведения в режиме Вместо удалось убедить не делать лишних движений))
   nordbox
 
15 - 21.12.17 - 19:31
(14)>>далось убедить не делать лишних движений))
Кого убедить?
   Byasha
 
16 - 21.12.17 - 20:51
(0) Из подписки на проведение этот регистр не очистить.
Делай подписку на событие "Перед записью" набора записей регистра. В подписке получай регистратора и если это тот что тебе нужен делай очистку набора записей.
В ЕРП, КА и УТ в обработчике события "Перед записю" набора записей выполняются доп. движения и проверки.
Если в своей обработке вызывать метод "Записать", то срабатывает обработчик события. В самом обработчике активно используется менеджер ВТ, который после обработки очищается. Соответственно твой "второй" обработчик валится с ошибкой. И такая фигня почти по всем регистрам.
Так что единственный вариант - цеплятся через обработчик "перед записью" набора записей регистра.
   vde69
 
Модератор
17 - 21.12.17 - 20:55
Источник.Движения.ВыручкаИСебестоимостьПродаж.Записывать=Истина;
   Byasha
 
18 - 21.12.17 - 20:58
(17) Не прокатит :-)
   vde69
 
19 - 21.12.17 - 21:26
(16) почему? я делал http://catalog.mista.ru/public/236363/
   Byasha
 
20 - 21.12.17 - 21:48
(19) Потому что Записывать = ИСТИНА устанавливается в типовой процедуре обработки проведения. И отрабатывает. В момент вызова глобального обработчика события весь набор движений уже записан. Но транзакция не завершена. В модуле набора записей регистра есть обработчик события "Перед записью". В этом обработчике события выполняются проверки. При выполнении проверки используется запрос с менеджером ВТ, который уничтожается после завершения проверки или во время проверки. Когда выполняется вызов "второй" обработки проведения опять отрабатывает обработчик события "Перед записью" набора записей. НО менеджер ВТ, который используется в процедуре - уже убит. И соответственно валится с ошибкой.
Если не влезать в код самого модуля проведения или процедур инициализации данных для проведения, то через глобальный обработчик события обработки проведения. ничего не получиться. Потому что нужно повторно выполнить запись набора записей. Что приведет к ошибке. В ЕРП, УТ и КА - это почти во всех регистрах накопления. И обойти это можно только через подписку на событие "Перед записью" или "При записи" самого набора записей регистра. Ну или модифицировать код процедур вызываемых в обработке проведения.
   Byasha
 
21 - 21.12.17 - 21:53
(19) Ты приводишь пример для БП. Там такого хардкора как в ЕРП, КА 2 и УТ 11 нет. И для УПП, КА 1 и УТ 10 - это отработает на УРА. Но новых - только через обработку события перед записью набора записей регистра. Только хардкор.
   France
 
22 - 21.12.17 - 23:22
(15) 1c
   France
 
23 - 21.12.17 - 23:23
(16) да.. у меня и валился на ВТ.. потому, просто забил на все, и через расширение сделал
   France
 
24 - 21.12.17 - 23:25
на ВТ валился именн изза менеджера временных таблиц.. а искать где и как их повторно инициализировать - времени жалко.. тем более, что через изменение типовой я за 30 минут все сделал, а за "не буду меня\снимать с поддержки\" протрахался 3 часа...
   France
 
25 - 21.12.17 - 23:26
(17) не прокатит)) читал 18))..
   France
 
26 - 21.12.17 - 23:28
(21) теперь колись - ты эту хрень писал?)))
   tesseract
 
27 - 21.12.17 - 23:29
(20) Крайне сумбурно, но я без мата еще бы хуже написал.

(21) Нефиг дедлоки плодить. Делайте все запросы в менеджере, а запись в соответствующих модулях. Все правильно сделали наконец.
   France
 
28 - 21.12.17 - 23:36
(27) ничего там не сумбурно, если протрахаться 3 часа на всю эту хрень.. все, что он там пишет - я сходу понял.. если бы он это написал сразу после моего сообщения, то я бы сэкономил три часа работы
   tesseract
 
29 - 21.12.17 - 23:43
(28) Три? Я как-то 2 недели искал дедлок от франча в подписках, с тех пор стираю их как только увижу. ИбоНех.
   France
 
30 - 21.12.17 - 23:47
(29) ну, я не франч.. и дедлоки у меня не найдешь.. и три часа для меня нормально - я не прог...
   DmitriyDI
 
31 - 22.12.17 - 00:32
(17) я так делаю, все работает
(20) делал в ЕРП, просто надо еще добавить такой код:
Источник.Движения.ВыручкаИСебестоимостьПродаж.ДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц

и вуаля проходит все проверки)
   DmitriyDI
 
32 - 22.12.17 - 00:34
(31) ну в нужном мне случает с др. регистром все работает (а так смотреть перед записью добавить что не хватает и работает без проблем, в общие модули лезть не надо)
   France
 
33 - 22.12.17 - 00:36
(31) я с допсвойствами дошел до попытки там таблицы очистить.. а методы создания ВР уже не стал искать, и через расширения зафигачил... но, теперь уже буду думать, оставить через расширения, или твой метод взять)) мне твой больше нравиться))
 
 
   DmitriyDI
 
34 - 22.12.17 - 00:38
(33) да ЕРП жесть)) особенно типа отложенные обработчики проведения по регл. учету и т.д., как туда лезть сейчас буду смотреть)
   France
 
35 - 22.12.17 - 00:41
(34) я в УТ 11)).. ЕРП - жесть, конечно, но мне она нравиться.. с отложенным проведением, конечно, тоже своя история))..  трудно отвыкать от привычки сразу видеть проводки.. особенно, когда идет внедрение..
   France
 
36 - 22.12.17 - 00:41
уже два месяца с ЕРП не работаю - скучно)) не с чем сношать время))
   France
 
37 - 22.12.17 - 01:11
(31) ептить)) работает же жжж))).. тут мне обещали чизбургер - уступаю его тебе))
респект и уважуха тебе))
   France
 
38 - 22.12.17 - 01:12
таким способом можно изгаляться над базой и документами так, что ой мама не горюй, если не зная регистров начать их давить))
   France
 
39 - 22.12.17 - 01:13
я то таким способом восстановил полезную фичу УПП, которая называлась что то типа "проводить по упр.учету"))
   France
 
40 - 22.12.17 - 01:21
(31) упс.. ты так отложенное проведение по регучету обошел что ли?.. если да, то еще один чизбургер, но уже с меня))
   tesseract
 
41 - 22.12.17 - 04:02
(40) Отложенное проведение это просто параметр. Саму функцию проведения давно вынули из "ОбработкаПроведения", как давно делали люди по заветам Гилева. Чтобы лишний раз не трогать перерасчет авансов и пр.
   DmitriyDI
 
42 - 22.12.17 - 15:02
(40) отложенное проведение по регл учету обошел но по другому, подписку на событие при записи регистра хозрасчетный.
   Byasha
 
43 - 22.12.17 - 15:25
(31) Да, это то же вариант. Я когда всю эту кухню разбирал с регистром партий разбирался. И там у меня подстановки пустого менеджера ВТ не прошел. Что-то потом не так пошло при закрытии месяца. Поэтому для себя решил использовать подписку при записи или перед записью набора записей. Да это не есть хорошо с точки зрения производительности, но во всяком случае отрабатывает уже по факту того как 1с сделает все свои расчеты, а я, если нужно чуток их подправлю :-)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует