Синхронизация:Настройка синхронизации — различия между версиями

Материал из wiki.standart-n.ru
Перейти к: навигация, поиск
(Установка и настройка WAMP сервера)
 
(не показано 56 промежуточных версии 6 участников)
Строка 1: Строка 1:
 
==Установка и настройка WAMP сервера==
 
==Установка и настройка WAMP сервера==
1. Скачать wamp server для необходимой операц. Системы  http://www.wampserver.com/ru/<br>
+
1. Скачать wamp server:
 +
 
 +
1.1 с уже установленными базовыми настройками и базой, http://www.standart-n.ru/files/synhro_server.exe
 +
1.2 (устарело!!!) с официального сайта для необходимой операц. Системы  http://www.wampserver.com/ru/<br>  
 +
 
 
2. Установить Visual C++<br>
 
2. Установить Visual C++<br>
3. Установить WampServer<br>
+
3. Установить WampServer !!!!!  ВАЖНО, чтоб заработало wampserver должен быть тойже битности что и FIREBIRD<br>
 
4. Настройка<br>
 
4. Настройка<br>
 
а. Открываем Appach – httpd.conf<br>
 
а. Открываем Appach – httpd.conf<br>
Строка 16: Строка 20:
 
c. Ищем блок.  Последние строки должны быть, как в этом примере.<br>
 
c. Ищем блок.  Последние строки должны быть, как в этом примере.<br>
 
<pre>
 
<pre>
<Directory "c:/wamp/www/">
+
<Directory "${INSTALL_DIR}/www/">
 
     #
 
     #
 
     # Possible values for the Options directive are "None", "All",
 
     # Possible values for the Options directive are "None", "All",
Строка 49: Строка 53:
 
'''!!! ЕСЛИ ЭТИХ НАСТРОЕК НЕТ САМОМУ ИХ СТАВИТЬ НЕ НУЖНО!!!'''<br>
 
'''!!! ЕСЛИ ЭТИХ НАСТРОЕК НЕТ САМОМУ ИХ СТАВИТЬ НЕ НУЖНО!!!'''<br>
 
d. Ставим галочку  php - php extensions - php_interbase (правая кнопка мышки)<br>
 
d. Ставим галочку  php - php extensions - php_interbase (правая кнопка мышки)<br>
5. '''!!! ОБЯЗАТЕЛЬНО !!!''' в файлах php.ini и my.ini ищем все вхождения слов MAX и LIMIT и устанавливаем ограничения (по здравому смыслу), т.к. изначально ограничения очень большие.<br>
+
5. '''!!! ОБЯЗАТЕЛЬНО !!!''' в файлах php.ini, и my.ini ищем все вхождения слов MAX и LIMIT и устанавливаем ограничения (по здравому смыслу), т.к. изначально ограничения очень большие.<br>
 +
(также проверить файл С:\wamp\bin\apache\apache\bin\php.ini)<br>
 
6. Копируем C:\Program Files\Firebird\Firebird_2_5\bin\fbclient.dll<br>
 
6. Копируем C:\Program Files\Firebird\Firebird_2_5\bin\fbclient.dll<br>
 
в отдельную папку делаем еще раз копию файла и обзываем его gds32.dll, потом оба этих файла копируем во все системные папки Windows, System32, C:\wamp\bin\apache\apache2.4.9\bin,  C:\wamp\bin.<br>
 
в отдельную папку делаем еще раз копию файла и обзываем его gds32.dll, потом оба этих файла копируем во все системные папки Windows, System32, C:\wamp\bin\apache\apache2.4.9\bin,  C:\wamp\bin.<br>
7. Устанавливаем пустую глобальную базу \\vnedrenie\Obmen\Lastexe\ ZTRADE_GMempty.7z<br>
+
7. Устанавливаем пустую глобальную базу, берём с какого-либо схожего клиента, делаем бэкап метаданных,
либо берём с какого-либо схожего клиента, делаем бэкап метаданных,
+
после чего размернув рядом - копирование объекта с донорской базы копируем таблицы
после чего размернув рядом - копирование объекта с родительской базы копируем таблицы SP$FRREPORTS, SP$USERS,SP$GROUPS,SP$GROUP_DETAIL,SP$PARAMS,SP$WDICTS<br>
+
 
 +
Настройки копирования:
 +
[[Файл:Copy to meta.png|center|Фильтр]]
 +
<br>
 +
'''G$DISTRIBUTE_VECTORS'''
 +
'''G$DISTRIBUTE_X_TABLES'''
 +
'''G$PROFILES''' - по желанию
 +
'''G$PROFILES_RULES''' - по желанию
 +
'''SP$ANALITYCS(интер.отчёты)'''
 +
'''SP$FRREPORTS'''
 +
'''SP$GROUPS'''
 +
'''SP$GROUP_DETAIL'''
 +
'''SP$PARAMS'''
 +
'''SP$USERS>'''
 +
'''SP$WDICTS'''
 +
'''в сводник Z$DBVER(DistributeClient профиль)'''
 +
<br>
 
создаём 0 g$profile по типу родительской базы<br>
 
создаём 0 g$profile по типу родительской базы<br>
и если точка первая - делаем update doc_types с уже работающей синхронизацией, чтобы на сервере появились ситы документов
+
и если точка первая - делаем update doc_types с уже работающей синхронизацией, чтобы на сервере появились типы документов<br>
8. В каталог установки wamp\www устанавливаем скрипты. Можно взять \\vnedrenie\Obmen\Lastexe\scripts<br>
+
8. В каталог установки wamp\www устанавливаем скрипты. Можно взять с клиента со схожей базой скрипты из папки www/sinhro/engine - все кроме log.txt, папки BACK,USERS,QUEUE, их потом вручную создать надо будет(не копировать, потому что очень много весят)<br>
или копируем с клиента со схожей базой скрипты из папки www/sinhro/engine - все кроме log.txt, папки BACK,USERS,QUEUE, их потом вручную создать надо будет(не копировать, потому что очень много весят)
+
'''Внимание! Обязательно нужно скрыть листинг файлов на сервере wamp, для этого в каталоге www нужно убедиться, что файл по названием ".htaccess" присутствует. Если его нет, нужно взять с любого сервера wamp, например, он есть Фармаком''' <br>
 
9. В этом каталоге настраиваем файлы: declare.php. пути должны быть верные<br>
 
9. В этом каталоге настраиваем файлы: declare.php. пути должны быть верные<br>
10. Проверяем доступ  http://127.0.0.1:8080/scripts/system.php. Ошибка "error no input data" говорит о том, что все хорошо. Если доступа нет, обращаемся к сис.админам для проброски порта 8080 или настройки совместимости wamp и firebird. Модем, антивирус, брандмауэр.<br>
+
10. Проверяем доступ  http://127.0.0.1:8080/sinhro/engine/system.php. Ошибка "error no input data" говорит о том, что все хорошо. Если доступа нет, обращаемся к сис.админам для проброски порта 8080 или настройки совместимости wamp и firebird. Модем, антивирус, брандмауэр.<br>
11. В php.ini и my.ini делаем поиск по словам "Limit" и "Max", и выставляем настройки в разумных пределах;<br>
+
11. В базе ZTRADE_GM.FDB настраиваем таблицу G$PROFILES аналогично строке с id=0<br>
12. В базе ZTRADE_GM.FDB настраиваем таблицу G$PROFILES аналогично строке с id=0<br>
+
12. Перезагрузить комп. Проверить: старт wamp server должен быть автоматически.<br>
13. DBSECUREKEY заполняем по данным программы \\Vnedrenie\Standart\registr\GenDBSecureKey.exe<br>
+
14. Перезагрузить комп. Проверить: старт wamp server должен быть автоматически.<br>
+
  
 
==Настройка очереди==
 
==Настройка очереди==
Строка 73: Строка 92:
 
5. В Службах ОС найти и запустить службу "StandartNDistributeQueueService", тип запуска "Автоматически";<br>
 
5. В Службах ОС найти и запустить службу "StandartNDistributeQueueService", тип запуска "Автоматически";<br>
 
6. В планировщике заданий настраиваем задание на перезапуск службы (пример есть в ЮгМедФарме, Гурмане, АйдакеФарм и др.)<br>
 
6. В планировщике заданий настраиваем задание на перезапуск службы (пример есть в ЮгМедФарме, Гурмане, АйдакеФарм и др.)<br>
 +
<pre>
 +
net.exe stop StandartNDistributeQueueService
 +
TIMEOUT /T 30
 +
TASKKILL /F /IM SNDQS.exe
 +
TIMEOUT /T 30
 +
net.exe start StandartNDistributeQueueService
 +
</pre>
 
7. Проверить.<br>
 
7. Проверить.<br>
 +
 +
==Общие понятия==
 +
Сборка пакета для клиента
 +
1. Вычисление данных для отправки, на основании G$DISTRIBUTE_VECTORS. Если записей по профилю нет - в выборку попадают записи на отправку всех таблиц.
 +
2. Последовательная сбока пакета основании G$DISTRIBUTE_X_TABLES. Если записей по профилю нет - все отправляется, иначе, только присутствующие таблицы (переименованные, если указано).
 +
3. При достижении лимита по объему сборка прекращается, пакет отправляется
  
 
==Настройка клиента==
 
==Настройка клиента==
Строка 86: Строка 118:
  
 
==Настройка сводной базы==
 
==Настройка сводной базы==
1) Берем копию уже настроенной сводной базы в сети (первый раз настраивает Слава);<br>
+
1)Устанавливаем пустую сводную базу, берём с какого-либо схожего клиента, делаем бэкап метаданных, после чего размернув рядом - копирование объекта с донорской базы копируем таблицы<br>
 +
'''SP$ANALITYCS(интер.отчёты)'''
 +
'''SP$FRREPORTS'''
 +
'''SP$GROUPS'''
 +
'''SP$GROUP_DETAIL'''
 +
'''SP$IMAGELISTS'''
 +
'''SP$PARAMS'''
 +
'''SP$PICTURES'''
 +
'''SP$USERS'''
 +
'''SP$WDICTS'''
 +
'''в сводник Z$DBVER(DistributeClient профиль)'''
 +
<br>
 
2) Разворачиваем на требуемом ПК;<br>
 
2) Разворачиваем на требуемом ПК;<br>
 
3) В таблице G$DISTRIBUTE оставляем только 1 запись с максимальным SERVERPACKET, остальное чистим;<br>
 
3) В таблице G$DISTRIBUTE оставляем только 1 запись с максимальным SERVERPACKET, остальное чистим;<br>
4) Создаем на сервере профиль по аналогии с сущ. сводной базой, настройки в таблицах G$DISTRIBUTE_X_TABLES и G$DISTRIBUTE_VECTORS аналогичные сущ. сводной базе;<br>
+
4) Создаем на сервере профиль по аналогии с сущ. сводной базой '''(по умолчанию используем 98 профиль для сводной базы)''', настройки в таблицах G$DISTRIBUTE_X_TABLES и G$DISTRIBUTE_VECTORS аналогичные сущ. сводной базе;<br>
 
5) Копируем папку со spacepro, dtClient-ом - настраиваем на актуальный профиль и путь к базе. DtClient ставим в автозагрузку.<br>
 
5) Копируем папку со spacepro, dtClient-ом - настраиваем на актуальный профиль и путь к базе. DtClient ставим в автозагрузку.<br>
 +
6) если аптечная сеть - настраиваем OST на сводную базу и прописываем нужный регион
 +
7) Настраиваем планировщик на сжатие/восстановление базы сводника и чистку каталога
 +
 +
==Добавляем клиента в общий мониторинг синхронизации на sinhro==
 +
\\192.168.67.30\web\sinhro\configs\clients.ini
 +
dev
 +
express
 +
 +
==Быстрое шифрование пакетов==
 +
1) кладем в папку со скриптами файл \\supa\zclientxp\_releases\DistributeClient\codefilebykey.exe <br>
 +
2) правим system.php, в блоке case "querypackets2013" меняем строчку с <br>
 +
<pre> codefilebykey($userfolder."data.rok", $userfolder."data.cri", $GLOBALS["CODEKEY"]); </pre>
 +
на
 +
<pre> exec("codefilebykey.exe ".$userfolder."data.rok ".$userfolder."data.cri ".$GLOBALS["CODEKEY"]);</pre>
 +
 +
==Отключение стандартных контролек==
 +
<pre>
 +
в тасках у некоторых клиентов постоянно появляются записи с названием "CONTROLSUMS", которые выполняются с ошибками.
 +
Для их отключения требуется переименовать папку "gcontrol" (\wamp\www\sinhro\engine\gcontrol) в другое имя, например "gcontrol~~"
 +
</pre>
  
 
==ВНИМАНИЕ!!!==  
 
==ВНИМАНИЕ!!!==  
Строка 96: Строка 159:
 
1) Нормально: на docs, parts висят триггеры, которые собирают warebase_g, триггеры которой пишут данные в g$distribute, т.к. это все происходит в рамках транзакции очереди задач;<br>
 
1) Нормально: на docs, parts висят триггеры, которые собирают warebase_g, триггеры которой пишут данные в g$distribute, т.к. это все происходит в рамках транзакции очереди задач;<br>
 
2) Неправильно: пользовательская таблица, которая заполняется вручную, триггеры которой пишут данные в g$distribute, т.к. запись происходит в отдельной транзакции.<br>
 
2) Неправильно: пользовательская таблица, которая заполняется вручную, триггеры которой пишут данные в g$distribute, т.к. запись происходит в отдельной транзакции.<br>
 +
 +
==Настройка ServiceMngr.exe для глобальной БД==
 +
в restoreSQL.ini добавить строки:
 +
<pre>
 +
delete from G$DISTRIBUTE g where g.insertdt < dateadd(month, -6, current_timestamp) and g.updatedt <  dateadd(month, -6, current_timestamp);
 +
delete from g$tasks g where g.insertdt < dateadd(month, -6, current_timestamp);
 +
</pre>
 +
 +
==Пустые наименования. РЕШЕНИЕ!==
 +
<pre>
 +
1) поправить declare.php (убрать WARES.SNAME, поле должно приходить по синхронизации с локальной базы);
 +
2) проверить триггеры на wares.sname на серверной БД (заполнения поля на серверной/сводной БД быть не должно);
 +
3) сделать поле wares.sname на серверной БД NOT NULL (поле должно быть всегда заполнено);
 +
</pre>
 +
 +
==Типы задач (g$tasks TASK_TYPE)==
 +
<pre>
 +
0 - обычный SQL скрипт;
 +
2 - сетки
 +
4 - кнопки для кассира (данные должны быть в zip архиве)
 +
</pre>
 +
 +
<b>подробнее см. тут</b>
 +
http://wiki.standart-n.ru/index.php/%D0%A1%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F:%D0%9E%D0%B1%D1%89%D0%B8%D0%B5_%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%BF%D0%BE_%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8#.D0.9E.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.B8.D1.82.D1.8C_.D1.81.D0.B5.D1.82.D0.BA.D1.83_.D0.BE.D1.82.D0.BE.D0.B1.D1.80.D0.B0.D0.B6.D0.B5.D0.BD.D0.B8.D1.8F_.28.D1.80.D0.B0.D1.81.D0.BF.D1.80.D0.BE.D1.81.D1.82.D1.80.D0.B0.D0.BD.D0.B8.D1.82.D1.8C_.D0.B2.D0.B8.D0.B4.29_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D1.8B_.D0.BF.D0.BE_.D1.81.D0.B5.D1.82.D0.B8
 +
 +
 +
==Медленная работа процедуры по расчету остатков PR_SET_WAREBASE_DATE==
 +
требуется на своднике выполнить скрипт
 +
[[Файл:PR SET WAREBASE DATE.txt]]
 +
 +
==Ошибка "Incomplete Zip File"==
 +
в логах клиента синхронизации "Ошибка при сеансе обмена: Incomplete Zip File", смотрим *.rcvd файлы.
 +
Там может быть ошибка, например:
 +
<pre>
 +
502 Bad Gateway
 +
------------------------------------
 +
nginx/1.2.1"
 +
</pre>
 +
 +
==Отправить сетку по сети==
 +
[[Синхронизация:Отправить_сетку_отображения_(распространить_вид)_таблицы_по_сети]]
 +
 +
==Обновить DtClient для всей сети==
 +
[[Синхронизация:Общие_вопросы_по_синхронизации#.D0.9A.D0.B0.D0.BA_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.B8.D1.82.D1.8C_.D1.83.D0.B4.D0.B0.D0.BB.D0.B5.D0.BD.D0.BD.D0.BE_Distribute_Client_.28dtclient.29|Синхронизация:Общие_вопросы_по_синхронизации#Distribute_Client_dtclient]]
 +
 +
==ошибка "Ошибка в вэб-запросе: Connection refused" ==
 +
в службе очереди или путь к базе не тот или порт указан внешний, а не внутренний 8080
 +
 +
==Пакеты==
 +
* '''packet''' - это счетчик на отправку данных с локальной точки, должен быть больше или равен на сервере по этому профилю (заполняется генератором на точке)
 +
* '''serverpacket''' - это общий счетчик на скачаивание данных с сервера на точку, на сервере всегда больше или равен точке (заполняется генератором на сервере)

Текущая версия на 16:29, 10 апреля 2024

Установка и настройка WAMP сервера

1. Скачать wamp server:

1.1 с уже установленными базовыми настройками и базой, http://www.standart-n.ru/files/synhro_server.exe
1.2 (устарело!!!) с официального сайта для необходимой операц. Системы  http://www.wampserver.com/ru/

2. Установить Visual C++
3. Установить WampServer  !!!!! ВАЖНО, чтоб заработало wampserver должен быть тойже битности что и FIREBIRD
4. Настройка
а. Открываем Appach – httpd.conf
b. Строки

   Listen 0.0.0.0:80
   Listen [::0]:80

исправляем на

   Listen 0.0.0.0:8080

c. Ищем блок. Последние строки должны быть, как в этом примере.

<Directory "${INSTALL_DIR}/www/">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
#   onlineoffline tag - don't remove
     Order Deny,Allow
     Allow from all
</Directory>

!!! ЕСЛИ ЭТИХ НАСТРОЕК НЕТ САМОМУ ИХ СТАВИТЬ НЕ НУЖНО!!!
d. Ставим галочку php - php extensions - php_interbase (правая кнопка мышки)
5. !!! ОБЯЗАТЕЛЬНО !!! в файлах php.ini, и my.ini ищем все вхождения слов MAX и LIMIT и устанавливаем ограничения (по здравому смыслу), т.к. изначально ограничения очень большие.
(также проверить файл С:\wamp\bin\apache\apache\bin\php.ini)
6. Копируем C:\Program Files\Firebird\Firebird_2_5\bin\fbclient.dll
в отдельную папку делаем еще раз копию файла и обзываем его gds32.dll, потом оба этих файла копируем во все системные папки Windows, System32, C:\wamp\bin\apache\apache2.4.9\bin, C:\wamp\bin.
7. Устанавливаем пустую глобальную базу, берём с какого-либо схожего клиента, делаем бэкап метаданных, после чего размернув рядом - копирование объекта с донорской базы копируем таблицы

Настройки копирования:

Фильтр


G$DISTRIBUTE_VECTORS
G$DISTRIBUTE_X_TABLES
G$PROFILES - по желанию
G$PROFILES_RULES - по желанию 
SP$ANALITYCS(интер.отчёты)
SP$FRREPORTS
SP$GROUPS
SP$GROUP_DETAIL
SP$PARAMS
SP$USERS>
SP$WDICTS
в сводник Z$DBVER(DistributeClient профиль)


создаём 0 g$profile по типу родительской базы
и если точка первая - делаем update doc_types с уже работающей синхронизацией, чтобы на сервере появились типы документов
8. В каталог установки wamp\www устанавливаем скрипты. Можно взять с клиента со схожей базой скрипты из папки www/sinhro/engine - все кроме log.txt, папки BACK,USERS,QUEUE, их потом вручную создать надо будет(не копировать, потому что очень много весят)

Внимание! Обязательно нужно скрыть листинг файлов на сервере wamp, для этого в каталоге www нужно убедиться, что файл по названием ".htaccess" присутствует. Если его нет, нужно взять с любого сервера wamp, например, он есть Фармаком 

9. В этом каталоге настраиваем файлы: declare.php. пути должны быть верные
10. Проверяем доступ http://127.0.0.1:8080/sinhro/engine/system.php. Ошибка "error no input data" говорит о том, что все хорошо. Если доступа нет, обращаемся к сис.админам для проброски порта 8080 или настройки совместимости wamp и firebird. Модем, антивирус, брандмауэр.
11. В базе ZTRADE_GM.FDB настраиваем таблицу G$PROFILES аналогично строке с id=0
12. Перезагрузить комп. Проверить: старт wamp server должен быть автоматически.

Настройка очереди

1. Взять последний релиз \\supa\zclientxp\_releases\QueueService;
2. В QueueService.ini указать актуальные пути/адреса;
3. Установить службу SNDQS.exe /install;
4. В declare.php (обычно тут C:\wamp\www\sinhro\engine\declare.php) указать параметр $GLOBALS["USEQUEUE"]=TRUE;
5. В Службах ОС найти и запустить службу "StandartNDistributeQueueService", тип запуска "Автоматически";
6. В планировщике заданий настраиваем задание на перезапуск службы (пример есть в ЮгМедФарме, Гурмане, АйдакеФарм и др.)

net.exe stop StandartNDistributeQueueService
TIMEOUT /T 30
TASKKILL /F /IM SNDQS.exe
TIMEOUT /T 30
net.exe start StandartNDistributeQueueService

7. Проверить.

Общие понятия

Сборка пакета для клиента

1. Вычисление данных для отправки, на основании G$DISTRIBUTE_VECTORS. Если записей по профилю нет - в выборку попадают записи на отправку всех таблиц.
2. Последовательная сбока пакета основании G$DISTRIBUTE_X_TABLES. Если записей по профилю нет - все отправляется, иначе, только присутствующие таблицы (переименованные, если указано).
3. При достижении лимита по объему сборка прекращается, пакет отправляется

Настройка клиента

1. Скопировать и запустить distributeclient
2. Настройки должны выглядеть примерно так:
3. Настройка синхронизации.png
4. Перезапуск клиента.
5. Вводим идентификатор профиля (программа GenDBSecureKey.exe – кнопка Button3), где номер по порядку совпадает с ИД из таблицы G$PROFILES, а сам ключ совпадает со значением в поле DBSECUREKEY (БД Ztrade_GM).
6. Проверяем что в основных таблицах VALS, WARES, PARTS,DOCS у строки с id=0 небольшой пакет, если большой отключаем триггер, обнуляем пакет.
7. Проверяем синхронизацию
8. Ставим ярлык в автозагрузку

Настройка сводной базы

1)Устанавливаем пустую сводную базу, берём с какого-либо схожего клиента, делаем бэкап метаданных, после чего размернув рядом - копирование объекта с донорской базы копируем таблицы

SP$ANALITYCS(интер.отчёты)
SP$FRREPORTS
SP$GROUPS
SP$GROUP_DETAIL
SP$IMAGELISTS
SP$PARAMS
SP$PICTURES
SP$USERS
SP$WDICTS
в сводник Z$DBVER(DistributeClient профиль)


2) Разворачиваем на требуемом ПК;
3) В таблице G$DISTRIBUTE оставляем только 1 запись с максимальным SERVERPACKET, остальное чистим;
4) Создаем на сервере профиль по аналогии с сущ. сводной базой (по умолчанию используем 98 профиль для сводной базы), настройки в таблицах G$DISTRIBUTE_X_TABLES и G$DISTRIBUTE_VECTORS аналогичные сущ. сводной базе;
5) Копируем папку со spacepro, dtClient-ом - настраиваем на актуальный профиль и путь к базе. DtClient ставим в автозагрузку.
6) если аптечная сеть - настраиваем OST на сводную базу и прописываем нужный регион 7) Настраиваем планировщик на сжатие/восстановление базы сводника и чистку каталога

Добавляем клиента в общий мониторинг синхронизации на sinhro

\\192.168.67.30\web\sinhro\configs\clients.ini
dev
express

Быстрое шифрование пакетов

1) кладем в папку со скриптами файл \\supa\zclientxp\_releases\DistributeClient\codefilebykey.exe
2) правим system.php, в блоке case "querypackets2013" меняем строчку с

 codefilebykey($userfolder."data.rok", $userfolder."data.cri", $GLOBALS["CODEKEY"]); 

на

 exec("codefilebykey.exe ".$userfolder."data.rok ".$userfolder."data.cri ".$GLOBALS["CODEKEY"]);

Отключение стандартных контролек

в тасках у некоторых клиентов постоянно появляются записи с названием "CONTROLSUMS", которые выполняются с ошибками.
Для их отключения требуется переименовать папку "gcontrol" (\wamp\www\sinhro\engine\gcontrol) в другое имя, например "gcontrol~~"

ВНИМАНИЕ!!!

На серверной базе нельзя настраивать функционал, который будет записывать данные в g$distribute параллельно с очередью задач вне её транзакции. Иначе будут дыры в пакетах, и есть риск, что часть данных с сервера не уйдет. Пример:
1) Нормально: на docs, parts висят триггеры, которые собирают warebase_g, триггеры которой пишут данные в g$distribute, т.к. это все происходит в рамках транзакции очереди задач;
2) Неправильно: пользовательская таблица, которая заполняется вручную, триггеры которой пишут данные в g$distribute, т.к. запись происходит в отдельной транзакции.

Настройка ServiceMngr.exe для глобальной БД

в restoreSQL.ini добавить строки:
delete from G$DISTRIBUTE g where g.insertdt < dateadd(month, -6, current_timestamp) and g.updatedt <  dateadd(month, -6, current_timestamp);
delete from g$tasks g where g.insertdt < dateadd(month, -6, current_timestamp);

Пустые наименования. РЕШЕНИЕ!

1) поправить declare.php (убрать WARES.SNAME, поле должно приходить по синхронизации с локальной базы);
2) проверить триггеры на wares.sname на серверной БД (заполнения поля на серверной/сводной БД быть не должно);
3) сделать поле wares.sname на серверной БД NOT NULL (поле должно быть всегда заполнено);

Типы задач (g$tasks TASK_TYPE)

0 - обычный SQL скрипт;
2 - сетки
4 - кнопки для кассира (данные должны быть в zip архиве)

подробнее см. тут http://wiki.standart-n.ru/index.php/%D0%A1%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F:%D0%9E%D0%B1%D1%89%D0%B8%D0%B5_%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%BF%D0%BE_%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8#.D0.9E.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.B8.D1.82.D1.8C_.D1.81.D0.B5.D1.82.D0.BA.D1.83_.D0.BE.D1.82.D0.BE.D0.B1.D1.80.D0.B0.D0.B6.D0.B5.D0.BD.D0.B8.D1.8F_.28.D1.80.D0.B0.D1.81.D0.BF.D1.80.D0.BE.D1.81.D1.82.D1.80.D0.B0.D0.BD.D0.B8.D1.82.D1.8C_.D0.B2.D0.B8.D0.B4.29_.D1.82.D0.B0.D0.B1.D0.BB.D0.B8.D1.86.D1.8B_.D0.BF.D0.BE_.D1.81.D0.B5.D1.82.D0.B8


Медленная работа процедуры по расчету остатков PR_SET_WAREBASE_DATE

требуется на своднике выполнить скрипт Файл:PR SET WAREBASE DATE.txt

Ошибка "Incomplete Zip File"

в логах клиента синхронизации "Ошибка при сеансе обмена: Incomplete Zip File", смотрим *.rcvd файлы. 
Там может быть ошибка, например: 
502 Bad Gateway
------------------------------------
nginx/1.2.1"

Отправить сетку по сети

Синхронизация:Отправить_сетку_отображения_(распространить_вид)_таблицы_по_сети

Обновить DtClient для всей сети

Синхронизация:Общие_вопросы_по_синхронизации#Distribute_Client_dtclient

ошибка "Ошибка в вэб-запросе: Connection refused"

в службе очереди или путь к базе не тот или порт указан внешний, а не внутренний 8080

Пакеты

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