|
Как проверить наличие изменений конфигурации на узле РИБ? | ☑ | ||
---|---|---|---|---|
0
TormozIT
гуру
20.07.15
✎
12:51
|
Пока нашел только один способ - ПланыОбмена.ЗаписатьСообщение() и парсить XML. Но это достаточно затратно. Есть ли другие способы без прямого доступа к БД?
|
|||
1
TormozIT
гуру
20.07.15
✎
12:55
|
Есть такая таблица в структуре БД с именем ConfigChngR. Доступа к ней в языке запросов не сделали по понятным причинам, но в моем случае он получается требуется.
|
|||
2
Лефмихалыч
20.07.15
✎
12:56
|
Не понятно, чо ты узнавать хочешь.
Тебе надо узнать в центре, есть ли еще периферийные узла, которые не приняли конфигурацию? |
|||
3
cw014
20.07.15
✎
12:59
|
Как вариант. Сделай регистр сведений с планами обмена и версиями изменений. При обновлении конфы закидывай новый релиз. Отправляй в периферию. Они после загрузки записывают новую версию и отпраляют обратно. Таким образом будешь знать, где и какая версия
|
|||
4
TormozIT
гуру
20.07.15
✎
13:00
|
(2) Это лишь частный случай. В общем случае мне нужно именно для произвольного узла РИБ узнать, есть ли для него недоставленные в узел изменения конфигурации.
|
|||
5
Лефмихалыч
20.07.15
✎
13:01
|
(4) ты же понимаешь, что для этого периферийный узел должен иметь доступ куда-нибудь хоть куда в центр? Если опираться только на то, что принимается штатным обменом, ты этого ни когда достоверно знать не будешь
|
|||
6
fisher
20.07.15
✎
13:02
|
(4) Непонятно, как ты это собираешься узнавать в "общем" случае. Есть только два источника инфы - центральный узел и сообщения обмена.
|
|||
7
Лефмихалыч
20.07.15
✎
13:02
|
как вариант - поднять в центре вебсервис, который будет текущий номер версии отдавать. Тогда ПБ будет точно знать, есть изменения или нет. В центре все и так понятно на основании дат принятых-отправленных
|
|||
8
Лефмихалыч
20.07.15
✎
13:04
|
хотя в центре можно элегантнее, наверное обойтицца путем добавления в план обмена реквизита ТекущаяВерсияКонфигурации, который писать при загрузке данных от периферии. В периферии, ессно, в сообщение обмена надо будет эту инфу дописывать
|
|||
9
TormozIT
гуру
20.07.15
✎
13:05
|
Для решения задачи изменения конфигурации не допускаются.
|
|||
10
Лефмихалыч
20.07.15
✎
13:06
|
(9) ты с (5) согласен?
|
|||
11
TormozIT
гуру
20.07.15
✎
13:06
|
(9) Точнее доработки =)
|
|||
12
TormozIT
гуру
20.07.15
✎
13:11
|
(10) Твое утверждение не понял. Поэтому не могу ответить определенно.
|
|||
13
TormozIT
гуру
20.07.15
✎
13:13
|
Для платформы решение предложил следующее (для ее развития).
Нужна возможность проверить факт наличия изменений метаданных для конкретного узла. Очень логичным кажется это реализовать в методе ПланыОбмена.ИзменениеЗарегистрировано(), где вторым параметром передавать объект ОбъектМетаданныхКонфигурация. |
|||
14
Лефмихалыч
20.07.15
✎
13:15
|
(12) если в периферии ответ на вопрос "есть ли в центре для меня изменения" ты будешь искать, опираясь только на данные, которые есть в периферии, то ответ всегда будет: "может нет, а может мы просто еще не получили сведения об этом". Точный ответ, есть изменения в центре или нет, присутствует только в центре.
А раз так, то нужен доступ из периферии в центр или доступ из периферии к какому-то сервису, который эту информацию будет по запросам предоставлять из центра. |
|||
15
Лефмихалыч
20.07.15
✎
13:16
|
блин, так тебе где узнавать-то надо? В центре или в периферии?
|
|||
16
MiniMuk
20.07.15
✎
13:17
|
КонфигурацияИзменена?
|
|||
17
TormozIT
гуру
20.07.15
✎
13:19
|
Узел РИБ - узел плана обмена с включенным флажком "Распределенная информационная база". Для подчиненных баз изменения конфигурации не хранятся естественно для этих узлов. Поэтому ответ на (0) в периферии лишен смысла.
|
|||
18
TormozIT
гуру
20.07.15
✎
13:19
|
(16) Мимо. Нужен ответ в отношении каждого узла плана обмена отдельно.
|
|||
19
Лефмихалыч
20.07.15
✎
13:19
|
(17) то есть, тебе надо, сидя в центре, узнать, какой из филиалов негодяй и не загрузил своевременно обновку, так?
|
|||
20
TormozIT
гуру
20.07.15
✎
13:22
|
(19) Ну немного сужая задачу, да.
|
|||
21
Лефмихалыч
20.07.15
✎
13:24
|
(20) у тебя есть даты приема последнего сообщения от каждого периферийного узла. Если сравнить эти даты с датой последнего обновления, то ты получишь список тех, кто либо не загрузил, либо не отчитался об этом.
При этом, чтоб получить список тех, кто реально не загрузил, тебе таки нужен коннект к перифериям, поскольку отсутствие ответа может означать еще и лежачие каналы связи и много всего подряд. |
|||
22
cw014
20.07.15
✎
13:25
|
(20) Без кодинга и пива - никак
|
|||
23
Лефмихалыч
20.07.15
✎
13:26
|
(22) думаю, автору без кодинга бы и не подошло
|
|||
24
TormozIT
гуру
20.07.15
✎
13:27
|
(21) В плане обмена нет никаких дат, только стандартные реквизиты.
|
|||
25
Лефмихалыч
20.07.15
✎
22:18
|
(24) во всех типовых есть регистр ИсторияОбмена или как-то так.
Добавь, будь мужиком. Иначе получается, что ты хочешь получать информацию, которую не хранишь. Если добавить в эту конфу прямо совсем не вариант, отрасти рядом свою, которая будет уметь и знать только, как обменники туда-сюда принимать-отдавать и пусть она запоминает эти даты. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |