Имя: Пароль:
1C
1С v8
Возможно ли сделать это с помощью правил обмена?
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) Документов в источнике нет, это специфичная база. Она является лишь источником номенклатуры и связанной с ней информации.