|
Выгрузка через ПланОбмена | ☑ | ||
---|---|---|---|---|
0
Csar
14.08.13
✎
14:39
|
Еще раз добрый день.
Возникла неприятная ситуация. дело в том, что у меня ПланОбмена настроен на изменения определенного вида документов. Их изменения "накапливаются" в этом ПланеОбмена и далее документы должны выгружаться в файл. Все хорошо, но после того как документы выгружаются, то в ПланеОбмена не присваивается им НомерОтправленного. Т.е. в запросе к ТаблицеИзменений этого типа документов висят документы, которые выгрузились, но НомерСообщения не проставляется, т.е. Null. Мне казалось, что он автоматически должен присваиваться как последний НомерСообщения + 1. Однако номера в таблице нету. Подскажите, пожалуйста, что нужно для автоматического указания номера в таблицеИзменений? Обен односторонний, т.е. только выгрузка. PS частично тема поднималась тут v8: ПланыОбмена.УдалитьРегистрациюИзменений, но в итоге вылез этот вопрос. |
|||
1
Csar
14.08.13
✎
14:45
|
На всякий случай напишу, что выгружаю через "УниверсальныйОбменДаннымиXML", к которому подцепляю узелОбмена в качестве отбора документов.
|
|||
2
rozer76
14.08.13
✎
14:49
|
потому-что "...через УниверсальныйОбменДаннымиXML"
|
|||
3
rozer76
14.08.13
✎
14:51
|
+(2) т.е. "УниверсальныйОбменДаннымиXML" только читает изменения и номера не изменяет
|
|||
4
Csar
14.08.13
✎
14:53
|
(2) ОК, а как мне в выгруженные документы в таблицу изменений вписать номерСообщения?
По идее я могу из плана обмена получить документы, которые туда занеслись. А потом по их ссылкам запросом посмотреть есть ли номер и вручную туда вписать если этого номера нету? Есть ли более пряморукий способ? |
|||
5
Csar
14.08.13
✎
15:24
|
Неужели никто не знает как присвоить номер сообщения в таблицу изменений выгруженных документов?
|
|||
6
Csar
14.08.13
✎
15:31
|
+ (4) не могу понять как принудительно вписать номер в таблицу изменений. в запросе вижу таблицу, а обратиться к ним, что бы вписать номер не могу.
|
|||
7
rozer76
14.08.13
✎
15:32
|
руками можно конечно для ПланОбменаСсылка, например Узел.НомерОтправленного=10 и Узел.НомерПринятого=9. Но я так понял вы хотите двухсторонний обмен завязать но тогда лучше или БСП использовать или "обертку" для "УниверсальныйОбменДаннымиXML" на выгрузку:
1) сначала читаете изменения из плана 2) через "УниверсальныйОбменДаннымиXML" выгружаете инфу 3) "номер отправленного" и "номер принятого" - пишите значение в параметр (через КД) в вашу XML-схему и загрузку: 1) через "УниверсальныйОбменДаннымиXML" читаете файл и значение параметра "номер принятого" - удаляете регистрацию в плане обмена для отправителя 2) загружаете инфу |
|||
8
Csar
14.08.13
✎
15:39
|
(7) про "руками" я делал так тут v8: ПланыОбмена.УдалитьРегистрациюИзменений
В запросе смотрел - Номера корректно отображаются после выгрузки, т.е. НомерОтправленного увеличивается на единицу после выгрузки. |
|||
9
Csar
14.08.13
✎
15:43
|
(7) У меня односторонний обмен - из одной в другую. Но регистрацию удаляю в случае если нет файлов выгрузки в папке, куда выгружается файл обмена. Т.е. принцип такой - выгрузил файл Узел.НомерОтправленного=10 и Узел.НомерПринятого=9.
Перед следующей выгрузкой посмотрел нет ли файлов выгрузки - нету, значит Узел.НомерОтправленного=10 и Узел.НомерПринятого=10 + удаление регистрации с номером 10. Но проблема в том, что изменения не подпсываются номерами, а остаются безномерными и посему мне не удалить регистрацию выгруженных объектов. |
|||
10
Csar
14.08.13
✎
15:45
|
(7) Из базы-источника выгружаю, в базу-приемник загружаю. В таком случае не понимаю предложенного вами алгоритма. Ведь обратной связи то нету.
|
|||
11
rozer76
14.08.13
✎
15:47
|
(10)почему нет? В одной обработки и загрузка и выгрузка
|
|||
12
rozer76
14.08.13
✎
15:48
|
(9) >>Перед следующей выгрузкой посмотрел нет ли файлов выгрузки - нету, значит Узел.НомерОтправленного=10 и Узел.НомерПринятого=10
это оч криво и не надежно ИМХО |
|||
13
Csar
14.08.13
✎
15:50
|
(11) так проблемы определиться какого номера удалять регистрацию нет. проблема в том, что изменения объектов фиксируются планомОбмена без номеров и поэтому регистрация не удаляется при указании любого номера! Получается, что вопрос именно в том, что бы регистрировать изменения документов и вписывать туда номер.
|
|||
14
Maxus43
14.08.13
✎
15:51
|
я ж писал, выбратьИзменения юзай, он сам проставит номера в таблицах изменений, да ещё и вернёт тебе выборку их. Потом ЗаписатьИзменения - сделается файлик.
После загрузки в левую базу - пошли ответ, мол загружен такой-то номер сообщения, а потом уж удалишь своим кодом регистрацию |
|||
15
Csar
14.08.13
✎
15:52
|
(12) Согласен, но, это пока костыль. Временный, я надеюсь=) Но даже он не справляется с проблемой не присваивания номера изменениям в (13)
|
|||
16
Maxus43
14.08.13
✎
15:52
|
в СП пример есть даже, как правильно более менее создавать файл выгрузки:
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); Запись = Новый ЗаписьXML; Запись.ОткрытьФайл(ИмяФайла); ЗаписьСообщения.НачатьЗапись(Запись, Узел); Выб = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения); Пока Выб.Следующий() Цикл Объект = Выб.Получить(); ЗаписатьXML(Запись, Объект); КонецЦикла; ЗаписьСообщения.ЗакончитьЗапись(); Запись.Закрыть(); |
|||
17
Maxus43
14.08.13
✎
15:53
|
после этого у тебя и файлик, и номера будут. читай на здоровье
|
|||
18
Csar
14.08.13
✎
15:56
|
(16) Супер, пока сочинял этот код вы уже написали его тут. Получается, что у меня еще и выгрузка будет, правда ввиду того, что я не смогу ее прочитать в другой базе, то она бесполезна получается? Не смогу корректно прочитать, т.к. выгрузка из УПП (что то типа того, самописное), а загрузка в бухню 2.0.
|
|||
19
rozer76
14.08.13
✎
16:02
|
(18) это прокатит если у вас РИБ например т.е. "платформенная" сериализация объекта и обратно - только для одинаковых конф. а так смотри (7)
|
|||
20
Csar
14.08.13
✎
16:03
|
(19) (17) Большое спасибо! Вроде светлый путь виднеется на горизонте.
|
|||
21
Maxus43
14.08.13
✎
16:05
|
если конфы разные - то конечно выгрузка другая будет, но суть таже - выбираем изменения (проставляются номера) - и делаем с выборкой чего хочется
|
|||
22
rozer76
14.08.13
✎
16:06
|
+(18) а зачем в таком случае вообще номера сообщений?
просто делай "УниверсальныйОбменДаннымиXML" (лучще обмен по COM если в одной сети) и поставь "изменение регистр. узлов"=Удалить регистрацию только для выгруженных и все.. |
|||
23
Csar
14.08.13
✎
16:11
|
(22) а где такая опция "изменение регистр. узлов"?
|
|||
24
rozer76
14.08.13
✎
16:32
|
(23) закладка дополнительно
|
|||
25
Csar
14.08.13
✎
16:34
|
(24) сорри, за глупые вопросы, но эта вкладка на какой объекте? Я ни в плане обмена, ни в документе не нашел ничего подобного.
|
|||
26
Csar
14.08.13
✎
17:55
|
(25) нашел =)
Спасибо огромное! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |