Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: "ПодключитьОбработчикОжидания" в управляемой форме
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
DrLivsi
Всем привет!
Пишу внутренний чат в управляемом приложении, не могу понять как работает обработчик ожидания. (Платфлома 8.3.5)

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

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

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


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

П.с. может у кого есть обработка Чат на УФ, поделитесь, буду очень благодарен.
DartRomanius
А где сообщение(-я) хранится?
DrLivsi
В регистре сведений.

Если ту же процедуру привязать к кнопке и вызывать вручную, то все работает...
DartRomanius
Цитата(DrLivsi @ 19.10.15, 14:53) необходимо зарегистрироваться для просмотра ссылки
В регистре сведений.

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


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


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

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

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

Как-то так.....
DrLivsi
Цитата(DartRomanius @ 19.10.15, 15:17) необходимо зарегистрироваться для просмотра ссылки
Так не трогать его! smile.gif

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

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


Что-то я ничего не понял...
Поле ввода удалил, добавил вместо него поле текстового документа, теперь все нормально, не очищает.
Но хотелось бы понять причину такого поведения
DartRomanius
Ну тут, я не подскажу. В коде что-то наверное. smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.