Имя: Пароль:
1C
1С v8
обмен по правилам. нужно не загружать объект совсем (даже по ссылке)
0 Сергей2017
 
30.04.19
18:40
есть документ, и в нем есть ссылка на другой документ. этот второй документ нужно при определенных условиях не выгружать совсем, то есть в базе приемнике должен появитьс документ 1, но вместо ссылки на второй дожно быть просто пустое место.
у меня сейчас это все работает через ручную регистрацию объектов, т.е. я помечаю документ 1 на выгрузку, потом проверяю нужно ли выгружать документ 2, если надо, то помечаю его на выгрузку, если не надо, то соответственно не помечаю.
И бок в том, что если я документ 2 не помечаю на выгрузку, то он все равно загружается, но как ссылка, то есть пустой (заколнен только номер и дата), а нужно чтобы документа 2 не было совсем физически в базе приемнике.
Я попробовал сделать в документе 2 в модуле объекта в передзаписью проверку, но теперь у меня вместо пустого документа получается "объект не найден". я попытался это тоже обработать, то есть при записи жокумента в базе приемнике проверяю на объект не найден и затираю ссылку там где объект не найден. Но в итоге у меня стало криво работать отложенное проведение.

Может быть ктото подскажет более элегантный способ как это все разрулить, желательно напрямую через правила конвертации
1 Фрэнки
 
30.04.19
18:46
а какими правилами пользуешься написать забыл?
2 Сергей2017
 
30.04.19
18:48
правила для обмена между базами с одинаковыми конфигурациями УТП, правила делал сам, для конвертации данных 2.1
3 Фрэнки
 
30.04.19
18:49
А когда становится известно, что Ссылка в реквизите должна быть пустой?
4 Сергей2017
 
30.04.19
18:52
в момент пометки документов на выгрузку

http://joxi.ru/Y2LQQZoH7EDvpA
может быть вот эту галку включить?
так-то я все реквизиты сейчас обхожу и то что нужно помечатю на выгрузку, если это справочник.
а связанные документы я отбираю ччерез структуру подчиненности и соответственно тоже их помечаю если их нужно выгрузить
5 Фрэнки
 
30.04.19
18:52
ни после выгрузки объектов, раньше? Я думаю, что процедуру надо посадить на получение данных из источника, на обработку Входящие данные или как она там правильно называется. Открывать надо конверталку, чтоб посмотреть
6 Фрэнки
 
30.04.19
18:54
(4) можно и тут, но это же форма просто сгенерит все ПКО на объект, который уже помечен на выгрузку
7 Фрэнки
 
30.04.19
18:54
не. Это не поможет. Это как раз оставит заполненную ссылку, которая затем в Приемнике будет "объект не найден"
8 Сергей2017
 
30.04.19
18:58
(5) это где-то тут?
http://joxi.ru/8AnbbPnUzykW8A
9 Фрэнки
 
30.04.19
19:01
значит так... там становимся на нужное нам ПКО в окне Настройка правил обмена - наш документ
В нижней части окна видим - Конвертация свойств
В этой же части нижней части столбец - Правило конвертации - кликаешь в том столбце и откроется Обработчик - ПКС - вот там можешь прописать установку значения.

Но это не единственный способ
10 timurhv
 
30.04.19
19:04
(0) в ПКО документа 2 поставить "Не создавать новый объект в приемнике, если он НЕ найден".
11 Сергей2017
 
30.04.19
19:08
(10) бывает что его таки надо создавать, то есть это должно по условию работать
12 Сергей2017
 
30.04.19
19:11
(9) сложность в том, что надо ли его устанавливат или не надо - это зависит от наличия у второго документа связанного с ним другого документа (платежки), и эта проверка сейчас работает в момент пометки на выгрузку. а если чере ПКО делать, то получается придется эту логику в ПКО каким-то образом прописать (знаю что еоретически вроде как можно такое сделать, но я если честно так не делал никогда)
13 Фрэнки
 
30.04.19
19:12
Можно еще по столбцу Источник клинуть и прописать. Сейчас сделаю скрин.
14 Фрэнки
 
30.04.19
19:17
15 Сергей2017
 
30.04.19
20:53
попробовал вот эту галку поставить в ПКО документа 2
http://joxi.ru/p2744qyHKNYPpA
таки да, в док 1 теперь получается вместо ссылки Объект не найден
16 timurhv
 
30.04.19
21:03
(11) создайте второе ПКО для док 2, порядок выставите более приоритетное. Будет у вас новым ПКО создаваться, а старое основное ПКО для док 2 будет просто искать существующие.
В обмене типовых так для сотрудников сделано в обмене между ЗУП/ЗиК и БП/БГУ.
17 Сергей2017
 
30.04.19
21:10
(16) а по какому принципу оно будет тогда понимаю какие ПКО использовать?
типа сначала отрабатывает ПКО, которое создает, проверяет надо ли создавать, если не надо, то идем на второе ПКО, которое просто ищет. так как-то?
18 Фрэнки
 
30.04.19
21:14
(17) а для чего я тебе скрин постил?
19 timurhv
 
30.04.19
21:36
(17) из ПКО будет использоваться основное текущее с галочкой не создавать. Второе ПКО дока 2 вызывайте из ПВД этого дока 2, выставив приоритет более высокий у ПВД, чем дюпроблемный документ. Если ПВД нет для дока 2, то создайте его. Можно использовать одно ПВО, просто из ПВД передавать параметр и считывать его в основном ПВО. Если во входящих параметрах в ПВО он есть, то переназначение настройки ПВО, снимаете признак не создавать объект.
20 Сергей2017
 
30.04.19
21:38
(18) то есть делаем проверку заполнен ли какой-то реквизит, который в нормальном документе (полном) 100% должен бытьзаполнен, например организация, и через него понимаем полный это документ или неполный, и решаем надо его загружать или не надо. правильно уловил?
21 Cyberhawk
 
30.04.19
21:55
Это решается глобальным обработчиком конвертации "Перед выгрузкой объекта" - в нем определяешь, выгружается ли он по ссылке или через ПВД, и если по ссылке от отлуп
22 Сергей2017
 
30.04.19
22:19
24 Сергей2017
 
01.05.19
01:53
(19),(21) каким образом в ПВО можно понять по сслке выгружается объект или через ПВД?
25 Cyberhawk
 
01.05.19
07:22
(22) Тут, но фокус немного больше, чем Я описал. Почитал бы хоть справку в КД для этого обработчика.
Короче этот обработчик не вызывается при выгрузке объекта по ссылке, поэтому в нем в исходящие данные пишешь маркер.
А в обработчике "Перед конвертацией объекта" уже анализируешь маркер.
26 Сергей2017
 
01.05.19
11:40
(25) да я давно уже читаю справку из КД, но если честно так и не понял как там все работает.
попробую через маркер сделать как ты описал.

вообще я пока сделал так - в правилах конвертации документа 2 указал чтобы не создаватьобъект при выгрузке по ссылке, соответственно у меня получается в базе приемнике объект не найден, а там я через подписку на событие если у объекта стоит режим обменданными.загрузка = ИСТИНА, то проверяю на объект не найден и заменяю на пустую ссылку если нужно. но конечно трудно назвать это красивым решением
27 Фрэнки
 
01.05.19
13:49
(26) это решение не просто не красивое, но может быть и глючное, поскольку у тебя нет уверенности в том, что на момент записи одного из документов в базу _уже_ записан нужный другой документ
28 Фрэнки
 
01.05.19
13:55
т.е. у тебя есть док1 и док2, но при обработке док1 с признаком обменданными.загрузка = ИСТИНА до обработки док2 дело еще не дошло и, соответственно, в проверке свойства по ссылке будет получено "объект не найден" и ты заменишь ее на пустую
29 Сергей2017
 
01.05.19
16:40
(28) млин, ты прав. как все сложно, капец((
30 Сергей2017
 
02.05.19
20:19
http://joxi.ru/v29GGM8TZpvEqr
черт, что я делаю не так, опять выгружаетс как объект не найден((((((
31 hhhh
 
02.05.19
22:07
(30) так вы в правиле конвертации это пишите. Не надо правило выгрузки
32 Сергей2017
 
02.05.19
23:26
(31) попробовал там
http://joxi.ru/Q2K11KoULveRyr

в итоге после обмена получаю
http://joxi.ru/823vv7XT987O4m
33 Сергей2017
 
02.05.19
23:45
попрбовал в глобальном сделать, теже яйца
http://joxi.ru/823vv7XT987j4m

может помогите кто-то по тимвьюверу, я денег заплачу, очень надо
34 hhhh
 
03.05.19
00:34
(32) вы чего-то не там копаете. Вам надо это поле заявка в тч услуги очистить.
35 Сергей2017
 
03.05.19
09:37
(34) то есть надо во всех реквизитах где мне надо очищать выгруженное по ссылке прописать в ПКС эту конструкцию?
36 Сергей2017
 
03.05.19
11:24
вот так работает как надо
http://joxi.ru/J2bBBpQH0V6xP2

а вот так выгружаетс ссылка и объект не найден состветственно
http://joxi.ru/krDRRVoUK4j0E2

похоже условие не отрабатывает
37 Сергей2017
 
03.05.19
17:56
проблема в том, что даже при выгрузке по ссылке в ПКС в перевыгрузкойданных если в документе 2 заполнен физически контрагент, то оно его и видит что он заполнен и соответственно отказ= истина не работает.
не могу3 врубиться как же понять чтоименно по ссылке выгружается объект. Может это надо на стороне загрузки отлавливать, типаесли контрагент не заполнен, то отказ и объект не записываем?

http://joxi.ru/bmoJJPXC3yzbYr
38 Сергей2017
 
03.05.19
19:25
В итоге сделал через рс за 10 мин
В который раз убеждаюсь, что если с кд дело затягивается, то лучше сразу делать по-другому
39 Cyberhawk
 
06.05.19
12:34
Просто ты не собрался с силами и в очередной раз не взял этот барьер
40 Пузан
 
06.05.19
12:55
В ПКО по ссылке все-равно загрузит. Поэтому в ПВД в обработчике Перед выгрузкой: Отказ = Истина. Ну и естественно что можно всякое проверить перед этим.
41 Вафель
 
06.05.19
13:11
Отказ = Истина;
в ПКС
42 Вафель
 
06.05.19
13:12
ну или просто отключи/удали этот ПКС