Профессия — 1С

Рукопашный бой Карташ

Категории

Как из периферийной базы сделать центральную

рубрики: УРБД | Дата: 24 Август, 2017
Скачать обработку с примерами из статьи: professia1c_PBintoCB.epf
Платформа: 8.3; Тип формы: управляемая

В крупных организациях для баз 1С:Предприятия достаточно часто используется система УРБДуправление распределенными базами данных. И базы в этом случае делятся на центральную и периферийные.




И изменения в режиме конфигуратора могут производиться только в центральной базе. А в периферийные они приходят вместе с файлом обмена. Но зачастую возникает ситуация, когда доработку надо сделать именно для периферийной базы. И если следовать классической схеме, то сначало надо внести изменения в центральную базу, выгрузить файл обмена, загрузить его в периферийную, и только потом можно протестировать. Конечно же это очень неудобно. А если алгоритм работы кода в центральной и периферийных база одинаков, то можно для разработческих целей разворачивать периферийную базу, т.к. по размеру она может быть раз в десять меньше центральной, что положительно скажется на скорости работы и на занимаемом дисковом пространстве. Единственный вопрос — как сделать из нее центральную, чтобы можно было вносить изменения. Потому сейчас мы напишем простейшую обработку (скачать ее можно в шапке статьи), которая позволит преобразовывать периферийную базу в центральную и наоборот.

Сделать это можно при помощи метода УстановитьГлавныйУзел() менеджера планов обмена. У центральной базы главный узел неопределен. Поэтому если в периферийной базе присвоить главному узлу значение Неопределено, то мы получим центральную базу. И наоборот — если для центральной базы мы установим в качестве главного какой-либо узел из плана обмена, то получим периферийную базу.

Итак, создаем обаботку с реквизитому Узел, тип у которого — ПланОбменаСсылка:

В модуле формы создаем процедуры для преобразования периферийной базы в центральную:




&НаКлиенте
Процедура СделатьЦентральной(Команда)

	СделатьЦентральнойНаСервере();

КонецПроцедуры

&НаСервере
Процедура СделатьЦентральнойНаСервере()

	ПланыОбмена.УстановитьГлавныйУзел(Неопределено);

КонецПроцедуры

и из центральной в периферийную:







&НаКлиенте
Процедура СделатьПериферийной(Команда)

	СделатьПериферийнойНаСервере();

КонецПроцедуры

&НаСервере
Процедура СделатьПериферийнойНаСервере()

	Если Не ЗначениеЗаполнено(Узел) Тогда

		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Не указан узел";
		Сообщение.Сообщить();

		Возврат;

	КонецЕсли;

	ПланыОбмена.УстановитьГлавныйУзел(Узел);

КонецПроцедуры

Таким образом, всего лишь несколько строчек кода могут значительно облегчить жизнь при работе с УРБД.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

   

2017г. Профессия — 1С. Обмен опытом по программированию в 1С