Для обмена данными в типовых решениях используется план обмена. Настройка обмена данными позволяет обмениваться либо по правилам обмена с последующим проведением документов, либо между идентичными узлами распределенной базы данных (РИБ). Для обмена между базами не являющимися РИБ нужно добавить в планы обмена несколько функций.
1.Добавляем в модуль плана обмена «Полный» три функции:
1.1
Функция ЗаписатьНовоеСообщение(ЗаписьXML, ЗаписьСообщения)
НомерСообщения = ЗаписьСообщения.НомерСообщения;
Получатель = ЗаписьСообщения.Получатель;
СписокТипов = Новый СписокЗначений();
НачатьТранзакцию();
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(Получатель, НомерСообщения);
Пока ВыборкаИзменений.Следующий() Цикл
Данные = ВыборкаИзменений.Получить();
Если ТипЗнч(Данные) = Тип("УдалениеОбъекта") Тогда
Иначе
// Если СписокТипов.НайтиПоЗначению(ТипЗнч(Данные)) = Неопределено Тогда
// Продолжить;
// КонецЕсли;
КонецЕсли;
ЗаписатьXML(ЗаписьXML, Данные);
КонецЦикла;
ЗафиксироватьТранзакцию();
Возврат НомерСообщения;
КонецФункции // ЗаписатьНовоеСообщение(ИмяФайла)
1.2
Функция ВыгрузитьИзмененияДанныхДляУзла(Получатель, КоличествоЭлементовВТранзакции, ЗаписьXML) Экспорт
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Получатель);
ЗаписатьНовоеСообщение(ЗаписьXML, ЗаписьСообщения);
ЗаписьСообщения.ЗакончитьЗапись();
Результат = Истина;
Возврат Результат;
КонецФункции
1.3
Функция ЗагрузитьИзмененияДанныхДляУзла(УзелОбмена, КоличествоЭлементовВТранзакции, ЧтениеXML) Экспорт
ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
НомерСообщения = ЧтениеСообщения.НомерСообщения;
НачатьТранзакцию();
Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
Данные = ПрочитатьXML(ЧтениеXML);
Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
Данные.ОбменДанными.Загрузка = Истина;
Данные.Записать();
КонецЦикла;
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого);
ЗафиксироватьТранзакцию();
ЧтениеСообщения.ЗакончитьЧтение();
Результат = Истина;
Возврат Результат;
КонецФункции
2. Снимаем для плана обмена «Полный» флажок «Распределенная информационная база»
3. В настройках обмена данными указываем тип обмена — обмен через файловый ресурс
4. В случае, если нам нужен односторонний обмен, убираем авторегистрацию изменений базе приемнике.
Периодичность обмена данными можно настройть, например, через константу «ВремяОпросаРегламентныхЗаданийВФайловомРежиме».
Какая то хрень
(1) Anyxwar, а тебе никогда не хотелось иметь в тестовой базе свежие данные, и при этом не делать каждый день загрузку?
Согласен, что название статьи наталкивает на что-то другое, но представленная идея (не новая, конечно) — способ хотя бы немного облегчить жизнь разработчика.
Так что или конструктивно называй, что не понравилось, или не говори ничего.
А чем плох старый добрый тотал-командер например. При сильном железе рабочую базу 1cv8.1cd копирует махом прямо во время работы в ней.
А если база в клиент-серверном варианте работает, то вообще можно, например, зеркалирование в СУБД настроить (MS SQL SERVER) или просто восстановить архив в формате SQL в копию базы на MS SQL SERVER (можно и по расписанию настроить)
(3) ALLES, (4) Alex1Cnic задача ставилась создание не копии рабочей базы, а управленческой базы, в кототорой содержатся данные из рабочей базы и кроме этих данных в нее вводятся другие данные. Поэтому зеркалирование средствами SQL или просто бэкап не подходили…Наверное, можно было бы сделать средствами веб-сервисов, чтобы не мучиться с синхронностью обновлений, но пока оставлено в таком виде.