v8: коллизии при обмене ут-розница. #658494


#0 by Гений 1С
Были коллизии при обмене УТ-Розница. Заключаются в том что допустим есть непроведенный документ Д. Он отправляется из УТ в Розницу, но обмен из Розницы в УТ слетает, соответсвтенно УТ не получает подтверждения, что документ передан. В это время документ в розницы корректируют и проводят. И тут еще одна серия обменов с УТ и документ опять распроводится. Вопрос - как не меняя приоритета УТ, избавиться от таких коллизий. Решение простое.
#0 by Гений 1С
Были коллизии при обмене УТ-Розница. Заключаются в том что допустим есть непроведенный документ Д. Он отправляется из УТ в Розницу, но обмен из Розницы в УТ слетает, соответсвтенно УТ не получает подтверждения, что документ передан. В это время документ в розницы корректируют и проводят. И тут еще одна серия обменов с УТ и документ опять распроводится. Вопрос - как не меняя приоритета УТ, избавиться от таких коллизий. Решение простое.
#1 by НафНаф
выгнать гения и наладить обмен?
#2 by Гений 1С
нет, есть решение, которое даже в случае сбоев обмена автоматом разруливает такие коллизии.
#3 by НафНаф
но первая часть надеюсь в силе?
#4 by Maxus43
боюсь решение опять настолько тупое, что никто не догадается. Типа не давать менять док, пока нет подтверждения о получения другим узлом, или ловить что обмен слетел и делать сразу посторный
#5 by НафНаф
типа для этого вида документа поменять приоритет
#6 by Fragster
мы же все знаем, что все неправы, кроме тебя! зачем эта ветка? чтобы ты еще раз для себя это утвердил?
#7 by Maxus43
помню я была ветка, мол "Ускорить создание узла с 8(иль 4) часов до 2-х... Гнитальное решение выдало - держать под рукой актуальную базу псевдо-узел, чтоб быстро скопировать. Вопрос и ответ никак не связаны были, так и тут будет
#8 by НафНаф
который год гений сидя во франче доит клиента так и не разобравшись с обменами на инфостарте, что не ветка гения - про обмены никак не разберется
#9 by НафНаф
#10 by Галахад
Странная задача. А если условие дополнить. Что будет? А если в УТ документ изменили и повели. А в Рознице просто провели.
#11 by Гений 1С
а ты попробуй догадаться. или свое предложи. решение прозрачное
#12 by Гений 1С
мое решение и тут будет работать.
#13 by Гений 1С
для любителей интересных задачек. это ж гуру-тест
#14 by Зойч
так почему нельзя из ут грузить документ. раз его там распровели, значит это комунибудь нужно
#15 by Maxus43
будет работать и типовое поведение системы, главный узел - главный. А у тебя получится что главный перестал быть главным? это просто логически не правильно. Какую версию объекта брать будешь?
#16 by Зойч
как вариант снять регистрацию в ут
#17 by Гений 1С
перечитай условие задачи. Внимательно!
#18 by Гений 1С
это сложно. без подтверждения от розницы не снимется, а откуда мы знаем, прошел обмен или нет. Есть решение проще.
#19 by hhhh
ну настучать девочкам по голове, которые эти документы распроводят и в розницу не отзваниваются. Не оно?
#20 by Maxus43
Один из вариантов борьбы с коллизиями - записывать объекты пересекающиеся в регистр, чтобы потом Человек принимал решение какой объект правильный, автоматизировать это нельзя в принципе, нет гарантий
#21 by Serg_1960
Гуру-тест на тему как управлять приоритетом? И что тут сложного? Без проблем. Даже если это будет РИБ.
#22 by Гений 1С
у меня есть полностью автоматический способ этого избежать. нет, не о приоритетах речь. Давайте абстрагируемся и упростим задачу для подаванов (типо подсказки). Итак, нужно решить задачу, что если в процесе обмена передается та же версия, которая уже была передана, чтобы этого не происходило, т.е. передача игнорировалась.
#23 by Fragster
ну и что? у меня есть способ "распределеного проведения документов", когда документ синхронизируется по тому узлу, где происходит действие и проводится одновременно в нескольких узлах РИБ...
#24 by hhhh
так нельзя, допустим, предыдущая посылка потерялась, а вы в следующей не повторите документ, он вообще не попадет в розницу. То есть передавать вы обязаны в любом случае, пока не придет подтверждение, что документ принят.
#25 by Гений 1С
Это сложно, а есть простое решение. Банальное как пять копеек, думай. можно, включай мозг, думай.
#26 by Гений 1С
когда я расскажу вам суть метода, вы зацените красоту простых вещей. Но думаю, где-то уже метода проскакивала, так что на ноу-хау не претендую, просто вовремя вспомнил
#27 by НафНаф
не томи
#28 by Fragster
это офигенное решение, когда в СПб отгружают со склада в Москве - никаких проблем с коллизиями, превышениями резервов и отрицательными остатками.
#29 by alkov
Версионирование?
#30 by Гений 1С
умница, а теперь детали - какой простейший способ? не спорю, но я про простые решения.
#31 by alkov
На ум приходит только отдельный РС ВерсииПереданныхОбъектов
#32 by Гений 1С
это сложно и не очень надежно. давай решать для одного конкретного вида документа, например ПеремещениеТоваров.
#33 by Serg_1960
Если честно - то даже напрягаться чтобы понять ТС - нет желания. В - обмен "слетает" и изменение, соответсвенно не поступает, а в - "та же версия, которая уже была передана". ТС, ты уж определись с какой стороны смотреть на медаль - орел или решка.
#34 by Гений 1С
я тебя не напрягаю, мимо проходи
#35 by Maxus43
да при чем тут версионирование? Проблему выбора "правильного" объекта, который был изменён в обоих базах по разному не решить никаким версионированием, ты просто выберешь один из вариантов, на основании своих умозаключений. Чито может привести к выбору неправильного объекта
#36 by Гений 1С
мозг включи.
#37 by Гений 1С
в общем случае нет, но в данном конкретном случае есть вариант.
#38 by alkov
При загрузке в приёмнике сравнивать то, что прилетело, с последней записью в типовом РС ВерсииОбъектов. При полном совпадении - игнорировать загрузку. Правда, встаёт вопрос в реализации сравнения
#39 by Godofsin
"Да, ложь и неопределено" гыгыгы))))
#40 by alkov
Хотя не, фигня. На месте могли и изменить
#41 by Maxus43
я не выключал, коллизии - классическая задача, решение одно - кто то должен быть главным. Анализ версии объекта не спасёт
#42 by Maxus43
в один документ в одно время в Рознице поставили одну номенклатуру в ТЧ, в УТ - другую. Кто прав? Эту задачу решай, а не анализом номера версии в версионировании при сбое обменов
#43 by Godofsin
это тупо человеческий фактор
#44 by Maxus43
дак серёжа хочет его автоматизировать, ибо ситуация часто такая, а не мифические сбои обменов. По факту объекта 2 получается, надо сделать выбор о правильном
#45 by Гений 1С
Ладно, че томить, в принципе уже придумали. Дарую пиплу свой метод, изучайте. В УТ и Рознице добавляем дополнительный реквизит: Версия. включаем в правила обмена. соответственно в УТ триггер ПередЗаписью версию увеличивает на единичку. Теперь при загрузке из УТ берем версию в Рознице и если она равна версии в УТ, то не грузим. Зачем одну и ту же версию повторно передавать?
#46 by Гений 1С
не человеческий, а сбой обменов.
#47 by Зойч
так версия и так же есть
#48 by Maxus43
Ну так и думал, в итоге крики юзеров - я вот тут заполнила ТЧ на 10 тысяч строк номенклатуры, а они не попали в розницу... И о номере версии данных Гений не слышал...
#49 by Godofsin
и как это поможет разрулить ?
#50 by Godofsin
+ по твоей схеме в рознице будут одни данные, а в УТ другие
#51 by Maxus43
да никак, он не о коллизиях вобще говорил, а о сферическом сбое обмена в вакууме, не обращая внимания на содержание объектов, ибо менять могут с обоих сторон
#52 by Гений 1С
а у меня нет проблем из , гыггыы. Я решаю не общую задачу, а частную
#53 by Гений 1С
где есть? в регистрах обмена?
#54 by Maxus43
Версия данных, стандартное поле ссылочных объектов в 8.2
#55 by Гений 1С
если в УТ поменяют, версия будет уже не 1, а 2.
#56 by Гений 1С
у меня 81
#57 by Гений 1С
это типа GUID? как вариант, да.
#58 by Maxus43
обновись, будь мужиком
#59 by rs_trade
У настоящих гуру таких проблем просто нет.
#60 by Гений 1С
тогда задача решается просто. в Рознице храним версию из УТ в регистре сведений. и если версия совпадает, повторно не грузим.
#61 by Гений 1С
100 000 на обновление выделишь? (цена ИТС на 40 узлов РИБ)
#62 by rs_trade
зп свою пожертвуй
#63 by Maxus43
нищеброды. 40 узлов (читай филиалов) и подпискку оформить не могут. бугага) это не панацея, могу придумать ситуацию когда это хрень не сработает у тебя сходу
#64 by Зойч
при 40 узлах риб нет 100к? как же они тебе платят??????
#65 by Зойч
хотя версия не передается при обмене
#66 by НафНаф
когда обмен настроится, то изменения в Рознице ведь все равно пропадут?
#67 by Maxus43
точно? кстати не проверял. Вобще в сериализованом объекте (в xml-ке обеновской) это поле есть. сохраняется ли оно надо кстати проверить
#68 by Godofsin
Пропадут конечно
#69 by Зойч
только что проверил
#70 by Godofsin
но у Гения частный случай =)
#71 by Maxus43
да, коллизия не разрешена, последствия непредсказуемы
#72 by Зойч
как раз в сериализованном его уже нет
#73 by НафНаф
зачем тогда их пытаться защищать?
#74 by Maxus43
и тут надо подумать как этот случай скажется при нормальной работе обменов, пропажа и рассинхронизация даных налицо
#75 by Maxus43
ыть, ага, согласен
#76 by Гений 1С
нету никаких продаж, дядя. еще раз - это защита от повторной передачи версии объекта, которая уже передана. Греха нет, наоборот универсально и позитивно.
#77 by Гений 1С
т.е. принцип такой - если объект один раз передан, то эта версия повторно не передается. нормалек такое решение.
#78 by Bober
в УТ дважды перезаписали объект, в Рознице дважды перезаписали объект (частая тема распровести-провести). Обмен по логике проигнорирует все это.
#79 by Зойч
а как вообще может прийти документ с тем же номером версии то???
#80 by Bober
очень индивидуальное решение, часто объекты ставят снова на обмен по тех. потребностям (изменили движения, запись объекта шла в режиме обменДанными). Такое никак нельзя рекомендовать к применению.
#81 by Vitamax3
Я не понял, зачем менять в УТ документ пришедший из Розницы? и наоборот, разве что дозаполнить, но тогда его не надо передавать из УТ в Розницу, а если его повторно поменяли в Рознице, то он один в один должен попасть в УТ. Т.е. по реализации главнне Розница. Надо исправить документ - меняй в Рознице, а не в УТ. ИМХО конечно.
#82 by НафНаф
а как же
#83 by Maxus43
аналог номер сообщения в таблицах регистрации это, передан или нет. Только у тебя он с другой стороны - принимать или нет. Где это даёт защиту? милисекунды при записи объекта, мол пожалеем базу? А если изменили, номера твоих версий увеличились, какой в итоге объект будет в реале существовать? боюсь что разные в разных базах
#84 by Гений 1С
дядя, в рознице версия не меняется.
#85 by Bober
по большому счету это все колхоз. Более "правильное" решение это сравнение объекта с предыдущей версией перед регистрации на обмен. И если они совпадают, то не ставить. Но даже оно колхозное, бывают случаи когда ничего не менялось, а движения изменились.
#86 by Гений 1С
читай условие внимательно. в УТ создают драфт (заявление на возврат товаров) в рознице смотрят, что из этого реально есть и заполняют, проводят. но бывает, что из-за сбоев обмена (нет подтверждения от розницы при обмене), документ повторно передается из УТ и затирает тот документ, который был уже создан в рознице. Мое решение универсально, в любом направлении можно юзать
#87 by Гений 1С
лучшее - враг хорошего. Не стремимся к идеалу.
#88 by Гений 1С
речь не об экономии времени, а о защите изменений, сделанных в рознице
#89 by Bober
здесь "странность" в  том, что изменения идут в самом документе, а не идет через связанный документ. А если заявку изменили полностью, то тогда нужно перезаписывать?
#90 by NcSteel
Указание места создания объекта с запретом редактирование.  Врое даже в типовых видел.
#91 by Гений 1С
Проще поправить перемещение, чем городить связные документы.
#92 by Гений 1С
не поможет. Обмен затрет все изменения
#93 by Bober
я бы сделал это либо через связанный документ. Либо в событии при загрузке делал анализ (есть флаг - документ из розницы в приоритете или еще какой-нибудь).
#94 by NcSteel
Лол. Думай еще над словами.
#95 by Maxus43
>>Вопрос - как не меняя приоритета УТ... ты понимаешь что ты его и изменил, только програмно? Я бы на твоём месте просчитал возможные варианты, варианты изменения этого документа в обоих базах, разное количество раз, и наверняка увидишь рассинхронизацию данных. Нелья закладывать в алгоритм то, сколько раз нажмёт юзер кнопку записать. У него тик нервный может, а твои версии меняются
#96 by Maxus43
короче ты взял Абсолютно частный случай. Но реализовал так, что влияет на все случаи
#97 by Vitamax3
ну и балуете вы своих пользователей, нехрен, затерлось, заполни заново. и прав, нужно создавать свой документ, а не править, у каждого документа должен быть один хозяин иначе бардак.
#98 by NcSteel
Каждый объект должен быть привязан к базе возникновения иначе ни какие коллизии не разгребешь.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям