v8: Частичная потеря данных при обмене через Унив.ОбменДаннымиXML. Как решали? #469959


#0 by DUDE
День добрый всем форумчанам. Исходные данные: Две конфигурации УПП разных релизов и степени измененности. Перенос данных по средством КД и обработки УниверсальныйОбменДаннымиXML он-лайн. В среднем в базах работают 35-40 сеансов в источнике, ок. 10 - в получателе. Практически все перенесенные объекты, кроме документов, перенесенных в получатель должны быть записаны. Ситуация: Столнулись с тем, что какие-то зарегистрированные изменения могут не включаться в обмен и не загружаться в базу-получатель, при этом ошибок нет и соотв-но регистрация очищается. Какой-либо логики в невключаемых данных нет. Хотелось бы узнать как сталкивался с подобным или как решали? ЗЫ: Нашел, что мы в этом не первые ->
#1 by DUDE
Транзакции при обмене не использовались, работа с получателем ведется по ОЛЕ. Вчера решили попробовать включить транзакции - результат еще не анализировали, но уже есть один минус - блокировка на изменение данных, подлежащих обмену, в базе-источнике => юзеры в шоке :). Есть мысль отказаться от передачи данных по ОЛЕ и переделать на файловый вариант, но это лишь оптимизация выгрузки, а проблема с потерей записей об изменениях, как я понял из ссылки, есть и в файловом варианте. :(
#2 by DUDE
в ошибка: "кроме документов, уже проведенных в получателе".
#3 by DUDE
В общем если кому-то понадобится: происходит "потеря" из-за того, что обработка обмена обладает тремя режимами работы с данными регистрации: - не удалять - удалить все изменения для данного узла - удалить все изменения для видов метаданных, попавших в обмен. В результате стирается вся информация по изменениям, зарегистрированным уже после того, как прошел обмен объектами данного вида метаданных. При активном вводе информации и постоянном обмене это приводит к систематическому "выпаданию" изменений из обмена. Пока надумал такой выход - править обработку обмена, добавляя режим управления регистрацией по отдельным объектам.
#4 by DUDE
Доработки минимальны: 1. ввести новый "режим" обработки изменений: ТипУдаленияРегистрацииИзмененийДляУзловОбменаПослеВыгрузки = 3 2. ввести переменную модуля - массив под объекты, по которым зарег. изменения, напр., СписокВыгруженныхОбъектов, наполнять который в проц. ВыполнитьВыгрузкуИзмененныхДанныхДляУзлаОбмена при обходе изменений ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(...) 3. в процедуру ОбработатьИзменениеРегистрацииДляУзловОбмена добавить обработку нового значения ТипУдаленияРегистрацииИзмененийДляУзловОбменаПослеВыгрузки = 3: // обработаем случай выбора удаления для отдельных объектов ИначеЕсли ТипУдаленияРегистрацииИзмененийДляУзловОбменаПослеВыгрузки = 3 Тогда
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С