Может проще в сообщение добавить признак того, что оно "в тройке последних"? Ну или в табличке рядом хранить идентификаторы чатов и последних сообщений? И при добавлении нового сообщения обновлять данные? Тогда запрос упрощается до безобразия + учитывая, что обновление намного реже вставки - с производительностью всё будет намнооого лучше.
Какая-то лажа при использовании диапазона заглавных букв А-Я в списке символов. Если его не указывать (а его и не надо указывать - ведь указан флаг i), то всё работает.
можно чуть короче: "" + число + строка. Или СтрШаблон("%1 %2", Число, Строка). Да и вообще в БСП есть несколько методов в модуле СтроковыеФункцииКлиентСервер, которые реализуют пародию на шаблонные строки и они несколько удобнее, когда потом придется менять вывод.
Пропихнуть на клиента обновление через pusher или свое решение на базе вебсокета на стороне клиента и post на стороне сервера. Сами пермишены запрашивать не только при логине, но и при загрузке страницы и при ошибке выполнения действия по причине нарушения прав.