![]() |
|
Обмен справочником ИдентификаторыОбъектовМетаданных в РИБ (БСП) | ☑ | ||
---|---|---|---|---|
0
gusden
27.08.13
✎
18:05
|
Всем добрый день. Кто сталкивайся отзовитесь.
На ИТС указано, что необходимо включить справочник "Идентификаторы объектов метаданных" в план обмена РИБ. В подписке на события ПриОтправкеДанныхГлавному и ПриОтправкеДанныхПодчиненному есть такой код: // Отправка идентификаторов объектов метаданных выполняется в другой секции сообщения обмена. ИгнорироватьОтправкуИдентификаторовОбъектовМетаданных(ЭлементДанных, ОтправкаЭлемента); В результате справочник не выгружается из головного офиса в удалённый. Как правильно решить данную задачу? |
|||
1
gusden
27.08.13
✎
18:38
|
Где это чудное место "в другой секции сообщения обмена"?
Если в головном офисе вносятся изменения в конфигурацию, то там же происходит обновления справочника. А вот при обмене с удалённым офисам, если изменилась версия программы, происходит проверка соответствия метаданных справочнику. И вылетает ошибка. |
|||
2
banco
27.08.13
✎
18:44
|
Какая версия БСП?
|
|||
3
gusden
27.08.13
✎
18:50
|
(2)БСП 2.1.3.51
|
|||
4
gusden
27.08.13
✎
19:03
|
Пока решал задачу следующем образом.
Если менялась структура метаданных, то вносил изменения в конфигурацию, но не менял версию платформы. В модуле объекта ИдентификаторыОбъектовМетаданных комментировал код запрещающий обновления справочника в удалённой базе [CODE] Если ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда Если ЭтоНовый() Тогда ВызватьИсключениеПоОшибке( НСтр("ru = 'Добавление новых элементов может быть выполнено |только в главном узле распределенной информационной базы.'")); КонецЕсли; Если НЕ ПометкаУдаления Тогда Если ВРег(ПолноеИмя) <> ВРег(ОбщегоНазначения.ПолучитьЗначениеРеквизита(Ссылка, "ПолноеИмя")) Тогда ВызватьИсключениеПоОшибке( НСтр("ru = 'Изменение реквизита ""Полное имя"" может быть выполнено |только в главном узле распределенной информационной базы.'")); КонецЕсли; КонецЕсли; КонецЕсли; [/CODE] И в головной и удалённой базе запускал метод [CODE] Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника(Ложь, Ложь); [/CODE] И только потом подымал версию платформы. Но если забывал проделать эту процедуру, то в удалённо базе после обновления вообще не получалось зайти в режим предприятия и приходилась шаманить через внешнее соединение. Сейчас хочется сделать всё методологически правильна и закрыть этот вопрос раз и на всегда. |
|||
5
banco
27.08.13
✎
19:18
|
(4) у меня сейчас 2.1.6, но и на 2.1.3 все работало без изменения кода бсп
|
|||
6
banco
27.08.13
✎
19:36
|
(4) может у тебя справочник не включен в состав плана обмена?
|
|||
7
gusden
28.08.13
✎
11:24
|
(6)Вклюбчён. А посмотри у тебя есть подписка на событие ПриОтправкеДанныхГлавному и там код из (0)?
|
|||
8
banco
28.08.13
✎
11:36
|
(7) да, потом при выгрузке добавляются изменения
|
|||
9
gusden
28.08.13
✎
11:38
|
(8) а можете написать где и кусок кода как они добавляются.
|
|||
10
banco
28.08.13
✎
11:43
|
(9) модуль обработки КонвертацияОбъектовРаспределенныхИнформационныхБаз в процедуре ЗаписатьИзмененияВФайлСообщенияОбмена
// Записываем идентификаторы объектов метаданных в конец сообщения обмена ЗаписатьИдентификаторыОбъектовМетаданных(ЗаписьСообщения); |
|||
11
banco
28.08.13
✎
11:47
|
(9) скорее всего у тебя не регистрируются изменения справочника. посмотри в таблицц регистрации плана обмена есть изменения для справочника идентификаторов
|
|||
12
gusden
28.08.13
✎
12:14
|
(10) у меня оказалась не внедрена подсистема "Обмен данными" спасибо за наводку куда надо капать.
(11) стоит авторегистарция разрешён. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |