Распределенная база
Данный механизм предназначен для синхронизации данных в двух и более магазинах через один из облачных дисков (Яндекс.Диск, Google диск и т.д).
Для этого в облачном диске нужно сделать папку для обмена. В этой папке сделать столько подпапок, сколько рабочих мест будет. Вот как это может выглядеть в Яндекс.Диске:
Для примера возьмем два места Дом и Магазин (можно больше если надо). В настройках программы нужно указать папку для обмена, а в качестве "Наименование текущего места" указать Дом или Магазин (в зависимости от того где происходит настройка). Вот как это выглядит в программе:
Дальше настраиваем периодичность обмена. В процессе работы программа будет складывать в соответствующую папку все изменения, что сделала за последний период, в виде файлов. Таким образом уходит процесс длительной загрузки файла базы и можно даже одновременно работать с разных мест. Период влияет на то как часто текущая рабочая машина будет делать срезы изменений и раскладывать по папкам остальных точек, а так же вычитывать свою папку на предмет поиска изменений от других точек. По умолчанию программа это делает при запуске и при завершении работы. Слишком большим период делать наверное не стоит, что бы файл среза был не сильно большим и закрытие программы не затягивалось.
Что бы добавить новую точку нужно на одной из уже существующих точек отключить распределенную базу (снять галочку "Распределенная база" и нажать Сохранить). Сделать резервную копию базы.
Затем включить обратно галочку и сохранить. Перенести резервную копию в то место где будет вторая база (например в Магазин). Создать там базу или просто восстановить из принесенной резервной копии. Настроить на ту же папку обмена в облачном диске, что и в самом начале. Указать текущее место и включить распределенную базу путем установки галочки и нажатием Сохранить. Должно получиться что-то вроде этого:
Что касается предупреждения (на втором скриншоте). Пока мы бы не рекомендовали работать со справочниками (Товарами, Штрих-кодами, Контрагентами и т.д.) одновременно в нескольких точках. Дальше думаю опыт покажет, как это лучше организовать.
Что касается того как это работает. Программа работающая дома, выкладывает свои изменения не в папку Дом, а наоборот, во все папки находящиеся в папке Обмен, кроме папки Дом. Другими словами, программа работающая дома "выдает" свои изменения всем остальным точкам распределенной базы. А вот читает изменения других точек программа только из своей папки.
Соответственно облачный диск в процессе синхронизации между точками переносит изменения из дома в магазин. Программа работающая в магазине, прочитав все изменения в базе из своей папки, удалит все файлы в ней, что будет сигналом о том что все изменения приняты.
Что еще стоит отметить. Объекты которые синхронизируются через распределенную базу:
- Пользователи
- Все справочники, включая вложения (картинки товаров)
- Все документы
Что не синхронизируется:
- Роли и Интерфейсы, поэтому в случае изменения, переносить их придется вручную
- Модули, поэтому при добавлении модуля, добавляющего какое-либо свойство, справочник или документ. Сначала нужно будет установить во всех базах новый модуль, а затем использовать нововведение из модуля.
- Константы, их нужно будет менять вручную во всех базах при необходимости.