Любые идеи по развитию MyChat. Запросы на новые функции, предложения по улучшению уже работающих сервисов. Если вы знаете, что нужно добавить в MyChat — welcome!
korol_ru
Здравствуйте. Тут пользователи задачку задали, может вы поможете.
Допустим, есть несколько подразделений, к примеру: [Магазины; Бухгалтерия; Коммерческий отдел; Начальство]пользователь из [коммерческого отдела] отправляет оповещение подразделению [магазины] или подразделу этого подразделения.
Надо чтоб это оповещение приходило ещё нужному пользователю из [Начальство], вручную добавлять этого пользователя отправители забывают.
Может каким-нибудь скриптом можно это реализовать?
Аватара пользователя
Алексей Пикуров
День добрый.

То есть, к любому оповещению нужно ещё ставить в копию определённого человека, автоматически. Правильно?
korol_ru
не к любому, а при условии, что оно отправляется пользователем из конкретного подразделения в конкретное подразделение. Т.е например коммерческий отдел отправляет Магазинам, если наоборот или не магазинам, то не надо в копию никого добавлять
Аватара пользователя
Алексей Пикуров
Я понял. Ок, наверное, это лучше всего сделать серверным скриптом. У вас версия 5.2 сейчас?
korol_ru
нет, 4.16
Аватара пользователя
Алексей Пикуров
Я сделаю то, что вы просите, но надо будет обновиться до последней версии, надо немного доделать скриптовый движок. Вам нужно будет купить подписку на обновления для вашего сервера.

Отпишу в этой теме, когда будет готово.
korol_ru
спасибо. У нас подписка куплена, но не помню когда, вроде бы, года ещё не прошло
Аватара пользователя
Алексей Пикуров
А, ну тогда можете обновиться пока, чтобы время не терять.
Аватара пользователя
Алексей Пикуров
Добрый день, пожелание реализовано. Воспользуйтесь событием OnBroadcastMessage.

Примерный код скрипта будет такой (например, UIN шефа = 3):

Код: Выделить всё
const
  sChiefUIN = '3';

function OnBroadcastMessage(iCID, iUIN: integer; var sUsersList: string; var dtActualTo: double; var bMustRead, bReadNotify: boolean; sMsg: string): boolean;
begin
  result := true;
   
    if inttostr(iUIN) <> sChiefUIN then
      if not IsStringInList(sChiefUIN, sUsersList, ',', false) then
        sUsersList := sUsersList + ',' + sChiefUIN;
end;

begin

end.

Комментарии в справке по ссылке, что я дал в начале, там чуть подробнее написано, как работает пример.

Нужно обновить сервер на сегодняшнюю свежую сборку, версия 5.23.