Правило выгрузки данных почему то выполняется после ПКО? (КД) #354142


#0 by гвость
Есть правило выгрузки данных (ПВД) в нем в обработчике "перед обработкой", есть код который заполняет параметр "входящие данные". Это ПВД повешено на правило конвертации объектов (ПКО). Поскажите пожалуйта почему может быть такое - когда ПКО выполняется после ПВД. Т.е. ПКО работает с незаполненным параметром "входящие данные". В ПВД указано правило ПКО, а также способ выборки произвольный алгоритм. Проверял отладчиком.
#1 by ТелепатБот
#2 by GenV
В КД в окне обработчиков есть замечательная кнопка "Информация по обработчикам..." ЗЫ Это, если справку трудно открыть
#3 by гвость
если не сильно ломает, процитируй волшебные буквы хелпа...
#4 by GenV
Зависит от того какой произвольный алгоритм: 1) Если меняешь ВыборкаДанных, то для этого используется ИсходящиеДанные 2) Если через ВыгрузитьПоПравилу, то смотреть правильность передачи входящих данных
#5 by гвость
у меня в ПВД, произвольный алгоритм и ВыгрузитьПоПравилу делаю так в ПКС на правиле ДоговорыКонтрагентов, например Значение = ПолучитьЗначение(ВходящиеДанные, "Организация"); только вот после ВыгрузитьПоПравилу(...) у меня не отрабатывает код
#6 by GenV
А не проще было просто поставить галочку "Получить из входящих данных" для каждого реквизита и не писать: Значение = ПолучитьЗначение(ВходящиеДанные, "один из реквизитов")? КД сама подставит по имени реквизита значения ... Входящие данные из ВыгрузитьПоПравилу доступны только в обработчиках ПКО. Что бы в обработчиках ПКС получить входящие данные нужно передать их в ВыгрузитьПоПравилу как ИсходящиеДанные...
#7 by Defender aka LINN
Ты определись таки, что у тебя первым выполняется. А то в заголовке одно, в сабже другое... ПВД у тебя одно? Или еще есть?
#8 by гвость
через галочкe ни чего не работает. про входящие данные понял, проверил, доступны в ПКО да вообще всё вы правильно тут говорите почему у меня не исполняется код ПКС??? ПВД у меня много, разобравшись с входящими данными, сначала выполняется ПВД, потом ПКО, а вот код ПКС нефига не выполняется
#9 by GenV
Потому что во ВходящиеДанные ПКС попадают ИсходящиеДанные ПКО ... Писал уже. Поставь галки "Из входящих данных" у реквизитов ПКО договора, все обработчики присваивания значений из ПКС убери, либо сам со своим велосипедом ПКС разбирайся.
#10 by гвость
9) сделал так в ПВД в ПКО в ПКС поставил галку получить из входящих ни чего в итоге не получается. ИМХО не правильная последовательность, если я в ПКС напишу код например Сообщить("Отработал"); то это сообщение выскочит перед кодом ПВД, что я и говорил в первом посте, или это так и должно быть? Как мне кажется любой код ПКС должен выполнятся в последнюю очередь, а у меня он выполняется сразу, а потом уже коды ПВД и ПКО.
#11 by GenV
Порядок выполнения: 1) ПВД ПередОбработкой 2) ПКО ПередВыгрузкой ПКО 3) ПКО ПриВыгрузке 4) ПКС ПередВыгрузкой 5) ПКС автополучение значения из ВходящиеДанные по имени свойства если есть галка 6) ПКС ПриВыгрузке 7) конвертация значения по ПКО свойства   (в ПКО свойства передаются ИсходящиеДанные как ВходящиеДанные) 8) ПКС ПослеВыгрузки можешь проверить через сообщить или в отладчики ВыгрузитьПоПравилу, ВыгрузитьГруппуСвойств, ВыгрузитьСвойства
#12 by гвость
через сообщить у меня идет ПКО (Перед выгрузкой), ПКС (Перед выгрузкой) , ПВД (Перед обработкой) остальные не рассматривал,т.к. не пользую пока короче надо книгу по КД читать, попробую сегодня достать, т.к. это похоже на ковыряние в навозе, не иначе
#13 by GenV
Небось Сообщить в ПВД после ВыгрузитьПоПравилу поставил? Или в других ПВД эти ПКО используешь и выгружаешь раньше.
#14 by гвость
вообще всё коментил, оставил только сообщить
#15 by гвость
У меня только одно ПВД с кодом, остальные по стандарту
#16 by GenV
А как у тебя тогда выгрузка договора вызвалась? Сообщить до или после Выгрузить по правилу?
#17 by гвость
> А как у тебя тогда выгрузка договора вызвалась? Ну есть же ПВД:Договоры контрагентов у него в обработчике "Перед обработкой" стоит код Сообщить("ПВД"); У ПКО:Договоры контрагентов в обработчике "Перед выгрузкой" стоит Сообщить("ПКО") У свойства ПКО стоит сообщить("ПКС") вот такая картина > Сообщить до или после Выгрузить по правилу? я вообще всё это убрал, всё закоментировал
#18 by GenV
Меня вот это интересует :) >>Ну есть же ПВД:Договоры контрагентов у него в обработчике "Перед обработкой" стоит код Сообщить("ПВД"); у тебя вот так:? Сообщить("ПВД") ???? - правильно
#19 by гвость
:) вот так у меня
#20 by GenV
т.е. выгружаешь все договора стандартной выборкой? И у тебя сначала выгружается сам по себе договор, а потом срабатывает выгрузка его через ПВД? :)
#21 by гвость
В итоге разобрался я со всеми этими делами, написал я эти правила, совсем не так как раньше думал, вообще убрал одно ПВД, а его функционал частично перекинул в другое ПВД, но я так и не понял, хотя провел массу экспериментов, принципа работы ПВД инициируемо изначально из ПКС путем указания в ПКС того ПКО по которому будет идти конвертация. Пришёл к выводу что нельзя так делать, КД этого не понимает. Я хотел чтобы именно так и было, в ПКС указал ПКО, и система перед запуском этого ПКО должна была запустить ПВД, но этого не происходит. А обычная схема ПВД->ПКО->ПКС эта работает нормально
#22 by Defender aka LINN
"система перед запуском этого ПКО должна была запустить ПВД" - бред.
#23 by гвость
вот я так и пытался делать, а зря что она так не может
#24 by Defender aka LINN
Ничего не зря. ПВД - всего лишь способ получить выборку. И выносить туда что-либо еще не есть правильно.
#25 by гвость
было бы не лишним иметь возможность инициировать запуск ПВД из ПКС думаю в будущем она появится
#26 by Defender aka LINN
Чего? Ты вообще сам-то это представляешь? При обработке ПКС уже идет запись свойств объекта в файл. КУДА ты там впихнешь выборку? А ВыгрузитьПоПравилу никто не мешает в ПКО использовать.
#27 by гвость
А почему такая категоричность в словах?
#28 by гвость
Шире надо мыслить
#29 by Defender aka LINN
Потому, что я знаю, что говорю.
#30 by гвость
Ну и славненько, поживём увидим
#31 by GenV
Велосипедист?
#32 by гвость
Хуже
#33 by GenV
:) Принцип работы КД - ПВД->ПКО. Зачем эмулировать вызовы ПВД перед выгрузкой данных, если это и так КД делает?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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