1. Руководство пользователя › 1.2 Бизнес › Диспетчер и блокировки

Диспетчер

Окно «Диспетчер» открывается автоматически при старте программы. Закладка «Пользователи» показывает «Группы и пользователи» (кто сейчас в магазине), «Блокировки пользователя» (его текущие блокировки), чат «Отправить сообщение», сведения о лицензии и обновлениях программы. Здесь же Диспетчер напоминает о необходимости «Перезагрузки» локальной базы, когда она устаревает. В сети — пользователь, чья программа обращалась к серверу последние 2 минуты, по часам сервера.

Закладка «Уведомления» — на какие события магазина Диспетчер отзывается и как: «Активация уведомлений», «Звуковое оповещение» и «Команда».

Диспетчер держит у сервера один запрос: сервер отвечает сразу, как только пришло сообщение или событие, а в тишине — через 25 секунд, заодно обновляя список пользователей и блокировок. Свои сохранения программа показывает в списке блокировок сразу. Запрос идёт и при закрытом окне Диспетчера.

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

События

Событие — запись в журнале событий магазина о том, что что-то случилось: пришёл заказ, сохранены цены, загружен прайс-лист. Журнал ведёт сервер магазина, поэтому событие видят все рабочие места сразу. У события есть ключ — короткий код вида kNewOrder, по которому его узнают, — номер и время.

Откуда берутся события.

Событие бывает адресовано всем, отдельным пользователям или группам. События операций — для всех.

Как событие доходит до программы. Его приносит тот же запрос Диспетчера, что и сообщения чата: программа узнаёт о событии через секунду-две, даже при закрытом окне Диспетчера. Диспетчер получает события, адресованные всем, вам или вашей группе. Отзывается он на события с момента запуска программы: то, что случилось, пока она была закрыта, уведомлений не вызывает.

Уведомления. В «Активации уведомлений» на закладке «Уведомления» перечислены события, на которые Диспетчер умеет отзываться. Список задаётся в «Реестре настроек»: закладка «Базовые настройки», раздел «Диспетчер» → «Список событий»; «Ключ» — ключ события, «Значение» — его название в списке. С самого начала там есть «Новый заказ». Новое событие появляется в списке, когда окно Диспетчера открывают снова.

На отмеченное событие Диспетчер отзывается так: показывает всплывающее сообщение с названием события, подаёт «Звуковое оповещение», если выбран звук, и выполняет «Команду», если она задана. Команда запускается свёрнутой, в папке магазина; ключ события, его номер и время она получает в переменных окружения MELBIS_EVENT, MELBIS_ID и MELBIS_TIME. Кнопка «Тест» запоминает команду и запускает её сразу, с номером 0. Каждый запуск команды отмечается в «Журнале работы».

Отметки, звук и команда — настройки этого компьютера для этого магазина: на другом рабочем месте их задают заново. Чаще всего команда запускает AI-диспетчера — агента, который сам разбирает событие и ставит задачи людям.

Как завести своё событие — на примере сохранения цен:

  1. В «Каталоге операций» у операции «Товары → Цены → Сохранить» впишите «Ключ события», например kPricesSaved.
  2. В «Реестре настроек», в «Списке событий», добавьте ключ kPricesSaved со значением «Сохранены цены».
  3. На рабочих местах, которые должны отзываться, откройте Диспетчер заново и отметьте «Сохранены цены» в «Активации уведомлений».

Блокировки

Для сохранения целостности данных некоторые таблицы на время редактирования кратковременно блокируются. Окно «Блокировки» показывает «Перечень блокировок»: время начала, пользователь, вид блокировки и заблокированные таблицы. Функции: «Обновить список блокировок», «Снять свои блокировки» и «Снять свои и чужие блокировки» — для внештатных ситуаций (несохранённые данные при снятии блокировки теряются).