После установки сервера и клиента сервер должен быть настроен, для этого откройте в клиенте пункт меню
. В появившейся вкладке в нижней части найдите и нажмите кнопку для создания новой конфигурации сервера.Если в дальнейшем где-то упоминается
, то следует знать, что речь идёт именно об этой конфигурации. В биллинге много различных редакторов конфигурации, ориентироваться в них на стадии освоения системы может быть затруднительно.#-------------------------------------- # Системные настройки сервера #-------------------------------------- # Путь к временному каталогу, используется обработчиком логов для загрузки логов по FTP и сервером биллинга для хранения промежуточных файлов. # Если не указан, то используется каталог BGBillingServer/tmp #temp.dir.path= # #----------------------------------------- # Настройки интерфейса BGBillingClient #----------------------------------------- # Порядок элементов в дереве договора клиента client.gui.contract.tree.order=parameters objects hierarchy status limit mode face balance tariff modules groups web tariffGroup script addAction memo # Какие лимиты предлагаются на выбор в договоре client.gui.contract.limit.values==-2000;=-500;=-300;=-150;=-50;=-30;=-10;=0;-5/1;-50/1;-100/1;-15/3;-50/3;-100/3 # Какие лимиты предлагаются на выбор в шаблоне договора client.gui.pattern.limit.values=-2000;-500;-300;-150;-100;-50;-10;0;5;30;100;15;50;100 # #-------------------------------------- # XSLT #-------------------------------------- # Кэширование XSLT-шаблонов памяти: 1 - включить # Необходимо отключать опцию на момент модификации любых XSLT-шаблонов xslt.cache=0 # Заголовок и адрес к шаблону карточки (доступны в свойствах договора) contractcard.1=card_inet.xsl:Карта регистрации # #-------------------------------------- # Протокол #-------------------------------------- # Вывод в server.log XML, возвращаемых клиенту в режиме DEBUG - 1 server.response.debug=0 # Заголовок HTTP-пакета, в котором передаётся IP-адрес клиента, если параметр не указан или не передан, то используется request.getRemoteAddr() # нужен при проксировании запросов с помощью nginx header.name.remote.addr=X-Real-IP # Максимальный размер запроса к серверу (в байтах), запросы большего размера обрезаются, что может привести к некорректной работе сервера. # Признак того, что нужно увеличить - ошибка вида "Модуль null не найден!" max.post.size=10000000 # #-------------------------------------- #Копирование параметров договора - шаблоны #-------------------------------------- # Шаблоны contract.param.pattern.keys=bank,firm # Название шаблона contract.param.pattern.bank.title=Банк (реквизиты) contract.param.pattern.firm.title=Организация (название, руководство, ИНН/КПП) # Коды параметров договора, которые будут выделяться contract.param.pattern.bank.pids=12,34 contract.param.pattern.firm.pids=1,23,8,4,25 # #-------------------------------------- # Параметр типа "Адрес" #-------------------------------------- # проверка уникальности адреса договора при вводе - 1, 0 - не проверять address.unique.check=1 # Формат адреса (доступен также параметр ${comment} - комментарий параметра) addrs.format=(${index})(, ${city})(, ${area})(, ${quarter})(, ${street})(, д. ${house})(${frac})(, кв. ${flat})( ${room})(, ${pod} под.)(, ${floor} эт.) # Разрешение создавать дома в редакторе адреса параметров договоров и объектов #address.create=1 # #-------------------------------------- # Параметры сущностей адресного справочника #-------------------------------------- # Для каждой сущности можно завести неограниченное число параметров. Типы параметров могут быть числовые(int), строковые(string), дата(date) ## для страны address.country=countPeople,test address.country.countPeople.title=Население страны address.country.countPeople.type=int address.country.test.title=Тестовый параметр address.country.test.type=string # для города аналогично, но вместо country будет city # для района аналогично, но вместо country будет area # для квартала аналогично, но вместо country будет quarter # для улицы аналогично, но вместо country будет street # определение почтового индекса по номеру дома address.street.boxIndexRange.title=Почтовый индекс address.street.boxIndexRange.type=string # для дома address.house=dateConnecting, test, floorRange, entranceRange address.house.dateConnecting.title=Дата подключения address.house.dateConnecting.type=date address.house.test.title=Тестовый параметр address.house.test.type=string # определение подъезда по квартире address.house.entranceRange.title=Диапазон подъездов address.house.entranceRange.type=string # определение этажа по квартире address.house.floorRange.title=Диапазон этажей address.house.floorRange.type = string # #-------------------------------------- # Поведение #-------------------------------------- # Запрет ввода уже существующего на договоре тарифа с пересекающейся датой, 1 - включен check.double.tariff=0 # Разрешение платежей и расходов будущим числом allow.future.payment=0 allow.future.charge=0 # Разрешение платежей и расходов для закрытых договоров allow.closed.payment=0 allow.closed.charge=0 # Что выводить в поле "сальдо" монитора статуса, 1 - сальдо, 2 - исх. остаток contract.status.monitor.saldo.show.mode=1 # Запрет установки договору лимита без указания периода в случае наличия заданий на автоматическое изменение лимита, 1 - включение запрета reject.limit.update=0 # Отключение учёта при активации тарифной опции уже активированных опций #tariffOption.dontCheckOnActivateAlreadyActivated=1 # #------------------------------------- # Статусы договора #------------------------------------- # Статусы договора, коды и обозначения contract.status.list=0:Активен;1:В отключении;2:Отключен;3:Закрыт;4:Приостановлен;5:В подключении # Статусы договора, запрещённые к ручной установке contract.status.no.manual.set=1,5 # Не используемые статусы договора (не будут отображаться в списках, но останутся в логах изменений) contract.status.deprecated= # При смене статуса договора смена статусов его независимых субдоговоров, 1 - включение independ.subcontract.status.change=0 # #-------------------------------------- # Статусы договора, кредитовые договора #-------------------------------------- # Статус договора, при котором кредитовый договор считается активным credit.contract.active.status=0 # Cтатусы договора, из которых кредитовый договор может быть переведён в активный статус по платежу # в случае, если сальдо станет положительным credit.contract.open.by.payment.status=2,3 # Cтатусы договора, которые перекрываются в будущем активным статусом, при открытии кредитового договора credit.contract.override.future.to.active.status=2 # Не переводить статус договора в активный по платежу, тоже что пустой список credit.contract.open.by.payment.status #do.not.open.contract.on.payment=1 # Перечень кодов групп договоров через запятую, которые не активируются по платежу #do.not.open.groups.on.payment= # #------------------------------------- # Проверки закрытого периода #------------------------------------- # Проверка закрытого периода при операциях, 1 - включить closed.date.enabled=1 # Перечисления кодов групп пользователей, для который проверка закрытого периода отключена #closed.date.groups.id=1,2,3 # Выборочное отключение проверки закрытого периода # (договор) удаление расхода #closed.date.disabled.ActionDeleteContractCharge=1 # (договор) удаление платежа #closed.date.disabled.ActionDeleteContractPayment=1 # (договор) удаление Услуги #closed.date.disabled.ActionDeleteContractService=1 # (договор) удаление группы тарифов #closed.date.disabled.ActionDeleteContractTariffGroup=1 # (договор) удаление тарифного плана #closed.date.disabled.ActionDeleteContractTariffPlan=1 # (договор) изменение расхода #closed.date.disabled.ActionUpdateContractCharge=1 # (договор) изменение Даты открытия #closed.date.disabled.ActionUpdateContractDate1=1 # (договор) изменение Даты закрытия #closed.date.disabled.ActionUpdateContractDate2=1 # (договор) изменение платежа #closed.date.disabled.ActionUpdateContractPayment=1 # (договор) изменение Услуги #closed.date.disabled.ActionUpdateContractService=1 # (договор) изменение группы тарифов #closed.date.disabled.ActionUpdateContractTariffGroup=1 # (договор) изменение тарифного плана #closed.date.disabled.ActionUpdateContractTariffPlan=1 # (договор) изменение периода обьектов #closed.date.disabled.ActionObjectUpdate=1 # (договор) изменение статуса договора #closed.date.disabled.ActionContractStatusChange=1 # #---------------------------------------- # Планировщик заданий #---------------------------------------- # Количество одновременных потоков для выполнения периодических заданий по расписанию scheduler.periodic.thread.count=5 # Количество одновременных потоков для выполнения асинхронных задач (переобсчёты) scheduler.nonperiodic.thread.count=5 # #-------------------------------------- # Загрузчик логов #-------------------------------------- # Автоматическая генерация заданий на обработку логов loader.add.process=1 # #---------------------------------------- # Расширение функциональности #---------------------------------------- # Логирование вызовов функций скриптов поведения в договорах (1-логировать, 0-нет). # Логируются выводы print, error и ошибки; после установки перезапустить BGBillingServer log.function.process=1 # #---------------------------------------- # Расширение функциональности - динамический код #---------------------------------------- # Кодировка файлов динамического кода (UTF-8 предпочтительно, по умолчанию) dynamic.src.encoding=UTF-8 # Каталог размещения динамического кода относительно BGBillingServer dynamic.src.dir=dyn # #---------------------------------------- # BGSecure #---------------------------------------- # Проверка прав, 0 - не проверять bgsecure.check=1 # Логирование действий в журнале событий, 0 - не логировать bgsecure.log=1 # #---------------------------------------- # Почтовая подсистема #---------------------------------------- mail.smtp.host=bill.ru mail.from.email=bill@bill.ru mail.from.name=BGBilling Server mail.to.email=bill@bill.ru mail.to.name=bill@bill.ru mail.encoding=UTF-8 # Параметры SMTP-авторизации #mail.smtp.user= #mail.smtp.pswd= # #---------------------------------------- # Система алармов - экстренных оповещений #---------------------------------------- # На какой адрес высылать оповещения, alarm.mail= # #---------------------------------------- # Web-интерфейс клиента #---------------------------------------- # Режим выдачи страниц: xml, либо html - сборка страниц браузером, либо на сервере web.mode=html # Разграничение доступа в личный кабинет: # 1 - вошедший через логин субдоговора видит всю иерархию договоров (по умолчанию) # 2 - вошедший через логин субдоговора видит только свой договор #web.sub.contract.auth.mode=1 # Сохранять все ошибки входа (даже если не идентифицирован договор) #web.error.all=1 # В режиме xml по этому пути браузер будет получать xsl # Адрес должен быть доступен отовсюду web.xslt=http://127.0.0.1:8080/bgbilling/xsl/ # В режиме xml при обращении через порт https по этому пути браузер будет получать xsl # Адрес должен быть доступен отовсюду web.xslt.https=https://127.0.0.1:8443/bgbilling/xsl/ # Добавление в XML на странице статистике детальной информации по договору - 1 web.add.contract=0 # Страница куда пересылать при выходе с Web-статистики web.exit.redirect=about:blank # Логирование Web-запросов пользователя (Web-интерфейс) webquery.log=0 # Максимальный размер в байтах прикрепляемого файла в Web multipart.max.post.size=1048576 # Настройка страниц ошибок сервера по ошибкам (можно указывать различные коды ошибок) server.error.404=/error/error404.html server.error.403=/error/error403.html # #---------------------------------------- # Web-интерфейс, доступ #---------------------------------------- # MD5-хэш универсального пароля к Web-статистике, хэш можно получить в "Утилиты => Вычисление Digest" #web.admin.password=21232F297A57A5A743894A0E4A801FC3 # Режим авторизации для доступа к Web-статистике код модуля:режим;код модуля 1:режим # модуль 0 - ядро # режим 0 - не разрешена, 1 - по номеру договора, 2 - по текстовому параметру договора web.auth.modes=0:1 # Максимально количество запросов для договора на сервер статистики в день, 0 - не ограничено web.max.day.request.count=0 # Длина пароля договора для доступа к статистике password.length.min=5 password.length.max=10 # Длина автоматически генерируемого пароля password.length.auto=6 # Допустимые в пароле символы password.chars=1234567890 # #---------------------------------------- # Web-интерфейс, доступ, защита от подбора пароля #---------------------------------------- # Максимальное количество неудачных попыток авторизации подряд logon.counter.max=20 # Базовый интервал времени в секундах между неудачными попытками авторизации logon.timeout.period=0 # Время блокировки в секундах после исчерпания количества попыток авторизации logon.timeout.lock=21600 # Размер кэша паролей logon.lock.cache.size=100 # Время устаревания записи в кэше паролей в секундах logon.lock.cache.expired=600 # Алгоритм увеличения времени между попытками (+ или ^) logon.timeout.action=+ # #----------------------------------------- # Web-интерфейс, доступ, восстановление пароля #----------------------------------------- # Код текстового параметра, содержащий E-Mail, на который будет высылаться письмо по восстановлению пароля contract.password.forgot.email.param.id=<числовой код параметра> # В течение скольке часов после высылки письма можно войти на статистику по ссылке в письме contract.password.forgot.expire.hour=24 # Ссылка на страницу статистики в письме с восстановлением пароля contract.password.forgot.link=http://localhost:8080/bgbilling/webexecuter?action=ChangePassword&mid=contract # Тема письма contract.password.forgot.email.subject=Восстановление пароля # Текст письма contract.password.forgot.email.body=Для восстановления пароля к серверу статистики по договору {contract} - перейдите по ссылке ниже (в течении {hour} часов) и смените пароль. # набоН символов одноразового пароля contract.password.forgot.char.array=1234567890QWERTYUIOPLKJHGFDSAZXCVBNMqwertyuioplkjhgfdsazxcvbnm # #----------------------------------------- # Web-интерфейс, временное понижение лимита #----------------------------------------- # сообщения при изменении лимита limit.max.current.msg=Вы не можете в данный момент понизить лимит. Превышено максимально количество не погашенных и/или частично погашенных понижений limit.max.nopayed.msg=Превышено максимально количество просроченных понижений. Возможность понижения лимита заблокирована #
Значение большинства параметров пояснены в комментариях, либо присутствует ссылка на главу с более подробным описанием подсистемы.
Если вы не знаете, что ввести в качестве параметра в конфигурацию, возьмите этот параметр из примера, приведённого выше. После сохранения конфигурации выберите строку с ней в таблице и нажмите
.В поле
вы можете изменить текущую тему оформления клиента.Установка темы оформления отличной от Metal может привести к проблемам с отрисовкой. Смена темы оформления производится пользователем на его страх и риск, нарушение в отрисовке клиента не считается ошибкой ПО.