|
Работа плана обмена | ☑ | ||
---|---|---|---|---|
0
apdate by
13.07.21
✎
15:59
|
Подскажите пожалуйста. я не очень хорошо понимаю логику плана обмена
если я удалю изменения не по номеру сообщения а по источнику тогда что бцдет если изменили какой либо источник который я сейчас удаляю? он так же удалиться со всех сообщений? |
|||
1
ДенисЧ
13.07.21
✎
16:01
|
Что значит "удалю изменения по источнику"?
|
|||
2
apdate by
13.07.21
✎
16:02
|
как правильно удалять изменения из плана обмена?
потом заметил так же что пока я не выполню ПланыОбмена.ВыбратьИзменения() , УзелОбъект = УзелОбмена.ПолучитьОбъект(); УзелОбъект.НомерОтправленного = УзелОбъект.НомерОтправленного+1; УзелОбъект.Записать(); номера сообщения я не вижу а как только выполню это только тогда появляется номер сообщения отсюда вопрос как быть в следующем случае когда например по каким то причинам обмен не прошел только по одной позиции товара а по все остальным прошел удачно но удаляю я по номеру а выходит что попытаться в следующий раз я уже не смогу обменяться? |
|||
3
ДенисЧ
13.07.21
✎
16:05
|
Чтобы удалить по номеру - тебе нужно обработать ответ от приёмника. А он приходит успешным тогда и только тогда, когда весь пакет загружен. Если хоть что-то ой - тады ой.
|
|||
4
apdate by
13.07.21
✎
16:06
|
(1) в составе плана обмена только номенклатура
а следовательно при обмене если он прошел удачно тогда выполняю ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена,Товар); где товар это ссылка на номенклатуру а не номер сообщения в этом случае у меня в зарегистрированных остается этот товар и в следующем обмене я смогу повторить его выгрузку! но я как то где то читал что если я выполняю этот метод ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена,Товар); не по номеру сообщения а по зарегеному товару и если существуют еще номера сообщений и там имеется этот товар то они все регистрации по этому товару я потеряю? |
|||
5
apdate by
13.07.21
✎
16:06
|
(3) у меня обмен идет не пакетом а по каждому товару
|
|||
6
ДенисЧ
13.07.21
✎
16:07
|
А зачем тебе в 10 регистрациях один и тот же товар?
(5) Пакетом таки. А в пакете адын штюк. |
|||
7
apdate by
13.07.21
✎
16:07
|
+(5) но из за того что 1С тупит при проведении документов я переделываю и пытаюсь понять как сделать лучше
|
|||
8
ДенисЧ
13.07.21
✎
16:07
|
Ну, это если ты штатным обменом делаешь, а не изобретаешь велосипед на тетраэдических колёсах.
|
|||
9
apdate by
13.07.21
✎
16:09
|
(6) а не будет ли такого
например в 07 01 01 начался обмен товаром продолжался он 15 сек но в 07 01 10 менеджер провел реализацию (соответвенно остаток этого товара уменьшился) а в 07 01 16 я выполнил ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена,Товар); что в итоге приводит к таму что при следующем обмене информации о том что остаток уменьшился не будет это так? |
|||
10
apdate by
13.07.21
✎
16:10
|
(8) нету штатного! это самописная конфига
|
|||
11
Сурьма
13.07.21
✎
16:12
|
(9) Задумайся, зачем нужны номера сообщений, и почему изменения обычно удаляются с их учётом.
|
|||
12
apdate by
13.07.21
✎
16:14
|
(11) чего ж тогда в типовой УТ в типовом обмене с сайтом реализовано именно отмена регистрации по товару а не по номеру сообщения? Для РБ если что УТ
|
|||
13
apdate by
13.07.21
✎
16:17
|
(11) ок как быть если мне не нужно удалять все зарегистрированные объекты а только частично дабы после некоторого времени повторить обмен ими? возможно при обмене например выполнялся обмен и сервер
(приемник лег например) но обмен прошел удачно к примеру 9 из 10 товаров нафига мне поновой пихать в обмен 10 товаров когда мне нужно обменяться толь одним? |
|||
14
apdate by
13.07.21
✎
16:19
|
будет ли верным если я буду делать следующее
после обмена даже неудачного буду повторно регить необходимые обьекты к обмену увеличивая тем самым номер сообщения далее после этих действий удалять регистрацию по номеру сообщения |
|||
15
Сурьма
13.07.21
✎
16:22
|
(12) Потому, что если товар уже выгружен и принят, то смысла его отправлять повторно никакого, если его реквизиты не менялись.
|
|||
16
Сурьма
13.07.21
✎
16:22
|
(14) Вы почитайте хоть немного теории, а то как-то на такое отвечать нет желания.
|
|||
17
apdate by
13.07.21
✎
16:23
|
(11) + (15) я потерял логику
|
|||
18
apdate by
13.07.21
✎
16:24
|
(16) то есть по Вашему верно будет не удалять всю регистрацию а повторно затем обмениваться всем пакетом?
|
|||
19
apdate by
13.07.21
✎
16:25
|
подскажите пожалуйста для каких целей необходимо указывать номер сообщения и в каких случаях указывают ссылку? при ПланыОбмена.УдалитьРегистрациюИзменений()
|
|||
20
Сурьма
13.07.21
✎
16:25
|
(18) Если обмен успешный, то удалить регистрацию по номеру сообщения, а остальное отправить следующим сообщением.
|
|||
21
hhhh
13.07.21
✎
16:27
|
(14) ты занимаешься невероятной хренью. Отправляй снова 10 объектов и всё. Про теорию вероятности слышал? Ситуация, о которой пишешь, может случиться раз в год. И из-за этого ты собираешся чего-то там изобрести, что -то невероятное, с квадратными колесами?
|
|||
22
apdate by
13.07.21
✎
16:27
|
(20) а если ситуация когда 9 измененных обьектов удачно ушли в приемник а 10 не ушел по тем или инным причинам
Вы всегда пихаете в обмен Опять весь пакет? а если трафик платный то как быть? |
|||
23
apdate by
13.07.21
✎
16:28
|
(21) -> (22)
|
|||
24
apdate by
13.07.21
✎
16:29
|
я из за трафик ане могу выполнять обмен всеми пакетами! водном пакете слишком много данных особенно изображения товаров и изображения вариантов товаров
там на один товар где то 20 метров ) |
|||
25
Сурьма
13.07.21
✎
16:29
|
(22) Напиши тогда свой обмен с нуля, и не пудри людям мозги.
|
|||
26
fisher
13.07.21
✎
16:32
|
(19) УдалитьРегистрациюИзменений юзают только если уже есть гарантии доставки. При обмене с квитированием УдалитьРегистрациюСообщений не используется. В этом случае удаление происходит автоматически при чтении ответного пакета обмена - номер принятого приемником предыдущего пакета вычитывается из заголовка сообщения обмена и в источнике удаляются все изменения, номер пакета отправки которого меньше либо равен подтвержденному. А ВыбратьИзменения() фиксирует в таблице изменений номер пакета, с которыми эти изменения выгружаются. В итоге изменения не будут удалены до тех пор, пока не получено подтверждение их загрузки.
|
|||
27
apdate by
13.07.21
✎
16:32
|
(25) что я и сделал но теперь переписываю его и хочу детально рассмотреть варианты
отсюда и спрашиваю если я выполняю ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена,Товар); указывая не номер сообщения а ссылку то если произойдет ситуация описанная в (9) то все изменения удаляться ил инет? |
|||
28
apdate by
13.07.21
✎
16:34
|
(26) у меня обмен если что не с 1С а 1С TU сайт даже не сайт а там сервис на шарпе написанный крутится
|
|||
29
Сурьма
13.07.21
✎
16:38
|
(27) А зачем тебе использовать стандартные планы обмена и регистрацию изменений, если ты свой обмен написал?
|
|||
30
hhhh
13.07.21
✎
16:38
|
(22) похрен на платный. Ты что не понял про теорию вероятностей?Фирма тебе платит зарплату, пока ты будешь мудохаться с этими объектами фирма из-за тебя потеряет десятки тысяч рублей. А из-за трафика он потеряет 10 рублей. Сравни суммы.
|
|||
31
Kassern
13.07.21
✎
16:40
|
(9) для этого и есть номер сообщения. все изменения, которые делаются в момент выгрузки, регистрируются уже под новым номером сообщения.
|
|||
32
серый КТУЛХУ
13.07.21
✎
16:42
|
тебе уже неоднократно объясняли - у тебя в консерватории бардак.
документ ни при чем. сущность(товары) регистрируются к обмену по факту изменения и с учетом доп.условий в подписке. сущность(документ) регистрируется по факту его изменения и с учетом доп.условий в подписке. и то и то выгружается в нужном согласно одним обработчикам правил обмена(!) - и принимаются в приемнике согласно другим обработчикам правил обмена. КАК это все принятое в приемнике показывать/учитывать/использовать/итп - дело приемника. регистрировать-передавать-принимать измененную сущность(документ) кусочно - глупость несусветная, т.к. получиться может так: вот эту строку документа не выгружаем потому что у товара реквизит неправильный и документ уехал бехз этой строки - отредактировали этот товар (не документ!) - товар (не документ!) зарегистрировался и поехал в приемник - и в приемнке, в котором теперь бы должна быть строка и по этому товару - нету тупо потому что тот документ не менялся в источнике и никогда не изменится. "где деньг, зин?" (с) |
|||
33
Kassern
13.07.21
✎
16:42
|
(31) вы сделали выгрузку, если все хорошо, то удалили все изменения с данным номером сообщения, что в этом сложного?
|
|||
34
серый КТУЛХУ
13.07.21
✎
16:48
|
(33): ну он и тут хочет кусками, чтобы "не захлОмлять" (орфография сохранена)
|
|||
35
Kassern
13.07.21
✎
16:50
|
(33) зачем в цикле к примеру для 100тыс товаров обходить их всех и каждый удалять из узла)) Когда это делается 1 раз с указанием номера сообщения.
|
|||
36
Kassern
13.07.21
✎
16:51
|
(34) возможно ТС уже осознал свои косяки в реализации и сделает нормальную регистрацию объектов и выгрузку/очистку по номеру сообщения)
|
|||
37
fisher
13.07.21
✎
16:53
|
(28) Тогда так. Из справки по УдалитьРегистрациюИзменений():
"Если в качестве первого параметра указан одиночный узел, то в параметре может быть указан номер сообщения. В этом случае метод УдалитьРегистрациюИзменений удаляет из всех таблиц регистрации изменений все записи относящиеся к указанному узлу, у которых номер сообщения меньше или равен значению второго параметра." |
|||
38
серый КТУЛХУ
13.07.21
✎
17:41
|
(36): да там наверное ему и не надо будет этого всего сложного. ему ведь по сути не надо "ответок" ждать, считается что все что отвесили и передали - доехало и алё. не?
если так - то там тупо обработкой выгружать все и тупо зачищать всё. ну или если не так - то смотреть что уехало - то и вычищать, это все тоже не сложно. |
|||
39
Kassern
13.07.21
✎
17:43
|
(38) а что делать с теми позициями, по которым произошли изменения в период выгрузки? В этом случае, после выгрузки изменения по ним очистятся. Поэтому и нужны номера сообщений.
|
|||
40
серый КТУЛХУ
13.07.21
✎
17:48
|
(39): ну там в последней строке так и сказано: "что уехало - то и вычищать". то же самое - просто другими словами...
|
|||
41
Kassern
13.07.21
✎
17:57
|
(40) нда, вы выгрузили товар, у него на момент выгрузки было 10шт в наличии, пока формируете xml/json файлик остаток уже поменялся у это позиции. А вы возьмете и бахните изменения по данному товару. В итоге в следующей выгрузке его уже не будет, а это повлечет кучу косяков в дальнейшем.
|
|||
42
Kassern
13.07.21
✎
17:58
|
(41) в общем при постоянных обменах с короткой периодичностью имхо надо юзать функционал с номерами сообщений, чтобы таких коллизий не было
|
|||
43
серый КТУЛХУ
13.07.21
✎
18:32
|
(41): сфиговли? например перед формированием грохну - если надо запишет по новой (пока формирую и передаю), это записанное до след.раза доживет.
(42): по слогам. "по номеру обмена" - это и один из способов упоминаемого в (38) "что уехало - то и вычищать" |
|||
44
Вафель
13.07.21
✎
18:36
|
А если грохнешь и не сформируешь?
|
|||
45
серый КТУЛХУ
13.07.21
✎
18:38
|
(44): а я в тразакцию заверну, не сформирую - откачу. ы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |