Событие "Перед выгрузкой объекта" в конвертации данных #676528


#0 by Nikama
Добрый день. Пишу простейшие правила конвертации для самописной конфигурации. В процедуре "Перед выгрузкой объекта" пишу код. Проблема в том, что этот код действует только на часть объектов. Надо писать в цикле или все-таки данное событие действует на каждый объект?
#1 by zak555
> Проблема в том, что этот код действует только на часть объектов. на какие именно ? и код покажи
#2 by Godofsin
обожди, ща мы подключим свои мегавселеннские способности, чтоб увидеть твой код
#3 by Nikama
) как код правильно вставить?
#4 by Nikama
Такое ощущение, что на первые по номеру этот код не действует. Меня где не туда унесло? Я с КД первый раз пытаюсь работать.
#5 by Godofsin
Сакральный смысл сего кода? Отсеять справочники и документы с реквизитом основной?
#6 by Nikama
с реквизитом Основной в значении "Истина"
#7 by hhhh
но ведь это же будет дико тормозить, если ты в каждом объекте будешь такую огромную дуру выполнять. Нафига это может понадобиться, такая бредовая проверка?
#8 by Nikama
Желание заказчика. Проверять надо в любом случае
#9 by hhhh
так заказчик вас пристрелит. Ну нельзя же так тупо желания выполнять.
#10 by Nikama
Тогда заказчику предварительно придется пристрелить тех, кто писал его конфу до меня. Вы лучше скажите, где в коде ошибка...
#11 by Godofsin
Да хз. Отладчик ничего не говорит?
#12 by Nikama
молчит. При этом вроде отрабатывает сия конструкция на части объектов базы, а на второй части нет
#13 by Aleksey
Универсальность - зло
#14 by Nikama
зло - это комменты в стиле "лишь бы написать, для рейтингу"
#15 by be-may
а если попробовать принудительно перед началом проверки Отказ = Ложь; ?
#16 by Nikama
а что это даст? Отказ вроде стандартно идет ложь или я не права?
#17 by Aleksey
ну почему? Ты для чего эту простыню написал? для универсальности. что тебе мешает в кокретном ПВД или ПКС прописать конкретный код?
#18 by Nikama
здесь должен быть очень смущенный смайл. Я ж пишу, что первый раз с КД работаю. То, что написала для объектов вообще не отрабатывает.
#19 by be-may
подумалось, что может кэшируется.. для первого раза оч. круто Я бы что сделала. Нашла бы справочник или документ, которые не грузится или не грузится весь. Тот код, что выше, положила бы в ПКО Перед выгрузкой (только без универсальности) и отладчиком бы выловила те объекты, которые не выгружаются.И смотрела бы что с ними так/не так.
#20 by hhhh
вообще делается просто. Если уж так хочет заказчик, надо во все справочники и документы добавить реквизит "Основной". Тогда ваша программа примет вид Всё. Зачем себе лишней работы прибавлять? Её и так полно.
#21 by hhhh
и тормозить не будет, и все будут довольны.
#22 by Godofsin
Гениально!
#23 by Nikama
А чем использование общего реквизита плохо? И зачем нужен "геммор" (простите за мой французский) с добавлением кучи реквизитов? А вдруг у меня в конфе 1000 объектов?
#24 by Alex S D
срабатывает не для всех объектов потому что для объектов выгружаемых по ссылке данный обработчик не вызывается
#25 by Nikama
так, а теперь для тех "кто в первый раз" - поподробнее, что значит по ссылке?
#26 by Alex S D
Ну допустим выгружается документ. По ссылке из документа выгружаются контрагенты и номенклатура
#27 by Nikama
ок. А как сделать так, чтобы для всех действовало?
#28 by Alex S D
да сделать то можно , это делается в аналогичном обработчике ПКО, но смысл какой? По ссылке должны быть по идее выгружены все объекты, иначе ссылка пустая будет
#29 by Nikama
хорошо. Тогда поставим вопрос по другому. Мне нужно перенести все данные из объектов справочники/документы, для которых реквизит "Основной" = Ложь. Это правилами можно сделать или нет?
#30 by Абыр
Можно
#31 by Alex S D
Можно, но вот глобального обработчика вроде нет. Придется в каждом объекте прописывать
#32 by Абыр
+ Можно использовать глобальное "Перед конвертацией объекта", только там уже не Объект будет, а Источник
#33 by Nikama
Где ж Вы раньше были. Я с объектом бьюсь второй день. Спасибо! Спасибо!
#34 by Alex S D
о , точно
#35 by Nikama
Возник новый вопрос. При выгрузке документов, переносятся строки. Если в строках есть тип справочник (тот, у которого значение основной = истина), то данное значение не заполняется. В ПКО для справочника добавила "Перед выгрузкой" Отказ = Источник.Основной
#36 by Nikama
ну хоть кто-нибудь. Очень-очень надо
#37 by hhhh
наверно ПриВыгрузке
#38 by Nikama
можете чуть поподробнее объяснить - почему при выгрузке будет правильно отрабатывать?
#39 by Абыр
Ну так и должно быть. У вас в ПКС реквизита ТЧ документа указано соответствующее ПКО. Перед обработкой ПКО, если вы завели код в глобальный обработчик "Перед конвертацией объекта", проверяется конвертируемое значение (в данном случае, элемент справочника) по вашим условиям и, так как "основной = истина" у конвертируемого значения, то оно не выгружается, в приемнике реквизит заполнен не будет. Вы вроде это и хотели, нет?) Определитесь: если у вас не должны выгружаться объекты с "основной = истина" только по ПВД, то проверку помещаете в глобальный обработчик "Перед выгрузкой объекта". В этом случае будут выгружены объекты с "основной = истина" по ссылкам. Если объекты с "основной = истина" не должны выгружаться вообще, то проверку производите в глобальном "Перед конвертацией объекта".
#40 by Nikama
хорошо. Этот момент понятен. Теперь вопрос - как отследить изменение выгружаемых объектов, даже если они с признаком основной?
#41 by Nikama
Еще раз сформулирую задачу: Надо выгрузить все объекты, у которых свойство Основной = Ложь, а также все объекты, которые были изменены. Например, есть справочник "Контрагенты", элемент "Рога и копыта". Основной = Истина. Но поменяли адрес. Значит данный элемент во второй базе надо заменить.
#42 by Абыр
По поводу измененный/не измененный используйте планы обмена. Только и в этом случае, если будете контролировать в глобальном "Перед конвертацией объекта", у вас не будут выгружаться по ссылкам объекты с "основной=истина", по которым не было зарегистрировано изменений.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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