ОбработкаУдаленияПроведения() #93926


#0 by Drunkovsky
когда делают документ непроведенным нужно чтобы сработала некая процедура корая пересчиталабы некую информацию относительно регистра который дергал документ....но если этот пересчет сделать в процедуре ОбработкаУдаленияПроведения - то данные регистра еще еще проведенного дока..
#1 by КонецЦикла
А что мешает посмотреть движения док-та по регистру и состояние дел на момент документа?
#2 by Drunkovsky
посмотреть тоя могу... но фишка в том что я выполняю хранимую процедурку - она мне пересчитывает мои таблицы относительно таблиц регистров.. но так как таблицы еще не изменились то пересчеты этой хранимой процедуры до одного места...
#3 by Drunkovsky
+ да, забыл сказать что у документа снята галочка "Автоматическое удаление движений"
#4 by Кабан мимо пробеган
Ниче не понял. Тебе ХП нужно до очистки движений запустить, или после?
#5 by Drunkovsky
мне нужно выполнит процедуру при удалении проведения и чтобы в регистре на тот момент выполнения от этого дока уже ничего не осталось....а находясь еще в процедуре ОбработкаУдаленияПроведения - в регистрах еще движение есть...
#6 by Кабан мимо пробеган
ПриОтменеПроведенияДокумента - предопрделенная есть такая не спасает?
#7 by Drunkovsky
пробовал , она выполняется еще до самой процедуры ОбработкаУдаленияПроведениякак вариант я прямым запросом убиваю в регистре записи в таблице RA.. регистра... но тогда про правильность остаточных данных в RG... можно забыть...
#8 by AsIs
Как вариант.Отключить автопроведение и удалять движения в модуле проведения.
#9 by КонецЦикла
2 Извини, но у тебя какие то ужасные подходы...Примитивное решение: выгрузи что нужно из итогов в ТЗ, потом отними движения документа и получишь нужную ТЗ... или рассчитай итоги уже с учетом документа... может я и не понял задачи...
#10 by Кабан мимо пробеган
На ОбработкуОжидания повесить?
#11 by Drunkovsky
в 3 написано что автоматическое удаление отключено.... + какм образом руками в удалениипроведения я удалю движения - ОчиститьДвижения в процедуре ОбработкаУдаленияПроведения неработают...ты не понял задачу.... мне ничего высчитывать ненужно.. мне нужно коекакие свои таблицы сводные обновить исходя из данных регистров, их я обновляю одним запросом (хранимой процедурой - прямым запросом в таблицы), но так как в процедуре ОбработкаУдаленияПроведения данные еще не очищены из регистра - поэтому моя хранимая процедура неправильные данные обновляет...
#12 by Drunkovsky
где обработку ожидания ? и че она будет делать - кроме как тормозить ненужными запросами ?это не выход... проще как я делаю в ....
#13 by Drunkovsky
может свою хранимую процедурку запихнуть в стандартную хранимую процедурку 1ски..какой процедурой 1Ска обновляет регистры при удалении проведения ?
#14 by Drunkovsky
сложновато както...вопрос тогда в другом : в процедуре ОбработкаПроведения - ОчиститьДвижения работает нормально, а в ОбработкаУдаленияПроведения она делает ошибку ОчиститьДвижения;{Документ.Счет.Модуль Документа}: Недопустимая операциякак быть ?
#15 by КонецЦикла
ИМХО, было бы проще, если бы поделился, что там за сводные таблицы, окуда они берутся и зачем нужны...
#16 by Drunkovsky
делюсь... вот например обновляю таблицы справочников заполняя остатками из регистров...UPDATE .SC14 SET SP2428=ISNULL(    |(    |)
#17 by Drunkovsky
парадокс какойто получается...в процедуре прведения движение не убивается - но можно ручками убить а в удалении проведения - неужели никаких вариантов нету ?
#18 by Джинн
То 17. Батенька, парадокс у тебя с кривым подходом к 1С. Убеждаюсь в это в каждой твоей теме. Что ни решение, то обязательно выдирание гланд через известное место :( Что тебя так тянет на всякого рода извращения, когда практическивсе твои задачи совершенно просто решаются штатными средствами?На фига заполнять справочники остатками, когда остатки элементарно просто получить по итогам регистров?Кроме того что проведение, что отмена его идут в рамках транзакции. Причем блокирующей. И пока не пройдет фиксация транзакции (завершение проведения или завершение отмены проведения) все данные в базе будут по состоянию на момент начала транзакции. Хоть ручками ты его убивай, хоть ножками, хоть автоматически.Вариант я предложу, как всегда, банальный - учись пользоваться штатными средствами.
#19 by КонецЦикла
2 Я вижу в твоем лице союзника... :) Не позавидую тому, кто будет поддерживать конфигу после перехода на более высокооплачиваемую работу
#20 by Джинн
То 19. Ну я бы такими военными терминами не оперировал, а то автор подумает, что мы не совет ему даем, а войну с ним развязали :)Хотя по сути все так :)
#21 by Кабан мимо пробеган
#22 by Кабан мимо пробеган
+КонецФункцииМожет быть так лучше будет?ЗЫАпдейт справочника не самое лучшее решение, ИМХО.
#23 by Сияющий Асинхраль
Была такая задачка, правда на бух счетах (в рамках работы с RLS). Задачка заключалась именно в том, чтобы разные пользователи видели разные движения по бух счетам. Загвоздка как раз в том и состояла, что в модуле проведения ОчиститьДвижения работает, а в обработке удаления проведения нет. К сожалению, увы, до сих пор так и не нашел приемлемого решения этой проблемы, разве что давать некоторым пользователям проводить документ, но не давать отменять проведение.
#24 by КонецЦикла
Еще как выход - написать свою платформу, поддерживающую формат работы 1С с БД...
#25 by Drunkovsky
Дорогой Джин ...по поводу того что ты в моей ветке написал : ты думаешь получать остатки регистров я не умею и запихивать их в справочник...я стл "извращенцем" изи за извращенного подхода сотрудников...все дело в том что если я им в справочнике понавешиваю в полях (а их очень много, и все по их просьбам - юзверей..) то курсор по справочнику будет перемещаться по 2 секунды на одну позицию... я долго искал и нашел оптимальный вариант - это один запрос оновляющий реквизиты... плюс для интернет магазин аэто огромный плюс в том что ненужно пересчеты вести для каждого обновления страницы...
#26 by Drunkovsky
прямейшее решение...DELETE FROM RA2628 WHERE (IDDOC = '"+ТмпКодДок+"') or (Right(SP2637,9) = '"+ТмпКодДок+"')";но еще одним запросецом мона пересчитать вторую таблицу остатков RG котораяно както это немного неправильно... не по 1Совски :о)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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