Вы не вошли - Войти

Распределенная база

Данный механизм предназначен для синхронизации данных в двух и более магазинах через один из облачных дисков (Яндекс.Диск, Google диск и т.д).

Для этого в облачном диске нужно сделать папку для обмена. В этой папке сделать столько подпапок, сколько рабочих мест будет. Вот как это может выглядеть в Яндекс.Диске:

Для примера возьмем два места Дом и Работа (можно больше если надо). В настройках программы нужно указать папку для обмена, а в качестве "Наименование текущего места" указать Дом или Работа (в зависимости от того где происходит настройка). Вот как это выглядит в программе:

Дальше настраиваем периодичность обмена. В процессе работы программа будет складывать в соответствующую папку все изменения, что сделала за последний период, в виде файлов. Таким образом уходит процесс длительной загрузки файла базы и можно даже одновременно работать с разных мест. Период влияет на то как часто текущая рабочая машина будет делать срезы изменений и раскладывать по папкам остальных точек, а так же вычитывать свою папку на предмет поиска изменений от других точек. По умолчанию программа это делает при запуске и при завершении работы. Слишком большим период делать наверное не стоит, что бы файл среза был не сильно большим и закрытие программы не затягивалось.

Что бы добавить новую точку нужно на одной из уже существующих точек отключить распределенную базу (снять галочку "Распределенная база" и нажать Сохранить). Сделать резервную копию базы.

Внимание! Перед созданием резервной копии следует установить константу Дата обмена на начало текущего дня. Это потребуется только при первичной настройке распределённой базы

Затем включить обратно галочку и сохранить. Перенести резервную копию в то место где будет вторая база (например в Магазин). Создать там базу или просто восстановить из принесенной резервной копии. Настроить на ту же папку обмена в облачном диске, что и в самом начале. Указать текущее место и включить распределенную базу путем установки галочки и нажатием Сохранить. Должно получиться что-то вроде этого:

Что касается предупреждения (на втором скриншоте). Пока мы бы не рекомендовали работать со справочниками (Товарами, Штрих-кодами, Контрагентами и т.д.) одновременно в нескольких точках. Дальше думаю опыт покажет, как это лучше организовать.

Что касается того как это работает. Программа работающая дома, выкладывает свои изменения не в папку Дом, а наоборот, во все папки находящиеся в папке Обмен, кроме папки Дом. Другими словами, программа работающая дома "выдает" свои изменения всем остальным точкам распределенной базы. А вот читает изменения других точек программа только из своей папки.

Соответственно облачный диск в процессе синхронизации между точками переносит изменения из дома в магазин. Программа работающая в магазине, прочитав все изменения в базе из своей папки, удалит все файлы в ней, что будет сигналом о том что все изменения приняты.

Что еще стоит отметить. Объекты которые синхронизируются через распределенную базу:

  • Пользователи
  • Все справочники, включая вложения (картинки товаров)
  • Все документы

Что не синхронизируется:

  • Роли и Интерфейсы, поэтому в случае изменения, переносить их придется вручную
  • Модули, поэтому при добавлении модуля, добавляющего какое-либо свойство, справочник или документ. Сначала нужно будет установить во всех базах новый модуль, а затем использовать нововведение из модуля.
  • Константы, их нужно будет менять вручную во всех базах при необходимости.