|
РИБ Существующих баз - без обмена данными (12 в 1) | ☑ | ||
---|---|---|---|---|
0
cube033
12.09.14
✎
08:58
|
На предприятии используется самописная конфигурация. Структуры предприятия можно изобразить как пирамиду: Кроме головного предприятия есть 3-4 филиала, в каждом филиале есть 2-3 производственных участка. Во всех узлах этой схемы (кроме головы) используется с разной интенсивностью отдельная база самописной конфигурации.
Проблема в том, что по мере внедрения в разные филиалы конфигурация стихийно дописывалась для каждого участка и филиала и теперь это месево из различных конфигураций. Данные передаются внутри филиалов планами обмена по правилам. Есть идея объединить это все, а частности начать с конфигурации, а именно создать РИБ без обмена данными. Прежде чем создавать 12 первоначальных образов РИб и заливать туда данные. Хочу рассмотреть вариант привязывания существующих баз к головной. Обдумываю техническую реализацию. Понимаю, что "ПланыОбмена.УстановитьГлавныйУзел(Узел)" никто не отменял, но нужен сам узел. На этапе подготовки мы придем к идеальной cf, которая будет загружена во все базы. Соответственно нужный план обмена будет во всех базах. Узким мне кажется место, где нужно узел главной базы правилами перекинуть во все остальные, а затем установить этот узел главными. В итого базы, которые изначально не входили в РИБ должны стать стать подчиненными. Как вы думаете - Взлетит? Какие подводные камни могут быть? |
|||
1
Aleksey
12.09.14
✎
09:01
|
И это лишь всё ради чего?
|
|||
2
Aleksey
12.09.14
✎
09:02
|
Загрузи cf во все базы, огород зачем городить?
|
|||
3
cube033
12.09.14
✎
09:07
|
Ради начала интеграции. В последствии необходимые для обмена объекты можно включать в полный обмен.
Конфигурация постоянно разрастается и постоянно накатывать 12 ЦФ не очень удобно. Так проще делать обновления. Без РИБ больше соблазна делая дописку, накатить ее только на одну базу и в итоге снова прийти к месеву. |
|||
4
Windyhead
12.09.14
✎
09:10
|
(2)+ какие-то базы подключить к хранилищу по возможности.
|
|||
5
Aleksey
12.09.14
✎
09:11
|
Я просто у себя отказался от РИБ, потому что при интенсивной работы он показал себя с очень плохой стороны
|
|||
6
Naumov
12.09.14
✎
09:58
|
(3)Это не мотив ломать систему.
|
|||
7
cube033
12.09.14
✎
10:02
|
(5) что именно не понравилось?
Хранилище тоже не супер удобно Основной у меня - привязывание самостоятельной базы в качестве подчиненной. Можно и самому пробовать, но долго. Может был у кого опыт или есть хорошие теоретические знания? (6) Что в данном случае "Ломать систему" |
|||
8
Maxus43
12.09.14
✎
10:05
|
в чем проблема с привязкой? делай (2), привязвай
|
|||
9
FN
12.09.14
✎
10:13
|
(0)
Сделай из головной распределенку с правилом обмена только cf - без данных. Потом по очереди отпочковывай базы с переливкой данных из рабочей во вновь созданную периферийку. Обмен данными между базами на данном этапе не ломай. После этого как минимум будет одна конфа - уже легче обновлять/дорабатывать. Стоит ли ломать текущую схему обмена данными - не уверен... ИМХО. Я так делал когда получил в наследство около 20-ти "почти идентичных" баз. Обновление печатной формы первичного документа выливалось в несколько дней работы. |
|||
10
FN
12.09.14
✎
10:16
|
(9)+ Тупо подключить уже существующую базу к головной - может вылезти потерей данных.
Например в обоих конфах есть справочник "Пользователи", но внутренние ИД у них могут быть разные. В данном контексте справочник скорее всего будет пересоздан с удалением всех данных. |
|||
11
Aleksey
12.09.14
✎
10:18
|
(10) А если базу создали копированием, и просто переименовали организацию? Вот веселья будет :)
|
|||
12
Maxus43
12.09.14
✎
10:19
|
ну есно без анализа элементарного на уиды метаданных и места типа (11) и начинать не стоит
|
|||
13
cube033
12.09.14
✎
10:22
|
(9) это вроде основной вариант, только не верю я в безболезненный перелив данных. Хотя признаться честно - между идентичными конфигурациями не доводилось переносить данные.
(10) Если в плане обмена не выбрано объектов для обмена данными - разве будет такая проблема? (8) Я так понимаю это ответ "Да" на (0), там именно такая схема и описана. (12) с уидами метаданных не сталкивался, но по плану у всех будет загружена одна ЦФ - это не поможет |
|||
14
cube033
12.09.14
✎
10:23
|
(12)?
|
|||
15
cube033
12.09.14
✎
10:24
|
(10) как я теперь понимаю тоже идет речь об уид метаданных?
|
|||
16
Aleksey
12.09.14
✎
10:24
|
(7) В том что таблица изменений одна общая и нельзя на неё наложить управляемую блокировку.
По факту перепроводка данных по одной организации вызывала блокировку работы всей базы. Не говоря уж о том что обмен также блокирует работу. Плюс как только таблица изменений начинает расти (а это не изежно в конце отчетного периода, так как бухи перепроводят данные за 3 месяца), то начинаются странные блокировки таблицы изменений практически на пустом месте p.S. Речь идёт о типовой БП, может в самописке в которой работает 1,5 землекопа и этого не будет заметно Второй момент. невозможно срочно внести изменения в конфигурацию без обмена. Т.е. по факту если нужно срочно загрузить CF то тебе нужно будет сделать обмен, и при условии что данных для обмена накопилась очень много .... это может потребовать очень много времени, неговоря уж о том, что если необходимо рочно внести изменения для нижнего уровня (производственного участка). Придётся выгонять людей со всех уровней, начиная с головной базы |
|||
17
Aleksey
12.09.14
✎
10:29
|
(13) Речь о данных. У тебя была база в которой вели учет. Потом её скопировали удалили документы и поставили на другой участок, предварительно переименовав Организацию, подразделение, склад и т.п.
Т.е. по факту у тебя элементы с одинаковым ГУИД в разных базах имеют разное значение, и при попытки "слить" эти базы в одну у тебя получится фигня, потому что, по умолчанию, синхронизация идёт только по УИДУ. Поэтому возникает вопрос, как понять что ИП Иванов в одной базе и ИП Петров в другой - это разные контрагенты, хотя их УИДЫ совпадают. А ИП Иванов и Иванов с разными УИДами - это один и тот же клиент и нужно данные объединить |
|||
18
FN
12.09.14
✎
10:30
|
(15) Да.
(11) Я предлагаю использовать распределенку не для обмена данными, а для обмена метаданными (самой конфой). Соответственно если базу делали копированием, то это даже хорошо - можно попробовать в нее тупо загрузить cf и привязать через УстановитьГлавныйУзел. |
|||
19
Naumov
12.09.14
✎
10:33
|
(11) Да-да, мне тут такую свинку подложили с копированием баз.
|
|||
20
cube033
12.09.14
✎
10:35
|
(17),(18) Не надо сравнивать объекты данных, только объекты метаданных. Может я заголовок написал не понятно, но имел ввиду я именно обмен ТОЛЬКО КОНФИГУРАЦИЯМИ.
|
|||
21
cube033
12.09.14
✎
10:37
|
Проблема у меня в том, что не знаю я как устроен механизм РИБ на уровне платформы. И вот (10) и (12) похоже на то, что нужно.
|
|||
22
Aleksey
12.09.14
✎
10:39
|
(18) Повторяю еще раз.
Использовать ТОЛЬКО для CF - плохо, потому что для того чтобы загрузить изменения в участок, тебе нужно выгнать из главной базы, загрузить туда и сделать обмен. Выгнать из филиала всех и сделать обмен. Выгнать из цеха всех и сделать обмен. Вместо того чтобы как раньше загрузить только в цех И где профит? Если в дальнейшим планируется обмен документами и справочниками - тоже не айс, по причинам выше |
|||
23
Aleksey
12.09.14
✎
10:40
|
И да в любой типовой БП можно настроить автообновление по расписанию. Может проще оттуда выдернуть функционал?
|
|||
24
FN
12.09.14
✎
10:41
|
(21) бери любую "периферийную базу" - загрузи в нее cf головной - если данные целые значит это потомок той конфы, если не целые - тогда делай новую периферийку и переливай данные.
|
|||
25
Aleksey
12.09.14
✎
10:43
|
Например вариант с хранилищем
Обновление большого количества типовых баз с помощью хранилища конфигураций Надоело обновлять 100 типовых баз БП и ЗиУП руками? Милости просим! (с) http://infostart.ru/public/165167/ И не надо лохматить бабушку |
|||
26
Aleksey
12.09.14
✎
10:43
|
(24) Ну можно и через сравнения залить
|
|||
27
cube033
12.09.14
✎
11:41
|
Воспользовался
УИДМетаданных = ЗначениеВСтрокуВнутр(Справочники.Номенклатура); Уид2 = ЗначениеВСтрокуВнутр(Справочники.Номенклатура.ПустаяСсылка()); в 4 базах - результат одинаковый |
|||
28
FN
12.09.14
✎
12:14
|
(27) номенклатура явно будет везде одинакова.
ты проверь на свежедобавленных объектах |
|||
29
cube033
15.09.14
✎
09:58
|
Часто гуглю 1совские темы и натыкаюсь на ветки форумов без логического завершения. В итоге плодится гора бесполезного мусора, в котором все сложнее что-то найти. Поэтому отвечаю на свой же вопрос:
1. Да, данная реализация работает. Пока не могу сказать о качестве и долговечности, но технически работает. В итоге в базе, которая должна стать подчиненной создал второй узел, назвал его аналогично главному узлу первой базы, программно сделал второй узел главным: ГУ = ПланыОбмена.РИБ.НайтиПоКоду("01"); ПланыОбмена.УстановитьГлавныйУзел(ГУ); Обмены изменениями конфигурации без данных идут. 2. Действительно важно смотреть на УИД метаданных. Я не нашел хорошего отчета по сравнению, поэтому сделал свой. Выгрузку/загрузку XML/XLS или COM делать не хотелось, поэтому сравнивал копируя таблицу значений с формы в эксель. А в эксель придя к единому порядку и составу метаданных для обеих конфигураций просто делал проверку - равны ли значения в колонках, а дальше фильторм нашел "ложь". В итоге 2 справочника действительно оказались с разными УИД и данные при накатывании cf потеряны. Но там мелочь. УИД метаданных искал вот этим кодом &НаСервере Процедура ЗаполнитьМетаТаблицуНаСервере() СтрокиМетаТаблицы(Справочники); СтрокиМетаТаблицы(Документы); СтрокиМетаТаблицы(РегистрыСведений); СтрокиМетаТаблицы(РегистрыНакопления); СтрокиМетаТаблицы(Константы); СтрокиМетаТаблицы(Перечисления); КонецПроцедуры &НаСервере Процедура СтрокиМетаТаблицы(КоллекцияМетаданных) Для каждого Мета из КоллекцияМетаданных Цикл НоваяСтрока = ТаблицаУИДМетаданных.Добавить(); НоваяСтрока.МетаИмя = Строка(Мета); НоваяСтрока.МетаУИД1 = ЗначениеВСтрокуВнутр(Мета); Попытка НоваяСтрока.МетаУИД2 = ЗначениеВСтрокуВнутр(Мета.ПустаяСсылка()); Исключение НоваяСтрока.МетаУИД2 = "Нет ссылки пустого"; КонецПопытки; КонецЦикла; КонецПроцедуры Столбец со ссылками на пустые ссылки(УИД2) сильно пользы не принес. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |