Имя: Пароль:
1C
1С v8
КД2 не переносить ПометкаУдаления
0 impulse9
 
03.04.13
06:07
Стоит зада - переносить документы из УТ в БП, но если в БП стоит пометка удаления, то ее не трогать (в УТ пометки нет)

Как это сделать? Галочка "не замещать значение свойства у существующих объектов в приемнике" не работает
1 Cyberhawk
 
03.04.13
06:14
Варианты:
1. Подписка на событие в базе БП
2. Исправь правила обмена для каждого дока по образу и подобию: https://www.dropbox.com/s/80s86afaz3744k7/97.png
3. Исправь правила обмена для конвертации. Образ и подобие уже не дам (опытным путем определи нужный тебе обработчик и пропиши код, которым заблочишь выгрузку свойства "Пометка удаления" у доков).
2 echo77
 
03.04.13
06:16
(0) Отключи ПКС Пометка удаления и все
3 impulse9
 
03.04.13
06:17
(2) отключал. все равно переносит
4 impulse9
 
03.04.13
06:19
1 Править саму базу не очень здорово
2 ставил, по необъяснимой причине пометка удаления переносится
3 как раз это и хотел узнать
5 Cyberhawk
 
03.04.13
06:34
(4) а если в ПКС в обработчик "ПередВыгрузкой" написать "Отказ = Истина" для какого-нибудь дока, сработает как надо?
6 impulse9
 
03.04.13
06:35
Даже полностью удалив ПКС ПометкаУдаления, все равно наблюдаю его перенос. Мистика какая-то
7 impulse9
 
03.04.13
06:38
(5) Источник - УТ. В ней Документ.ПометкаУдаления=Ложь
Приемник - БП. В ней Документ.ПометкаУдаления или Истина, или Ложь.

Так вот, надо оставить в покое реквизит ПометкаУдаления, и не трогать его в БП
8 Cyberhawk
 
03.04.13
06:39
(7) ну и? Что по поводу (5)-то?
9 impulse9
 
03.04.13
06:42
(8) Вообще это немного не в тему разговора.

У меня в БП выгружаются только проведенные документы,поэтому в "ПередВыгрузкой" я написал

Отказ = Не (Источник.Проведен);

Это работает
10 Cyberhawk
 
03.04.13
06:45
(9) То что "ПередВыгрузкой" у ПКО работает, это хорошо. Но ты проверь работу одноименного обработчика у ПКС
11 impulse9
 
03.04.13
06:47
(10) причем здесь ПередВыгрузкой?!?

Как я узнаю перед выгрузкой, при выгрузке, или даже после выгрузки, какое значение реквизита стоит в приемнике?
12 Wobland
 
03.04.13
06:51
а что в файле? нет же в нём пометки
13 impulse9
 
03.04.13
06:54
(12) Все верно, в файле пометки удаления нет

А в приемнике ИЛИ есть, ИЛИ нет. Так вот, если она есть, ее нужно ОСТАВИТЬ.
14 Cyberhawk
 
03.04.13
06:56
(11) ты (5)-то скоро проверишь? :о)
15 impulse9
 
03.04.13
06:59
(14) Ну так уж и быть, поверил твою теорию

Результат: Fail, пометка удаления переносится
16 Wobland
 
03.04.13
07:03
(13) то есть, изменение пометки происходит на этапе загрузки. вот там и ищи
17 Cyberhawk
 
03.04.13
07:03
(15) тогда попробуй туда (в ПКС) написать "НеЗамещать = Истина"
18 Cyberhawk
 
03.04.13
07:04
P.S. Ты это на новом объекте приемника проверяешь или на существующих?
19 impulse9
 
03.04.13
07:12
(17) То же самое
20 impulse9
 
03.04.13
07:15
(18) Мне не совсем понятно, как перед замещением объекта узнать его текущие реквизиты.

В ПКО "перед загрузкой" объект в базе еще не найден, а в ПКО "при загрузке" выдаются уже реквизиты из файла XML
21 Cyberhawk
 
03.04.13
07:17
(20) вообще-то все обработчики, выполняющиеся на стороне приемника, хранятся в хмл-файле и выполняются на стороне приемника.
Скинь свои правила с (17) или с (5) - мне думается, что ты не туда пишешь.
22 impulse9
 
03.04.13
07:32
23 Wobland
 
03.04.13
07:33
(22) правила обычно в XML бывают, а не в png
24 Cyberhawk
 
03.04.13
07:36
(22) А напиши состояние реквизита "Пометка удаления" у тестового дока РТУ в источнике и приемнике до выгрузки и после:
а) пометка в источнике до обмена: есть/нет
б) пометка в источнике после обмена: есть/нет
в) пометка в приемнике до обмена: есть/нет
г) пометка в приемнике после обмена: есть/нет

Не сочти за издевательство.
25 impulse9
 
03.04.13
07:51
Тест дал ошеломляющие результаты ))

Реквизит переносится как надо, если документ в источнике НЕ ПРОВЕДЕН.

Если он проведен - неважно, что стоит в приемнике, все равно встанет ПометкаУдаления=Ложь
26 Cyberhawk
 
03.04.13
07:53
Логично, т.к. документ не может быть одновременно проведен и с пометкой удаления. Тебе остается ответить на вопрос: если он в приемнике помечен на удаление (а значит не проведен), а в источнике проведен - то должене ли он переноситься?
27 Cyberhawk
 
03.04.13
07:53
*должен
28 impulse9
 
03.04.13
07:54
Должен переноситься, но не должен менять пометку удаления.

Сейчас попробую отключить ПКС Проведен
29 impulse9
 
03.04.13
13:39
Чтобы сработало, как надо, надо поставить галочки  "не замещать значение свойства у существующих объектов в приемнике" в ПКС Проведен и в ПКС ПометкаУдаления


Cyberhawk, большое спасибо за помощь!
2 + 2 = 3.9999999999999999999999999999999...