|
Возможно ли сделать это с помощью правил обмена? | ☑ | ||
---|---|---|---|---|
0
Антиквар
23.03.12
✎
12:39
|
Всем привет!
У меня настроен односторонний обмен между двумя конфигурациями с помощью правил обмена, созданных в КД. Для требуемой номенклатуры из базы-источника в базу-приемник уходят изменения подчиненных справочников и регистров. Но нужно сделать так, чтобы первоначально уходил весь набор регистров и подчиненных справочников по выбранной номенклатуре. А выбирать эту номенклатуру нужно находясь в базе-приемнике. Т.е. в базе-приемнике я подключаюсь через COM-соединение к базе источнику, выбираю нужную номенклатуру, и мне нужно, чтобы по этой номенклатуре пришли все нужные объекты. Я могу конечно в этой обработке "вручную" (т.е. без всякого обмена) перенести все нужные объекты, но при этом они создадутся с другим уникальным идентификатором, нежели в базе-источнике. А обмен у меня идет по уникальному идентификатору. Можно ли как-то инициировать обмен по загрузке данных с помощью правил обмена, подключаясь к базе-источнику через COM? |
|||
1
Oftan_Idy
23.03.12
✎
12:41
|
Можно. Но тогда зачем вообще нужны правила конвертации? Тащи все через. Насчет синхронизации по guid - не понял, а что мешает их использовать?
|
|||
2
Oftan_Idy
23.03.12
✎
12:42
|
(1) Тащи все через = "Тащи все через COM"
|
|||
3
ShoGUN
23.03.12
✎
12:44
|
(0) Создать ссылку с нужным уникальным идентификатором - как два пальца об асфальт...
|
|||
4
Oftan_Idy
23.03.12
✎
12:44
|
В приемнике, правило конвертации объектов >> событие "После загрузки". Если что-то будешь в загружаемом объекте менять, не забыть вызвать "Объект.Записать();"
|
|||
5
ptrtss
23.03.12
✎
12:44
|
>> Можно ли как-то инициировать
Можно. При помощи экспортного метода в модуле внешнего соединения |
|||
6
ptrtss
23.03.12
✎
12:46
|
>> они создадутся с другим уникальным идентификатором, нежели в базе-источнике. А обмен у меня идет по уникальному идентификатору
Вот этого не понял. Обмен по уиду, но уиды разные. Как так? |
|||
7
ptrtss
23.03.12
✎
12:47
|
Тогда обмен надо не по уиду делать
|
|||
8
Антиквар
23.03.12
✎
13:03
|
(1) Правила конвертации нужны для обмена изменениями. Т.е. через COM надо первоначально всё закачать. Пользователь выбрал нужную номенклатуру, и сразу подгрузил по ней все данные (в т.ч. регистры и подчиненные справочники). С этого момента данная номенклатура участвует в обмене, т.е. все её изменения в источнике должны уходить в приемник (в источнике в номенклатуре у меня есть флажок специальный, только для такой номенклатуры фиксируются её изменения и изменения нужных объектов в плане обмена).
(3) Думал нельзя. А каким образом? Тогда как вариант создать "вручную", где все справочники поимеют уникальный идентификатор, как в базе-источнике. Но хотелось бы по правилам обмена. |
|||
9
Антиквар
23.03.12
✎
13:10
|
(6) Обмен по уиду, но это обмен изменениями. Дело в том, что номенклатура при создании по умолчанию никуда не уходит. Только пользователь, находясь в приемнике, и подключившись через COM к источнику, указывает, какая номенклатура должна ходить с обменом. И при этом нужно инициировать первый полный обмен данной номенклатурой, включая все регистры нужные. У номенклатуры в источнике проставится флажок, в соответствии с которым мой обмен изменениями по этой номенклатуре будет работать. Вот я не знаю как лучше сделать эту первоначальную загрузку.
|
|||
10
ptrtss
23.03.12
✎
13:19
|
Но ведь получается что в приемнике пользователь должен выбрать и позицию номенклатуры которая в приемники и соответствующую позицию в источнике. Чтобы источник знал по чему выгружать и к чему это должно будет привязаться при загрузке, не?
|
|||
11
eduspec82
23.03.12
✎
13:24
|
если номенклатура выбирается в приемнике то обмен двусторонний :)
из приемника передается например регистр сведений с указанием что хотим получить в приемник в источнике выгружаем данные с учетом полученного из приемника |
|||
12
Антиквар
23.03.12
✎
14:06
|
(10) Не, в приемнике пользователь вводит условия поиска, после чего идет подключение к источнику через COM, запрос к источнику и вывод результатов поиска в таблицу. В таблице набор самых важных реквизитов, по которым пользователь определяет, какую именно строку подгрузить. И только эта номенклатура должна сразу полностью подгрузиться (со всеми регистрами). Одновременно у этой номенклатуры в источнике проставится спец. флажок, по которому будет срабатывать регистрация изменений этой номенклатуры и прочих связанных с ней объектов в источнике.
>> Чтобы источник знал по чему выгружать и к чему это должно будет привязаться при загрузке Это все в правилах обмена прописано, почему и хотел их использовать. Чтобы не задвоить, после поиска по уиду у меня ищет по набору уникальных полей. Но это только для номенклатуры. По остальных связанным справочникам только по уиду, там нет уникальных полей. Вот почему с уидом и заморочился, думал что если самому создавать, то нужный уид не присвоить. Но говорят, что можно |
|||
13
Антиквар
23.03.12
✎
14:09
|
(11) не, обмен односторонний. У меня только в источнике в плане обмена в конфигураторе есть объекты для регистрации изменений, в приемнике никакой регистрации изменений объектов нет. Изменения ходят только из источника в приемник. И это уже работает автоматически.
Вопрос у меня о первоначальной закачке всех данных, чтобы пользователь, выбрав нужную номенклатуру для обмена, не ждал этого обмена, а сразу получил все данные. А обмен потом уже только в случае изменений требуемых объектов. |
|||
14
Антиквар
23.03.12
✎
14:22
|
(3) Нашел вот это: УстановитьСсылкуНового(<Ссылка>)
наверное то что нужно |
|||
15
hhhh
23.03.12
✎
16:13
|
(13) а как же вы документы будете закачивать? Допустим номенклатура в документе, в нем 99 строк, одна строчка заполнена номенклатурой, а остальные пустые, что ли?
|
|||
16
Антиквар
23.03.12
✎
16:28
|
(15) Документов в источнике нет, это специфичная база. Она является лишь источником номенклатуры и связанной с ней информации.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |