Перейти к содержанию

Инструкция compas-client

Содержание руководства

Compas-Client — это специализированная система обновления и управления дистрибутивом ERP Компас.

Программа может быть установлена в одном из двух режимов:

  • Режим менеджера (М) — устанавливается на одном персональном компьютере (как правило, на рабочем месте администратора системы). Выступает в роли локального сервера для пользовательских рабочих мест и централизованно управляет ими.
  • Режим пользователя (П) — устанавливается на все остальные рабочие места конечных пользователей в организации.

Установка «compas-client» в Windows

Для развёртывания системы на персональном компьютере выполните следующие шаги:

  1. Скачайте актуальный установщик compas-client_Setup.exe со страницы репозитория: repo.compas.ru/update/?type=list
  2. Запустите загруженный файл и завершите установку в одном из режимов, описанных ниже.

Рекомендуемый метод

Тихая установка является приоритетной, так как она в автоматическом режиме конфигурирует систему и перезапускает все связанные службы без лишних вопросов пользователю.

Вариант 1. Тихая установка (рекомендуется)

Этот метод позволяет установить compas-client с одновременным применением параметров конфигурации. Установка проходит полностью в автоматическом режиме (скрытом), не запрашивая у пользователя даже выбор директории назначения.

М) Установка в режиме менеджера

Для тихой установки серверной части выполните команду:

compas-client_Setup.exe /S -i_am_manager true

Важно для администратора

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

П) Установка в режиме пользователя

Для тихой установки клиентской части выполните команду (подставив адрес вашего сервера):

compas-client_Setup.exe /S -manager_address http://<Ваш_адрес_ПК_менеджера>

Клиентская установка в автоматическом режиме завершена.

Обязательная проверка службы

После завершения установки убедитесь, что в системе запущена служба compas-client.
Если служба не запустилась, изучите лог-файл по следующему пути:
C:\Users\Public\ERP_Compas\service\compas-client\log

Внимание

Использовать другие варианты установки (с ручным вводом параметров) следует исключительно в тех случаях, когда тихая установка по каким-то причинам невозможна.

Вариант 2. Установка с запросом места назначения

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

М) Установка в режиме менеджера

compas-client_Setup.exe -i_am_manager true

П) Установка в режиме пользователя

compas-client_Setup.exe -manager_address http://<Ваш_адрес_ПК_менеджера>

Вариант 3. Обычный запуск (последующая ручная настройка)

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

compas-client_Setup.exe

Настройка «compas-client» после установки

М) Конфигурация режима менеджера

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

Способ 1. Через графический интерфейс «Управление сервисами»

  1. Запустите ярлык «ERP Компас» на рабочем столе.
  2. В правом нижнем углу нажмите кнопку «Настройки» (либо нажмите правой кнопкой мыши по иконке в трее и выберите «Управление сервисами»).
  3. В открывшемся окне настройте следующие параметры:
    • Режим менеджера — переведите в положение ДА.
    • ID клиента — введите уникальный идентификатор (для его получения обратитесь на горячую линию поддержки ERP Компас).

Интерфейс настроек сервиса Контекстное меню иконки Окно управления сервисами с ID клиента Окно конфигурации параметров режима менеджера и авторизации

Способ 2. Изменение конфигурационного файла вручную

  1. Перейдите по пути: C:\ProgramData\ERP_Compas\service\conf\
  2. Откройте текстовым редактором файл base.ini.
  3. Найдите или создайте секцию [base] и добавьте в неё директиву активации режима менеджера.

Итоговое содержимое файла base.ini должно выглядеть следующим образом:

[base]
manager = TRUE

П) Конфигурация режима пользователя

Для связывания клиентского рабочего места с главным сервером (менеджером) после обычной установки выполните ручную правку конфигурации:

  1. Перейдите в каталог: C:\ProgramData\ERP_Compas\service\conf\
  2. Откройте для редактирования файл compas_client.ini.
  3. В секции [client] укажите сетевой адрес компьютера-менеджера.

Итоговое содержимое файла compas_client.ini должно выглядеть так:

[compas_manager]

[client]
manager_address = http://<Ваш_адрес_ПК_менеджера>

Настройка сервера (в режиме менеджера)

После выполнения тихой установки

При развёртывании сервера командой тихой установки compas-client_Setup.exe /S -i_am_manager true система автоматически выполняет ключевые этапы первичной конфигурации:

  • Инициализирует серверную часть и создаёт изолированную директорию для хранения данных приложения.
  • Принудительно переводит утилиту в режим работы Менеджера.
  • Автоматически добавляет разрешающее правило в брандмауэр Windows для приёма входящих HTTP/HTTPS-запросов процессом compas_client.exe.
  • Генерирует самоподписанный SSL-сертификат безопасности, сохраняя созданный приватный ключ в закрытую директорию текущего пользователя.

Несмотря на то, что базовая автоматическая настройка полностью завершена, администратору необходимо выполнить несколько обязательных шагов:

  1. Настройка SSL-шифрования: Замените автоматически сгенерированный самоподписанный SSL-сертификат на доверенный корпоративный или публичный сертификат. Если это невозможно, временно отключите проверку доверия сертификатов (подробнее см. в разделе Управление безопасностью и SSL). Полностью отключать шифрование не рекомендуется.
  2. Первичный вход в веб-интерфейс: На рабочем месте менеджера откройте веб-браузер и перейдите на страницу панели управления сервером по одному из адресов (в зависимости от использования SSL):
    • Без SSL (HTTP): http://127.0.0.1:9945/
    • С SSL (HTTPS): https://127.0.0.1:9946/
  3. Авторизация: Для входа используйте встроенную учетную запись администратора по умолчанию:
    • Логин: admin
    • Пароль: password

Безопасность учетных данных

Сразу после первой успешной авторизации в системе в обязательном порядке смените стандартный пароль администратора на сложный и защищённый. Изменение пароля производится в меню «Профиль пользователя».

Взаимодействие с антивирусным ПО

Обязательно проверьте настройки установленного в вашей организации антивируса. Сетевые экраны сторонних антивирусных программ могут блокировать порты службы. Если служба compas-client блокируется антивирусом и вам не удаётся настроить исключения самостоятельно, обратитесь на горячую линию поддержки.


После обычной установки (без параметров)

Если программа была установлена стандартным запуском (без ключей), она разворачивается в режиме пользователя. Чтобы переключить её в режим менеджера и запустить серверную инициализацию, выполните в командной строке следующую команду:

"C:\Program Files\compas-client\compas_client.exe" -ini=i_am_manager:true

Выполнение данной команды полностью аналогично этапам автоматической конфигурации, которые происходят при тихой установке сервера. После её выполнения переходите к настройке SSL и смене стандартного пароля.


Управление безопасностью и SSL

Замена самоподписанного SSL-сертификата на доверенный

Для обеспечения максимального уровня безопасности и исключения предупреждений браузера рекомендуется заменить автоматически сгенерированный сертификат на доверенный (выпущенный вашим корпоративным удостоверяющим центром или публичным CA).

Для выполнения замены:

  1. Остановите системную службу compas-client.
  2. Поместите ваш публичный сертификат (в формате PEM) по следующему пути, заменив существующий файл:
    C:\ProgramData\ERP_Compas\service\data\certificate.crt
  3. Поместите соответствующий приватный ключ по следующему пути:
    C:\Users\andreev\AppData\Roaming\ERP_Kompas\service\data\private.key
  4. Запустите системную службу compas-client заново.

Отключение проверки доверия SSL-сертификата

Если вы используете самоподписанный сертификат в закрытом контуре локальной сети и вам необходимо отключить валидацию цепочки доверия (чтобы клиенты не блокировали соединение), выполните следующие правки:

  • На стороне сервера (менеджера):
    Откройте файл C:\ProgramData\ERP_Compas\service\conf\base.ini, найдите раздел [base] и добавьте (или измените) строку:
[base]
ssl_verify = false
  • На стороне рабочих мест (пользователей):
    Откройте файл C:\ProgramData\ERP_Compas\service\conf\compas_client.ini, найдите раздел [AUTH] и добавьте (или измените) строку:
[AUTH]
ssl_verify = false

Полное отключение HTTPS (переход на незащищенный HTTP)

По умолчанию вся система compas-client спроектирована для работы по защищенному протоколу HTTPS. Если по техническим причинам вам необходимо полностью отключить шифрование трафика и перевести сервер на протокол HTTP, выполните следующие настройки:

  • На стороне сервера (менеджера):
    Откройте файл C:\ProgramData\ERP_Compas\service\conf\base.ini, найдите раздел [base] и установите значение false для параметра use_ssl:
[base]
use_ssl = false
  • На стороне рабочих мест (пользователей):
    Откройте файл C:\ProgramData\ERP_Compas\service\conf\compas_client.ini, найдите раздел [AUTH] и аналогично отключите параметр use_ssl:
[AUTH]
use_ssl = false

Настройка брандмауэра Windows

После завершения полной тихой установки в систему автоматически добавляются два новых разрешающих правила брандмауэра Windows под именем «compas_client»:

  • Для исполняемого файла: C:\Program Files\compas_client.exe
  • Для исполняемого файла службы: C:\ProgramData\ERP_Compas\service\bin\compas_client.exe

Просмотр правил в брандмауэре Windows Параметры сетевого правила

Важно для администратора

  • Если по причине ограничений прав или особенностей ОС правила не создались автоматически, создайте их вручную через стандартную оснастку брандмауэра, выбрав подходящие типы сетевых профилей (или все профили, если точная сетевая структура не определена).
  • При деинсталляции пакета compas-client данные правила удаляются автоматически. Если этого не произошло, выполните их ручную очистку.

Авторизация ERP Компас через Compas-Client

В ERP Компас реализована возможность безопасной авторизации в СУБД с помощью проксирования через compas-client. Этот механизм исключает необходимость хранения паролей от баз данных на конечных рабочих местах пользователей.

Технические требования

Данный функционал доступен при использовании компонентов следующих версий (или более новых):

Наименование компонента Минимальная версия Дата релиза
Модули ERP Компас 12.86.04 04.06.2025 / 09.06.2025
Библиотека xmoderncore.dll 1.0.63 09.06.2025
Утилита compas-client 1.0.32 09.06.2025

Настройка на рабочем месте менеджера (администратора)

  1. Откройте веб-интерфейс панели управления сервером (перейдите по адресу http://127.0.0.1:9945/ или https://127.0.0.1:9946/).
  2. Перейдите в раздел управления подключениями и добавьте новую авторизацию, заполнив конфигурационные поля:
    • Адрес сервера СУБД — сетевое имя или IP-адрес сервера MSSQL / PostgreSQL.
    • Логин в СУБД — имя системного пользователя базы данных.
    • Пароль к СУБД — пароль от указанной учетной записи базы данных.
    • Группа — определяет тип и политику безопасности подключения:
      • Групповой (общий) доступ — введите ключевое слово all. Данный пароль будет автоматически применяться для всех пользователей, которым не назначен персональный доступ. Рекомендация: назначайте этой учетной записи в СУБД минимальный набор прав.
      • Личный доступ — оставьте поле пустым. Индивидуальная авторизация позволяет разграничить права доступа к таблицам и функциям СУБД для конкретных сотрудников, а также детально протоколировать их действия штатными средствами логирования самой СУБД.

Примеры интерфейса панели управления

Вход в панель управления Compas-Client Форма авторизации в панели управления Compas-Client

Список настроенных авторизаций Просмотр списка настроенных учетных записей и авторизаций СУБД


Настройка на стороне программы Компас

Для активации прозрачной авторизации через compas-client на конечных рабочих местах пользователей (а также на ПК менеджера) необходимо включить соответствующий режим. Это можно сделать одним из двух способов:

Способ 1. Через графический интерфейс «Администратор БД»

  1. Откройте программу Компас и перейдите в пункт главного меню «Администратор БД».
  2. Выберите рабочую базу данных (по умолчанию «KOMPAS»).
  3. Перейдите на вкладку «Пользователь БД».
  4. Установите флажок (галочку) напротив пункта «Авторизация через Compas-Client».
    (Обратите внимание: текстовое поле «Имя пользователя БД» в данном сценарии заполнять не требуется).

Включение авторизации в интерфейсе Компаса

Способ 2. Через файл конфигурации компиляции базы данных

  1. Перейдите к директории с настройками вашей базы данных и откройте текстовым редактором файл kompasdb.ini.
  2. Найдите целевую секцию базы данных [KOMPAS].
  3. Добавьте или измените строку управляющего параметра: ini [KOMPAS] AuthCompasClient=1

Преимущества безопасности

После применения этих настроек авторизация доступа программных модулей к СУБД будет полностью делегирована утилите compas-client. Пароли от базы данных больше не сохраняются и не передаются в открытом виде на рабочие места пользователей, что полностью исключает их компрометацию.

Рекомендация по шифрованию данных

Для максимальной защиты передаваемых по сети учетных данных и токенов настоятельно рекомендуется использовать доверенный внутрикорпоративный или сертифицированный SSL-сертификат (подробнее см. в разделе настройки SSL).


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

В ERP Компас реализована возможность развёртывания локального сервера API для интеграции внешних систем и автоматической синхронизации данных. Сервер API принимает внешние запросы и транслирует их во внутренние бизнес-процедуры (БП) ERP Компас через стандартизированные конечные точки (endpoints).

Для запуска и настройки сервера API выполните следующие шаги:

Добавление и управление ключами API

  1. Авторизуйтесь в панели управления сервером на ПК менеджера (подробнее см. в разделе Первый вход в веб-интерфейс).

Переход в меню управления ключами

  1. В боковом меню перейдите в раздел «Ключи API».
  2. Нажмите кнопку добавления нового ключа. В появившемся поле «Имя API ключа» введите уникальный идентификатор латиницей (например, имя подключаемой внешней системы).
  3. Нажмите кнопку «Добавить». Секретный токен будет сгенерирован автоматически.

Создание нового ключа API

Критически важно

Сгенерированный токен (значение ключа) отображается в интерфейсе только один раз в момент создания! Сразу же скопируйте его в безопасное место или непосредственно в файл конфигурации внешней системы, которую вы интегрируете.

Отображение сгенерированного токена

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

Список созданных ключей API


Настройка окружения erp-common и утилиты kadry_ctl

По своей архитектуре сервер API выполняет роль веб-шлюза: он принимает входящие сетевые запросы и передаёт их на исполнение консольным подпрограммам. Базовой средой исполнения является общесистемный проект «erp-common».

Примечание

Если в вашем дистрибутиве отсутствует каталог erp-common, отправьте официальный запрос на горячую линию поддержки ERP Компас для получения актуального пакета.

В состав erp-common входит консольная утилита kadry_ctl. Она отвечает за запуск бизнес-процедур системы в тихом консольном режиме, передаёт входные параметры внутрь БП и возвращает сформированный результат обратно веб-серверу для отправки клиенту.

Базовый план настройки среды erp-common:

  1. Выполните установку и полную настройку службы compas_client (согласно инструкциям, описанным в начале руководства).

  2. На рабочем месте администратора (где compas_client запущен в режиме менеджера) настройте путь к конфигурационному файлу метаданных для утилиты kadry_ctl. Путь должен указывать непосредственно на директорию (папку), в которой расположен целевой файл kadry.cfg. Это может быть как ваш индивидуальный подпроект ERP, так и базовый файл kadry.cfg стандартного модуля кадров.

Указание пути к файлу метаданных в интерфейсе

  1. Рекомендуется проверить физическое наличие всех компонентов в файловой системе сервера:
    • Проект erp-common должен находиться в папке:
      C:\Users\Public\ERP_Compas\Client\APPS
    • Исполняемый файл kadry_ctl.exe должен присутствовать по пути:
      C:\Users\Public\ERP_Compas\Client\APPS\erp-common\bin

Ручная привязка пакета (при необходимости)

В ряде конфигураций может потребоваться явно объявить пакет в службе. Для этого откройте конфигурационный файл C:\ProgramData\ERP_Compas\service\conf\compas_client.ini (или base.ini) и добавьте в него следующие строки: ini [app/erp-common] package: erp-common

  1. Если в каталоге APPS проект erp-common полностью отсутствует, отправьте запрос на горячую линию поддержки.

Подключение стороннего внешнего сервиса к API

Сервер API предоставляет веб-интерфейс для запуска внутренних бизнес-процедур (БП) Компаса. Администратор может задействовать как стандартные БП из пакетов обновлений, так и добавлять свои собственные процедуры.

Для отправки запросов к API со стороны стороннего сервиса (например, с помощью утилиты Postman или бэкенда интеграции), настройте сетевое соединение согласно следующей технической спецификации:

Спецификация HTTP-запроса

Параметр запроса Устанавливаемое значение / Описание
Метод выполнения POST
Адрес соединения (URL) http://<адрес_сервера>:9945/api/bp (или https://<адрес_сервера>:9946/api/bp при SSL)
Заголовок Content-Type application/json
Заголовок X-API-Id <Имя_API_ключевого_слова> (заданное вами имя латиницей)
Заголовок X-API-Key <Сгенерированный_API_токен> (уникальный ключ безопасности)

Важно при выборе порта

Использование протокола (HTTP или HTTPS) и портов (9945 или 9946) напрямую зависит от того, включен ли у вас режим шифрования SSL в конфигурационных файлах (подробнее см. раздел Управление безопасностью и SSL).

Структура тела запроса (BODY)

Передаваемые данные должны отправляться в формате JSON-словаря. Обязательным является корневой параметр bp, содержащий системное имя вызываемой процедуры:

{
  "bp": "имя_бизнес_процедуры",
  "param1": "значение_параметра_1",
  "param2": "значение_параметра_2"
}

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

Пример тестирования API-запроса в утилите Postman


Настройка конкретной функциональности API

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

Локальная отладка бизнес-процедур через командную строку

Для проведения тестирования и отладки алгоритмов запустите командную строку Windows (cmd.exe) непосредственно из папки, где расположен ваш конфигурационный файл kadry.cfg, и выполните команду по следующему шаблону:

"C:/Users/Public/ERP_Compas/Client/APPS/erp-common/bin/kadry_ctl.exe" -bp=some_bp -input={"a":1}

Принцип работы отладки

Данная команда инициализирует выполнение бизнес-процедуры с системным именем some_bp и передаёт внутрь параметр a со значением 1. Обратите внимание, что все аргументы внутри ключа -input должны передаваться строго в валидном формате JSON.

Ограничение на длину параметров в консоли

Стандартная командная строка Windows имеет жесткое ограничение на максимальное количество символов в одной команде. Однако встроенный веб-сервер API умеет взаимодействовать с kadry_ctl через внутренние потоки данных (стэки), полностью обходя это ограничение при реальных интеграционных запросах от внешних систем.


Практический пример бизнес-процедуры (some_bp)

Ниже представлен пример исходного кода бизнес-процедуры для постраничной выгрузки кадровой картотеки на основе передаваемого номера страницы (page):

m_page = input.Value "page"
jsn = Json("{}")

m_qry = SQL "
DECLARE @PageNumber INT = " + String2SQL(m_page, false) + "; -- Номер страницы (1, 2, 3...)
DECLARE @RowsPerPage INT = 100; -- Количество записей на одной странице

SELECT TAB_N, FAMALY, IMY_OT, POL, DAT_PR, DOLGN
FROM (
    SELECT TAB_N, FAMALY, IMY_OT, POL, DAT_PR, DOLGN,
           ROW_NUMBER() OVER (ORDER BY TAB_N) AS RowNum
    FROM KADRY
) AS MyResults
WHERE RowNum > (@PageNumber - 1) * @RowsPerPage
  AND RowNum <= @PageNumber * @RowsPerPage
ORDER BY TAB_N;
"

i = 0
while not m_qry.Eof
    i = i + 1
    jsn2 = Json
    jsn2.AddPair "TAB_N", m_qry.TAB_N
    jsn2.AddPair "FAMALY", m_qry.FAMALY
    jsn2.AddPair "IMY_OT", m_qry.IMY_OT
    jsn2.AddPair "POL", m_qry.POL
    jsn2.AddPair "DAT_PR", m_qry.DAT_PR
    jsn2.AddPair "DOLGN", m_qry.DOLGN

    jsn.AddPair str(i), jsn2
    m_qry.goNext
wend

jsn.AddPair "count", i
return jsn.ToText

Пример JSON-тела (BODY) запроса к созданному API

Для вызова разработанной выше бизнес-процедуры и получения первой страницы данных (первых 100 сотрудников) внешняя система должна отправить следующий JSON-пакет:

{
  "bp": "some_bp",
  "page": 1
}