Вход | Регистрация


1С:Предприятие ::

Метки: 

где посмотреть в типовых обмен с досылкой непринятых пакетов?

Я
   Demetres
 
14.02.18 - 09:06
Добрый день.
Описание ситуации:
Есть две базы БД_Источник и БД_приемник, обмен через xml, изменения регистрируются на ПланОбмена. Из БД_Источник отправляем документы (в фалйе xml) для БД_приемник. База БД_приемник их обрабатывает допустим 9 из 10.
Нужно чтобы при следующем обмене из БД_Источник отправился только 1 (тот что не обработался раньше), плюс новые документы зарегистрированные на обмен.
Подскажите где можно посмотреть и есть ли вообще такое в типовых конфигурациях?
 
 
   vde69
 
1 - 14.02.18 - 09:10
вообще это на автомате выполняется за счет тикетов о получении пакета.

посмотреть можно
план-обмена/состав-отправляемых-данных
   Фрэнки
 
2 - 14.02.18 - 09:11
для большего понимания нужно не просто просить про Типовые, но указывать насколько "старые" или "новые" интересны.
Т.е. версию БСП желательно указывать.
   Остап Сулейманович
 
3 - 14.02.18 - 09:12
(0) "Нужно чтобы при следующем обмене из БД_Источник отправился только 1 (тот что не обработался раньше)"

Оно так не работает. Источник (пока не получит выгрузку из приемника) не может знать, что принялось, а что нет. И выгружает все. После получения ответа от приемника то что уже обработано снимается с регистрации. Остаются только изменения с номером сообщения выше уже обработанного.
   Фрэнки
 
4 - 14.02.18 - 09:15
(0) Пакет либо отработан целиком, либо не отработан целиком. Если в передаваемых Пакетах содержатся слишком громоздкие пакеты, которые долго обрабатываются, сбоят, требуют повторной выгрузки, то на уровне типовых такого механизма замечено не было.

Я бы написал свою процедуру выгрузки в обработке, которая формировала бы очередной пакет только с ограниченной порцией данных. Но это превратить весь обмен в окончательно асинхронный процесс - задолбаются передавать.
Поскольку это будет очередь на отправку, в которой следующий пакет в отправку пускать нельзя, пока не придет ответка от получателя по предыдущему пакету.
   Serg_1960
 
5 - 14.02.18 - 09:19
(0) Ключевой вопрос: почему обрабатывается 9 из 10? Так запланирована и это не ошибка? Если так запланирована - то это плохое планирование :)

Впрочем это можно реализовать, если не отправлять то, что не будет обрабатывается на стороне. В типовых такое можно реализовать на стороне базы-источника за счет правил регистрации.

А если говорить в общем случае, то в типовых конфигурациях, в типовых планах обмена используется принцип "всё или ничего"- по умолчанию обмен идёт в транзакции. Если база-источник не получит подтверждение - то все объекты вновь будут отправлены в обмен.
   Фрэнки
 
6 - 14.02.18 - 09:20
Там еще проблема не только на стороне Отправителя, но и на стороне Получателя, в котором ВЕСЬ пакет в приемке идет как _1_ транзакция.
   Demetres
 
7 - 14.02.18 - 09:21
(4) В обмене отправляются не связанные друг с другом документы. И поэтому если 1 из 10 не пришел то ничего страшного, его можно передать при следующем обмене вместе с другими документами.
   Фрэнки
 
8 - 14.02.18 - 09:21
(7) не может прийти только 1 из 10, если все 10 были в одном пакете.
   Demetres
 
9 - 14.02.18 - 09:22
(6) причем обмен в котором мы загрузили 9 из 10 нужно считать успещным и для узла менять номер полученного пакета.
   Serg_1960
 
10 - 14.02.18 - 09:23
(7) Ничего "страшного" - Вы так считаете? А если подумать?

Есть такая фишка у типовых: поддержка целостности и не противоречивости данных. Легче отвергнуть всё, чем принять часть информации.
 
  Рекламное место пустует
   Serg_1960
 
11 - 14.02.18 - 09:26
PS: теоретически можно такое реализовать, это не сложно. В подтверждении получения пакета можно отправить игнорирование регистрации изменений для таких объектов и на стороне базы-источника этот случай можно поймать и обработать за счёт повторной регистрации изменений.
   Demetres
 
12 - 14.02.18 - 09:27
(10) в моём случае, если один документ из 10000 не загрузился, то ничего страшного нет, страшно что документы будут накапливаться и обмен загнется.
   Фрэнки
 
13 - 14.02.18 - 09:27
(9) Увы, если это типовая и не испорченное поведение Обмена на стороне Получателя (не было шаловливых ручек программиста), то не примется 9 объектов из 10 , если все 10 объектов были отправлены в одном пакете (хмл-файл  обмена).
   Demetres
 
14 - 14.02.18 - 09:28
(11) в принципе как реализовать есть идеи. Хотелось бы посмотреть пример из типовых как там реализовано (если есть конечно такое).
   Фрэнки
 
15 - 14.02.18 - 09:31
(14) Если подобное где-то есть, то это будет "ручная" регистрация объектов на выгрузку. Именно на выгрузку.
На стороне Получателя в типовых - только Транзакция, только Хардкор.
   Demetres
 
16 - 14.02.18 - 09:38
(15) Понятно.
   bolder
 
17 - 14.02.18 - 09:39
(0) Никогда ещё такое не поддерживалось в 1С.
   bolder
 
18 - 14.02.18 - 09:42
(15) При ручной установке легко получить нецелостность базы.
   Serg_1960
 
19 - 14.02.18 - 09:51
(15) Просто алгоритм и ничего более, просто типовая УПП:

Процедура ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента)
    
    Если ТипЗнч(ЭлементДанных) = мТипСправочникРегОтчеты Тогда
        
        ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
        
    КонецЕсли;
    
КонецПроцедуры

мТипСправочникРегОтчеты = Тип("СправочникОбъект.РегламентированныеОтчеты");
   Serg_1960
 
20 - 14.02.18 - 10:07
*(19) В типовой конфигурации УПП к этому справочнику регламентированных отчетов свои особенные отношения.

Кстати, рекомендую в своих конфигурациях глобальным поиском поискать ".Игнорировать". Некоторые будут удивлены :)
   Demetres
 
21 - 14.02.18 - 16:37
Всем спасибо)



Список тем форума
Рекламное место пустует  
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует