+7(962)919-86-60
Тирика-Магазин

Что делать, если в функции синхронизации баз данных часть данных не синхронизируется

Иногда случается, что часть данных в программе Тирика-Магазин не синхронизируется между двумя компьютерами. Это может произойти в случае, если, например, пользователь удалит какие-то файлы синхронизации из папки синхронизации в Яндекс.Диске или DropBox: при этом база данных - отправитель считает, что она уже отправила изменившиеся данные и, соответственно, не отправляет их заново, а база данных - получатель ничего так и не получила.

Как это работает

Каждый объект в базе данных программы Тирика-Магазин, будь то продажа, товар, остаток товара и т.п. снабжен специальным секретным флажком, кот. называется "синхронизирован" и может принимать значения "да" и "нет". Когда пользователь создает, к примеру, продажу в программе, этот флажок у этой продажи получает значение "нет, не синхронизирован". Если после этого программа выполняет синхронизацию баз данных, она копирует эту продажу в файл синхронизации для отправки на другие компьютеры, после чего устанавливает этот флажок в положение "да". Если после этого пользователь как-то изменит эту продажу, например, добавит какой-то товар, то флажок "синхронизирован" у этой продажи опять получит значение "нет", и она опять будет включена в следующий сеанс синхронизации.

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

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

Осторожно! Мины!

В случае, если база данных программы Тирика-Магазин содержит много данных, файл выгрузки после сброса флажков синхронизации может получиться настолько большим, что он никогда не сможет загрузиться в программу Тирика-Магазин, и синхронизация больше никогда у вас работать не будет (потребуется платный ремонт). К сожалению, у нас нет гарантированного способа определить размер выгружаемого файла в случае сброса флажков синхронизации, и нет способа определить, сможет ли он загрузиться в программу после выгрузки, тем более что это зависит еще и от компьютера, на котором он будет загружаться в программу. Эмпирически мы определили, что если база данных - отправитель имеет размер до 20 мегабайт, то скорее всего все будет хорошо; ессли база данных занимает больше 500 мегабайт, то скорее всего все будет плохо. Ничего более конкретного мы, к сожалению, сказать не можем

Есть и другая проблема в описываемом методе. В некоторых случаях база данных - отправитель оказывается сформированной некорректно. Такое может произойти, например в случае, если пользователь настроил синхронизацию баз данных на два компьютера, поработал в такой конфигурации несколько времени и потом на одном из двух компьютеров восстановил БД из вчерашней резервной копии; также эта ситуация может случиться и в результате некоторых других некорректных действий пользователей. В этом случае при попытке синхронизации после сброса флажком программа может выдать ошибку "primary key must be unique". В этом случае синхронизация на этих компьютерах не будет работать никогда, и для того, чтобы исправить ситуацию, необходимо заново настроить синхронизацию на пустых базах данных, потеряв при этом все либо почти все данные программы.

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

Пошаговые инструкции

Для того, чтобы сбросить значения флажка синхронизации у всех объектов в базе данных программы Тирика-Магазин, пожалуйста:

1. Проверьте, с какой версией программы вы сейчас работаете
Сделать это можно, выбрав в программе пункт меню Справка|ОПрограмме. Если вы сейчас работаете с версией 12.2, вы можете продолжать исполнять инструкции ниже. Если это более ранняя версия программы, пожалуйста, перейдите на текущую версию программы согласно вот этих инструкций. Если это более позднаяя версия, пожалуйста, свяжитесь с нами, написав нам что-ниудь вроде "Прошу прислать актуальный скрипт для сброса флажков синхронизации для программы Тирика версии ХХ.YY.ZZ", и ждите от нас ответа.

2. Закройте программу Тирика-магазин
после чего подождите 10 секунд

3. Скачайте специальный скрипт для сброса флага синхронизации
и сохраните его в ту папку, куда установлена программа Тирика-Магазин (скорее всего это будет C:\Program Files (x86)\Tirika Shop\)

4. Запустите программу Тирика-Магазин
и дождитесь на экране сообщения "скрипт успешно выполнен". Нажмите OK в этом сообщении, после чего опять подождите 10 секунд

5. Откройте программу Тирика-Магазин, запустите процесс синхронизации

Примечания

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

Следующая статья: Что делать, если программа вместо русских букв показывает иероглифы