|
КД - необычный обмен | ☑ | ||
---|---|---|---|---|
0
КУНГ ФУ 1С
05.02.14
✎
10:45
|
Настроил обмен между двумя конфигурациями А и Б.
Из конфигурации А выгружаю определенные документы в конфигурацию Б. Изначальная задача: Настроить обмен так чтобы при удалении объекта из конфигурации А, в конфигурации Б, он оставался как есть. Суть: конфигурация А - является бухгалтерский базой, а конфигурация Б - управленческой. Иногда приходится продажи скрывать, для этого бухгалтер удаляет некоторые продажи с базы А. В базе Б - хранятся все продажи. Настроил КД, с правилами обмена следующими: В базе А, перед выгрузкой объектов, поставил условие Отказ = Объект.ПометкаУдаления; Все вроде ничего, при пометке удалении в базе А, данные в базе Б - не изменяются, остаются проведенными. Но после операции Удаление помеченных на удаление в базе А. В базе Б - документы помечаются на удаление. Как решить данный вопрос? |
|||
1
КУНГ ФУ 1С
05.02.14
✎
10:48
|
Понимаю что нужно в КД поставить условие если объекта не существует то отказаться от выгрузки. Но как прописать данное условие?
|
|||
2
hhhh
05.02.14
✎
11:00
|
Отказ = Истина;
|
|||
3
КУНГ ФУ 1С
05.02.14
✎
11:13
|
(2) Как проверить что объекта уже нет в ИБ.
|
|||
4
Fedor-1971
05.02.14
✎
11:22
|
Поиграйся с флажками:
в ПКО документа "не замещать объект в приёмнике..." в ПКС свойства ПометкаУдаления "Не замещать значение свойства для существующих объектов" |
|||
5
Йохохо
05.02.14
✎
11:24
|
не что то такое?
Если ТипОбъекта = Тип("УдалениеОбъекта"); Тогда ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; КонецЕсли; |
|||
6
Fedor-1971
05.02.14
✎
11:25
|
(4)+ Наверно, ПКС будет правильнее, поскольку флажок в ПКО не даст загрузить исправленные документы в базе источнике
|
|||
7
Йохохо
05.02.14
✎
11:29
|
(6) только объекта нет, ага
|
|||
8
Vovan1975
05.02.14
✎
11:35
|
возможно что в обмене участвует некий план обмена, по которому и выбираются документы. И те, которые потерты, выгружаются по другому правилу, которое в результате и устанавливает пометку на удаление в базе-приемнике
|
|||
9
Fedor-1971
05.02.14
✎
11:37
|
(7) а откуда тогда пометка удаления в базе приёмнике? Если объекта нет, то и в выгрузку ничего не должно попасть, соответственно и загружать просто нечего.
|
|||
10
Vovan1975
05.02.14
✎
11:40
|
другой вариант - использование параметра, в который при загрузке в базу-приемник пихаются сведения о каждом документе выгрузки, затем все эти сведения сравниваются со списком документов за период и "отсутствующие" помечаются на удаление.
|
|||
11
Йохохо
05.02.14
✎
11:42
|
(9) см (8)
|
|||
12
Зойч
05.02.14
✎
11:43
|
через планы обмена выгрузка?
|
|||
13
КУНГ ФУ 1С
05.02.14
✎
11:48
|
(12) Нет. Обмен происходит по правилам настроенные в КД.
(9) В том дело, что в момент удаление с ИБ источника (база А), он успевает регистрировать события во всех планах обмена, что он удален. В момент обмена, настроенные мной правила выгрузки (Отказ = Объект.ПометкаУдаления) игнорируются, так как документ уже удален и его в базе нет. Соответственно в базе приемника(база Б), он читает изменения по плану обмена и тоже удаляет его. (т.к. прав нету на непосредственное удаление он помечает на удаление). |
|||
14
Зойч
05.02.14
✎
11:49
|
(13) как обмен запускаешь?
|
|||
15
КУНГ ФУ 1С
05.02.14
✎
11:50
|
(14) Выполнить обмен, через монитор обменов. Выгрузить в базе источника, и загрузить в базе приемника.
|
|||
16
Зойч
05.02.14
✎
11:51
|
(15) конечно же через планы обмена получается
|
|||
17
Йохохо
05.02.14
✎
12:06
|
(16) +1, иначе откуда "Но после операции Удаление помеченных на удаление в базе А. В базе Б - документы помечаются на удаление.
" |
|||
18
Kvestin
05.02.14
✎
13:34
|
(0) Все ответы по КД есть в стандартных обработка загрузки/выгрузки. Заглянул в нее и нашел что у конвертации есть соответствующий обработчик. Там даже пример есть, который на ваш вопрос отвечает:
Обработчики "Конвертация" При получении удаления Условия возникновения события Событие выполняется только для On-Line обмена при получении данных об удалении объекта. Параметры: Объект - Объект который предполагается удалить при обмене. Отказ - булево. Служит для отказа от удаления объекта. Пример: Если ТипЗнч(Объект) = Тип("ДокументОбъект.РеализацияТоваровУслуг") Тогда Отказ = Истина; КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |