|
Обмен на КД | ☑ | ||
---|---|---|---|---|
0
Черный всадник
27.05.16
✎
16:24
|
Доброго времени суток.
Есть две базы 1С - руины КА и база на библиотеке стандартных подсистем. Между ними посредством конвертации данных версии 2.1.8.1 настроен обмен. Используется одна платформа 8.3.6.2390. Проблема заключается в том, что обмен идёт через файлы и в файл помещаются все накопленные изменения, поэтому, если изменения не могут быть корректно обработаны другой стороной, то обмен прекращается. Хотелось бы, чтобы в один файл помещались изменения связанные по смыслу, а в случае поломки файл с ошибками сохранялся в отдельном каталоге и не мешал дальнейшему обмену. Подскажите, пожалуйста, возможно ли это сделать не сильно переписывая выгрузку и загрузку файлов? |
|||
1
b_ru
27.05.16
✎
16:27
|
А ты готов описать алгоритм того, как определить "изменения связанные по смыслу"?
Краткий ответ: нет. |
|||
2
ДенисЧ
27.05.16
✎
16:27
|
Интересно, если я поменяю контрагента, а потом номенклатуру. И всё это выгружу в одном сеансе - это сильно по смыслу будет связано?
|
|||
3
Черный всадник
27.05.16
✎
17:00
|
(1) Алгоритм связанности данных по смыслу не представляет никакой сложности. В данном случае в одном пакете надо выгружать заказ и его статус (если были оба изменены).
(2) Какая разница по каким правилам у меня связываются изменения данных? Алгоритм выборки связанных данных, можно реализовать в кд в правилах выборки. Вопрос - каким образом разделить файл на много маленьких. |
|||
4
Cyberhawk
27.05.16
✎
17:03
|
Не сильно переписывая такой возможности нет.
В кое-каком стороннем (платном) решении есть режим "гибкого" обмена с пропуском ошибочных объектов, т.е. обмен не останавливается из-за ошибки при загрузке / выгрузке. Но это отдельная конфигурация, т.е. мало подходит под "не сильно переписывая"... Если же самому хочется делать - ну кури события загрузки, обработку исключений при записи объектов и хранения этих объектов и передачи их обратно для регистрации в источнике... |
|||
5
Cyberhawk
27.05.16
✎
17:04
|
"в один файл помещались изменения связанные по смыслу" // Думаю, это избыточно, т.к. достаточно пропустить только тот объект, который не загрузился
|
|||
6
Черный всадник
27.05.16
✎
17:12
|
(4) Спасибо.
(5) Не совсем, некоторые сущности по сути справочники разбросаны в нескольких РС, в одном основная таблица, а в других табличные части. |
|||
7
Cyberhawk
27.05.16
✎
17:14
|
(6) Тогда выбирай изменения (перебрасывай) с одного узла на другой, который не участвует в регистрации объектов при их записи в БД, и работай уже только с этим узлом. Выбирай с него изменения, распределяй по отдельным узлам и выгружай
|
|||
8
Черный всадник
27.05.16
✎
17:16
|
(7) Спасибо.
|
|||
9
rs_trade
27.05.16
✎
17:16
|
(0) напиши сам через ком. будет гораздо лучше.
|
|||
10
тарам пам пам
27.05.16
✎
17:24
|
(7) тогда на стороне приемника придется плодить столько планов обмена, сколько будет узлов выгрузки в источнике (т. к. ЭтотУзел может быть только один в плане обмена)
|
|||
11
aleks_default
27.05.16
✎
17:33
|
Может проще систематизировать и устранить причины, по которым "изменения не могут быть корректно приняты другой стороной"?
Например поставив, нужные проверки при записи объектов? |
|||
12
Черный всадник
27.05.16
✎
17:54
|
(9) Не везде есть ком, приведённая в примере пара, только верхушка айсберга.
(11) Проблема таких ошибок в том, что их невозможно заранее предусмотреть. Особенно. когда владеешь только половиной обмена. |
|||
13
mehfk
27.05.16
✎
18:07
|
>> если изменения не могут быть корректно обработаны другой стороной, то обмен прекращается.
Грузи их в режиме обменданными.загрузка = истина. На стороне-приемнике отключай все проверки, если производится обмен данными. |
|||
14
rs_trade
27.05.16
✎
18:31
|
Фиксацию транзакции поставь поменьше.
|
|||
15
b_ru
27.05.16
✎
18:38
|
(3)А что, на основании заказа ничего больше у вас не делается? Ни счетов, ни реализация, ни оплат?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |