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


#0 by France
Сделал подписку на событие "ОбработкаПроведения", и по условия очищаю некоторые регистры накопления. ОтладНик показывает, что движения очистились, но после проведения все движения сохраняются. Что делаю не так, и как очистить движения в подписке? зы. В подумел проведения могу, но не хочу с поддержки снимать документ.
#1 by nordbox
А расширение?
#2 by nordbox
&Вместо подсунуть свою
#3 by France
да, лениво изучать.. к тому же, с хранилищем работаю..расширения, вроде как не то с хранилищем.. не?
#4 by vde69
смотря как очищаешь движения... показывай...
#5 by France
Источник.Движения.ВыручкаИСебестоимостьПродаж.Очистить
#6 by nordbox
>> да, лениво изучать..   ))) Тут просто почитать надо, ничего особо мудреного нет, а лишнего не сможешь сделать )) мне вот лень "хвосты" подбивать, просто лень открыть конфу и кнопки понажимать, моск отказывается, говорит: "Не делай плохого, не нажимай кнопки, не приноси беды в тихую жизнь, не обижай безвинных" )
#7 by МимохожийОднако
Там изучать на полчаса.
#8 by France
Да, изучал я, изучал)) и читал ссылку.. но, ни разу не применял.. с хранилищем расширение дружит?
#9 by Вафель
Источник.Движения.ВыручкаИСебестоимостьПродаж.Записывать.Истина;
#10 by nordbox
Раньше расширение не работало с хранилищем, сейчас не знаю, надобности нет, поройся в инете, наверняка что то есть
#11 by France
не.. пробовал уже.. пишит, что не установлен менеджер временных таблиц..
#12 by Вафель
так это уже совсем другая ошибка
#13 by France
да, там в типовом, в регистре записи какой то тупой запрос в при записи. Запрос.Выполнить - но результаты вообще не анализируются - тупо вываливаеся 1С..
#14 by France
только через расширение, используя модуль проведения в режиме Вместо удалось убедить не делать лишних движений))
#15 by nordbox
>>далось убедить не делать лишних движений)) Кого убедить?
#16 by Byasha
Из подписки на проведение этот регистр не очистить. Делай подписку на событие "Перед записью" набора записей регистра. В подписке получай регистратора и если это тот что тебе нужен делай очистку набора записей. В ЕРП, КА и УТ в обработчике события "Перед записю" набора записей выполняются доп. движения и проверки. Если в своей обработке вызывать метод "Записать", то срабатывает обработчик события. В самом обработчике активно используется менеджер ВТ, который после обработки очищается. Соответственно твой "второй" обработчик валится с ошибкой. И такая фигня почти по всем регистрам. Так что единственный вариант - цеплятся через обработчик "перед записью" набора записей регистра.
#17 by vde69
Источник.Движения.ВыручкаИСебестоимостьПродаж.Записывать=Истина;
#18 by Byasha
Не прокатит :-)
#19 by vde69
почему? я делал
#20 by Byasha
Потому что Записывать = ИСТИНА устанавливается в типовой процедуре обработки проведения. И отрабатывает. В момент вызова глобального обработчика события весь набор движений уже записан. Но транзакция не завершена. В модуле набора записей регистра есть обработчик события "Перед записью". В этом обработчике события выполняются проверки. При выполнении проверки используется запрос с менеджером ВТ, который уничтожается после завершения проверки или во время проверки. Когда выполняется вызов "второй" обработки проведения опять отрабатывает обработчик события "Перед записью" набора записей. НО менеджер ВТ, который используется в процедуре - уже убит. И соответственно валится с ошибкой. Если не влезать в код самого модуля проведения или процедур инициализации данных для проведения, то через глобальный обработчик события обработки проведения. ничего не получиться. Потому что нужно повторно выполнить запись набора записей. Что приведет к ошибке. В ЕРП, УТ и КА - это почти во всех регистрах накопления. И обойти это можно только через подписку на событие "Перед записью" или "При записи" самого набора записей регистра. Ну или модифицировать код процедур вызываемых в обработке проведения.
#21 by Byasha
Ты приводишь пример для БП. Там такого хардкора как в ЕРП, КА 2 и УТ 11 нет. И для УПП, КА 1 и УТ 10 - это отработает на УРА. Но новых - только через обработку события перед записью набора записей регистра. Только хардкор.
#22 by France
1c
#23 by France
да.. у меня и валился на ВТ.. потому, просто забил на все, и через расширение сделал
#24 by France
на ВТ валился именн изза менеджера временных таблиц.. а искать где и как их повторно инициализировать - времени жалко.. тем более, что через изменение типовой я за 30 минут все сделал, а за "не буду меняснимать с поддержки" протрахался 3 часа...
#25 by France
не прокатит)) читал 18))..
#26 by France
теперь колись - ты эту хрень писал?)))
#27 by tesseract
Крайне сумбурно, но я без мата еще бы хуже написал. Нефиг дедлоки плодить. Делайте все запросы в менеджере, а запись в соответствующих модулях. Все правильно сделали наконец.
#28 by France
ничего там не сумбурно, если протрахаться 3 часа на всю эту хрень.. все, что он там пишет - я сходу понял.. если бы он это написал сразу после моего сообщения, то я бы сэкономил три часа работы
#29 by tesseract
Три? Я как-то 2 недели искал дедлок от франча в подписках, с тех пор стираю их как только увижу. ИбоНех.
#30 by France
ну, я не франч.. и дедлоки у меня не найдешь.. и три часа для меня нормально - я не прог...
#31 by DmitriyDI
я так делаю, все работает делал в ЕРП, просто надо еще добавить такой код: и вуаля проходит все проверки)
#32 by DmitriyDI
ну в нужном мне случает с др. регистром все работает (а так смотреть перед записью добавить что не хватает и работает без проблем, в общие модули лезть не надо)
#33 by France
я с допсвойствами дошел до попытки там таблицы очистить.. а методы создания ВР уже не стал искать, и через расширения зафигачил... но, теперь уже буду думать, оставить через расширения, или твой метод взять)) мне твой больше нравиться))
#34 by DmitriyDI
да ЕРП жесть)) особенно типа отложенные обработчики проведения по регл. учету и т.д., как туда лезть сейчас буду смотреть)
#35 by France
я в УТ 11)).. ЕРП - жесть, конечно, но мне она нравиться.. с отложенным проведением, конечно, тоже своя история))..  трудно отвыкать от привычки сразу видеть проводки.. особенно, когда идет внедрение..
#36 by France
уже два месяца с ЕРП не работаю - скучно)) не с чем сношать время))
#37 by France
ептить)) работает же жжж))).. тут мне обещали чизбургер - уступаю его тебе)) респект и уважуха тебе))
#38 by France
таким способом можно изгаляться над базой и документами так, что ой мама не горюй, если не зная регистров начать их давить))
#39 by France
я то таким способом восстановил полезную фичу УПП, которая называлась что то типа "проводить по упр.учету"))
#40 by France
упс.. ты так отложенное проведение по регучету обошел что ли?.. если да, то еще один чизбургер, но уже с меня))
#41 by tesseract
Отложенное проведение это просто параметр. Саму функцию проведения давно вынули из "ОбработкаПроведения", как давно делали люди по заветам Гилева. Чтобы лишний раз не трогать перерасчет авансов и пр.
#42 by DmitriyDI
отложенное проведение по регл учету обошел но по другому, подписку на событие при записи регистра хозрасчетный.
#43 by Byasha
Да, это то же вариант. Я когда всю эту кухню разбирал с регистром партий разбирался. И там у меня подстановки пустого менеджера ВТ не прошел. Что-то потом не так пошло при закрытии месяца. Поэтому для себя решил использовать подписку при записи или перед записью набора записей. Да это не есть хорошо с точки зрения производительности, но во всяком случае отрабатывает уже по факту того как 1с сделает все свои расчеты, а я, если нужно чуток их подправлю :-)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С