|
ПланыОбмена.УдалитьРегистрациюИзменений | ☑ | ||
---|---|---|---|---|
0
Csar
14.08.13
✎
10:46
|
Всем привет. Мозг что то совсем взорвался. Проследите, пожалуйста, цепочку размышленияи подскажите, почему не удаляется регистрация изменений в плане обмена?
Обработка, вызываемая регл. заданием. Тут частичный код. Объявляем узелок: УзелОбмена = ПланыОбмена.ОбменЛогистика8_БИБ82.НайтиПоНаименованию("центр");
Далее смотрим все ли файлы выгрузок загружены во вторую базу (т.е. нет ли оставшихся файлов выгрузок в конкретной папке)? Если нету файлов, значит в узел записываем НомерПринятого такой же как и НомерОтправленного. Если же есть не загруженные файлы выгрузок, но в качестве НомерПринятого записываем минимальный номер из невыгруженных файлов выгрузки (у меня номер файла-наименование совпадает с НомерПринятого). Если МассивФайлов.Количество() > 0 Тогда
Мы рассмотрим, когда все файлы загружены и удалены. Тогда перед очередной выгрузкой я удаляю регистрацию изменений до последнего выгруженного НомерОтправленного, т.е. все, вплоть до того, что выгрузилось в последний раз. При этом я умышленно изменил 1 документ, что бы сейчас выгрузить всего 1 документ, согласно регистрации документов. А на деле получается, что выгружается все, что и ранее выгружалось плюс этот документ, т.е. регистрация всего до последней выгрузки из плана обмена не удалилась. Почему? |
|||
1
Csar
14.08.13
✎
10:48
|
(0) Да, обмен односторонний - выгрузка, но с затиранием регистрации уже выгруженных документов и загруженных оных в другую базу.
|
|||
2
Csar
14.08.13
✎
10:54
|
Когда я допобработкой стираю все регистрации документов, то ничгео не выгружается (понятное дело), и при изменении/добавлении соответвующих документов опять не происходит очистка регистрации узла и регистрация идет накопительным путем и файл выгрузки все больше становится, хотя у меня в условии стоит очистка регистрации от документов, которые уже ушли базу-приемник.
|
|||
3
Csar
14.08.13
✎
11:06
|
Я не понятно объяснил или просто не понятно почему не не удаляется регистрация?
|
|||
4
hhhh
14.08.13
✎
11:12
|
(3) может узел не тот? Точно узел "центр" - это у вас вторая база?
|
|||
5
Csar
14.08.13
✎
12:08
|
(4) узел тот, через него выгружается и у него удаляю регистрацию. Другого узла нигде не объявляю. Вообще да, там два узла - один с зеленой точкой, другой "центр" без зеленой точки
|
|||
6
Maxus43
14.08.13
✎
12:13
|
запросом к таблице изменений - увидищь наверняка, что зарегистрировано, и какой номер
|
|||
7
Csar
14.08.13
✎
12:14
|
(6) а как увидеть эту таблицу? Я могу запросом увидеть лишь НомерОтправленного и НомерПринятого
|
|||
8
Maxus43
14.08.13
✎
12:15
|
запросом к таблице ИЗМЕНЕНИЙ конкретного документа. нажми в конструкторе запросов кнопочку зелёную, над списком объектов конфы
|
|||
9
Mitriy
14.08.13
✎
12:16
|
на ИТС есть обработка РегистрацияИзмененийДляОбмена... все придумано за тебя...
|
|||
10
Maxus43
14.08.13
✎
12:17
|
(9) там номера нет
|
|||
11
Csar
14.08.13
✎
12:19
|
(8) Там действительно вместо Номера - Null
|
|||
12
Maxus43
14.08.13
✎
12:20
|
(11) значит не отправлен.
Номер проставляется при вызове метода ВыбратьИзменения |
|||
13
Maxus43
14.08.13
✎
12:20
|
у меня такое чувство, что своим кодом ты пытаешся прописать то, что в платформу и механизхмы обмена вшито по умолчанию
|
|||
14
Csar
14.08.13
✎
12:26
|
(12) Этот метод получается надо вручную вызывать!? Видимо у меня не работает очистка регистрации по номеру именно из-за того, что номера и нету, хотя изменение есть и документы выгружаются стандартным "УниверсальныйОбменДаннымиXML" с подключенным к нему моим узлом в качестве отбора документов.
|
|||
15
Рэйв
14.08.13
✎
12:27
|
(0)При приеме ответа от базы отправленные изменения удаляются из регистрации автоматически.
Хватит турбовелосипеды изобратать:-) |
|||
16
Csar
14.08.13
✎
12:28
|
(15) у меня односторонний ответ
|
|||
17
Csar
14.08.13
✎
12:28
|
тьфу, обмен, а не ответ)
|
|||
18
Рэйв
14.08.13
✎
12:29
|
(16)У меня тоже изменения идут только в одну стороны. Что не мешает мне формировать пустой ответ и принимать его обратно, который чистит уже отправленное
|
|||
19
Рэйв
14.08.13
✎
12:31
|
Как то так
в модуле плана обмена Процедура ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента) Если ПараметрыСеанса.ПрефиксУзлаРаспределеннойИнформационнойБазы="ЦБУ" Тогда ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; КонецЕсли; КонецПроцедуры |
|||
20
Рэйв
14.08.13
✎
12:31
|
это будет формировать пустой ответ от базы приемника
|
|||
21
Csar
14.08.13
✎
12:35
|
(20) у меня нет РИБа. Я из одной базы выгружаю в файл документы, а другой базой подцепляю этот файлик.
Причем файлик выгружается путем вызова обработки (14). |
|||
22
Csar
14.08.13
✎
12:35
|
А, торможу. Сейчас попробую в модуль самого плана обмена нарисовать процедурку.
|
|||
23
Csar
14.08.13
✎
12:43
|
(20) вписал код в МО плана, но без условия префикса = ничего не изменилось.
|
|||
24
Рэйв
14.08.13
✎
13:12
|
(23)Что именно не изменилось?
|
|||
25
Csar
14.08.13
✎
13:57
|
(24) номер как не проставлялся так и не проставляется в таблицах изменений
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |