Версия для печати темы (https://pro1c.org.ua/index.php?s=cd188dc1db79b04d657fbf43b958342b&showtopic=25801)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ "ПодключитьОбработчикОжидания" в управляемой форме

Автор: DrLivsi 19.10.15, 13:34

Всем привет!
Пишу внутренний чат в управляемом приложении, не могу понять как работает обработчик ожидания. (Платфлома 8.3.5)

Вот код:

&НаКлиенте
Процедура ПриОткрытии()
    ПодключитьОбработчикОжидания("ОбновитьСообщения", 5);    
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьСообщения() Экспорт
    // Получаем новые сообщения
    СписокСообщений = ОбновитьСообщенияНаСервере(Объект.ТекущийПользователь, ТолькоНовые, Объект.ДатаПоследнегоСообщения);    
    // Выполняем действия с сообщениями
    //...    
КонецПроцедуры

&НаСервереБезКонтекста
Функция ОбновитьСообщенияНаСервере(ТекПользователь, Новые, ДатаПоследнего = Неопределено) Экспорт
    //Находим сообщения
    Запрос = Новый Запрос();
    Запрос.Текст =
    "ВЫБРАТЬ
    |...
         ";
    Возврат МассивСтрок;  //Возвращаем найденные сообщения
КонецФункции


В чем проблема.
На форме есть поле ввода "Сообщение" куда пользователь вводит текст для отправки, вводим в него какой-нибудь текст и он почему-то "запоминается".
Пример:
1. Вводим "111"
2. Срабатывает обработчик ожидания (сообщения загружаются все ок)
3. Вводим "222"
4. Срабатывает обработчик ожидания, попадаем в процедуру "ОбновитьСообщения" и видим что значение поля ввода уже = "111". Что я делаю не так?

П.с. может у кого есть обработка Чат на УФ, поделитесь, буду очень благодарен.

Автор: DartRomanius 19.10.15, 13:40

А где сообщение(-я) хранится?

Автор: DrLivsi 19.10.15, 13:53

В регистре сведений.

Если ту же процедуру привязать к кнопке и вызывать вручную, то все работает...

Автор: DartRomanius 19.10.15, 13:57

Цитата(DrLivsi @ 19.10.15, 14:53) *
В регистре сведений.

Если ту же процедуру привязать к кнопке и вызывать вручную, то все работает...


Есть временные метки у сообщения?
Если есть, тогда тянуть в обратном порядке, с конца.
Посмотреть, в сам регистр сообщение "222" пишется, или другое. Тогда понятно будет где трабла, в записи сообщения или в запросе выборки сообщений.

Автор: DrLivsi 19.10.15, 14:06

Цитата(DartRomanius @ 19.10.15, 14:57) *
Есть временные метки у сообщения?
Если есть, тогда тянуть в обратном порядке, с конца.
Посмотреть, в сам регистр сообщение "222" пишется, или другое. Тогда понятно будет где трабла, в записи сообщения или в запросе выборки сообщений.


Регистр периодический.
В регистр сообщение не успеваю записать. Пока набираю сообщение в форме, срабатывает обработчик и то что я набрал в поле вода затирает и вставляет самое первое сообщение что я набирал до срабатывания обработчика.
Незнаю понятно ли объяснил))

Дело не в записи сообщения в регистр, а в том что когда проверяем есть ли новые сообщения, поле ввода очищается.

Автор: DartRomanius 19.10.15, 14:17

Так не трогать его! smile.gif

ЗЫ: Я некоторое время назад делал так:
- Поле ввода сообщения (отдельно);
- Поле вывода сообщений;
- Поле вывода приватных (целевых) сообщений;
- Обработчик ожидания выводил "балоны" с новыми сообщениями;
- Вывод сообщений динамическим списком, плюс внутренняя система обмена сообщениями между формами, плюс сообщение о изменении регистра команда списку на обновление;

Как-то так.....

Автор: DrLivsi 19.10.15, 16:39

Цитата(DartRomanius @ 19.10.15, 15:17) *
Так не трогать его! smile.gif

ЗЫ: Я некоторое время назад делал так:
- Поле ввода сообщения (отдельно);
- Поле вывода сообщений;
- Поле вывода приватных (целевых) сообщений;
- Обработчик ожидания выводил "балоны" с новыми сообщениями;
- Вывод сообщений динамическим списком, плюс внутренняя система обмена сообщениями между формами, плюс сообщение о изменении регистра команда списку на обновление;

Как-то так.....


Что-то я ничего не понял...
Поле ввода удалил, добавил вместо него поле текстового документа, теперь все нормально, не очищает.
Но хотелось бы понять причину такого поведения

Автор: DartRomanius 19.10.15, 18:59

Ну тут, я не подскажу. В коде что-то наверное. smile.gif

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua