|
Что можно сказать в заключении .
Чат работает . Сообщения посылаются, принимаются .Если пользователя
в данный момент нет на месте и машина выключена, то при приходе
пользователя и включении ком-ра,- все сообщения , переданные ему
в период отсутствия, будут получены и выведены на экран : начиная
c сообщений о приходе новых партий товара и просьбе перезвонить
заказчику, и до призывов "Пойдем покурим/попьем кофе".
Количество подключенных пользователей в данный момент - порядка
60. При переданных сообщениях около 20000 база данных MySQL порядка
3 мБ , включая графику.
В чат возможно передавать сообщения из других информационных систем.
Из любого приложения, которое может обратиться к MySQL и создать
запись в таблице, можно передавать сообщения. В настоящее время
сообщения поступают от 1С(формирование критических точек) иTheBat
(приход новой почты).
При настроенной сетке и MySQL - чат занимает мин. хлопот. На машине
клиента о нем 3 записи в реестре, группа иконок .... и все. Процесс
подключения/переподключения занимает 1 мин (или меньше). Использует
компоненты прямого доступа к MySQL.
Пришлось столкнуться с трудностями, а где их нет. Чат несколько
раз переписывался практически с ноля. Остались неиспользованные
переменные, куски кода. Не отслеживались утечки памяти. Будет возможность
- вычищу. Бывает, из-за неверного DNS, не правильно определяется
хост. По-тихоньку будем вычищать.
Недостатки конечно тоже есть . Оформление ужасно. Иногда вылазят
нелогичности. Оглядываясь назад - понимаю что какие то вещи сделал
не верно. Есть вопросы к устойчивости и защите от "дурака".
К сетевым алгоритмам. Все это исправимо.
Чат возможно переделать под нужды конкретной фирмы/предприятия
Я создавал чат, исключительно, под себя (свою
сетку и условия). И , в принципе , не ставил задачу широкого его
распространения.
Думается , что наличие грамотного админа и жесткого администрирования
- является ключом к успешному функционированию чата.
Не думаю , что данный чат может функционировать в сетях типа 'домашние'
(привет SuperNet у) , ибо жестко админить такие сетки - дело практически
гиблое. А объяснять пользователю который , имея серийный номер ,
спрашивает куда его вставить (офицеры ... молчать), что такое SQL
- дело еще более гиблое.
Редактировать таблицы так сказать на "низком уровне" можно
через EMS MySQL Manager.
Достаточно интересно реализовалась задача получения сообщений
из 1С.
Например. Приходная накладная при проведении формирует новую приходную
цену товара (весьма важное значение для многих расчетов) на основе
.... ну некоторых своих расчетов. Но человеку свойственно ошибаться
... и вот получается, что пришел самолет по цене фарфоровой тарелки
... или наоборот. При проведении накладной сверяем предыдущую себестоимость
с вновь расчитанной, и, если, она больше некого порогового значения,
то посылаем сообщение ..... ну, по идее, руководителю отдела (ком.
директору, дяде Ване с 3-го этажа). Пусть разбирается. Хост только
пропишите.
//*** В модуле При проведении
Сообщить("Для товара "+ Товар + " зафиксировано значение
критической себестоимости. Сообщение отправлено " + Спр_БизнесПравила_Отделов_Ответственный.Ответственный);
MSG_ID = "";
User_nick = "1С.Призрак базы";
NameComp_from = "1С.Призрак базы";
NameComp_to = СокрЛП(Спр_БизнесПравила_Отделов_Ответственный.Ответственный.Хост);
Ико = 1;
Смайл = 1;
User_Messages = "Изменение себестоимости критично "+ "
" + глПользователь+ "
" + ТекущийДокумент()+ " " + Товар + " Нач.
себест. " + Тов.Прих_Цена_Т + " Конечная себест. "
+ПрЦ + "("+ ПроцентРазницы +"% изменения)";
Сообщение_В_ДМ_Чат(MSG_ID,User_nick,NameComp_from,NameComp_to,User_Messages,Ико,Смайл)
;
//***И в глобальном модуле
Процедура Сообщение_В_ДМ_Чат(MSG_ID,User_nick,NameComp_from,NameComp_to,User_Messages,Ико,Смайл)
Экспорт
Соединение = CreateObject("ADODB.Connection");
Соединение_param = "driver={MySQL ODBC 3.51 Driver};server="+СокрЛП(Константа.ИП_Скуль)+";uid="+СокрЛП(Константа.Пользователь_Скуль)+
";pwd="+СокрЛП(Константа.Пароль_Скуль)+";database=Chat_Server;port=3306";
Try
Соединение.open(Соединение_param);
Запрос = "Insert into user_messages (MSG_ID,User_nick,NameComp_from,NameComp_to,User_time,User_Messages,MSG_ICO,MSG_Smile)
values ('"+MSG_ID+"','"+User_nick+"','"+NameComp_from+"','"+NameComp_to+"',NOW()
,'"+User_Messages+"','"+Ико+"','"+Смайл+"')";
Соединение.Execute(Запрос);
Except
DoMessageBox("Bad connect!");
return;
EndTry;
КонецПроцедуры
Получим
Мда ... вот такой он признак базы.Порог срабатывания установлен
в 10%. Вырезано имя пользователя(кто проводил) и наименование товара
Хотел бы выразить огромную благодарность
- за помощь в написании 1сMonitor Константину Колесник и MMF (Т1С)
- Roma(ru-board) - когда я в делфийском угаре заходил далеко - вытаскивал
меня
- peps, Hmmmm, fallenangel , Bonch (ru-board (компоненты для Delphi
)) - то что вы делаете - это супер. Далеко не все я , конечно, использовал,
но то, что это есть-определенно придает силы. ;-) Огромное спасибо.
- vjick (ru-board (1С))
- и, конечно, Nep у (ru-board) как главному модератору . Ru-board
действительно одно из немногих мест в нете, куда стоит зайти и где
помогают. И железная рука и пулемет Нэпа держат порядок.
Что планируется
а) DM_Chat_Server- отслеживание аварийно
отвалившихся клиентов. К сожалению, несколько попыток реализации
окончились впустую. Кто может поделиться МЫСЛЬЮ - буду рад обсудить
б) Стикеры(напоминалки), с хранением на сервере.
в) Компонента прямого доступа к MySQL из 1С
. Собственно, не я первый это делаю .... может кто исходниками поделится
?
г ) Возможно будет парсинг mlg в виде отдельной dll , но в принципе
, не уверен в необходимости.
д ) Создание каналов общения.
е) Возможность передачи сообщений не только в LAN но и в WAN , между
удал. офисами (если потребуется).
На самом деле планов много . Время б на это все . К сожалению кодинг
подобных вещей - не мои прямые обязанности . Это по существу хобби.
|