рубрики: УРБД | Дата: 24 августа, 2017
Скачать обработку с примерами из статьи: professia1c_PBintoCB.epf
Платформа: 8.3; Тип формы: управляемая
В крупных организациях для баз 1С:Предприятия достаточно часто используется система УРБД — управление распределенными базами данных. И базы в этом случае делятся на центральную и периферийные.
И изменения в режиме конфигуратора могут производиться только в центральной базе. А в периферийные они приходят вместе с файлом обмена. Но зачастую возникает ситуация, когда доработку надо сделать именно для периферийной базы. И если следовать классической схеме, то сначало надо внести изменения в центральную базу, выгрузить файл обмена, загрузить его в периферийную, и только потом можно протестировать. Конечно же это очень неудобно. А если алгоритм работы кода в центральной и периферийных база одинаков, то можно для разработческих целей разворачивать периферийную базу, т.к. по размеру она может быть раз в десять меньше центральной, что положительно скажется на скорости работы и на занимаемом дисковом пространстве. Единственный вопрос — как сделать из нее центральную, чтобы можно было вносить изменения. Потому сейчас мы напишем простейшую обработку (скачать ее можно в шапке статьи), которая позволит преобразовывать периферийную базу в центральную и наоборот.
Сделать это можно при помощи метода УстановитьГлавныйУзел() менеджера планов обмена. У центральной базы главный узел неопределен. Поэтому если в периферийной базе присвоить главному узлу значение Неопределено, то мы получим центральную базу. И наоборот — если для центральной базы мы установим в качестве главного какой-либо узел из плана обмена, то получим периферийную базу.
Итак, создаем обаботку с реквизитому Узел, тип у которого — ПланОбменаСсылка:
В модуле формы создаем процедуры для преобразования периферийной базы в центральную:
&НаКлиенте
Процедура СделатьЦентральной(Команда)
СделатьЦентральнойНаСервере();
КонецПроцедуры
&НаСервере
Процедура СделатьЦентральнойНаСервере()
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
КонецПроцедуры
и из центральной в периферийную:
&НаКлиенте
Процедура СделатьПериферийной(Команда)
СделатьПериферийнойНаСервере();
КонецПроцедуры
&НаСервере
Процедура СделатьПериферийнойНаСервере()
Если Не ЗначениеЗаполнено(Узел) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не указан узел";
Сообщение.Сообщить();
Возврат;
КонецЕсли;
ПланыОбмена.УстановитьГлавныйУзел(Узел);
КонецПроцедуры
Таким образом, всего лишь несколько строчек кода могут значительно облегчить жизнь при работе с УРБД.
Спасибо огромное!!!! Никак не мог найти на УТ 11.4, все работает отвзал базу.