Есть обработка с полями для ввода. Во время того, как открыта обработка, выполняется фоновое задание на клиенте запущенное с помощью ПодключитьОбработчикОжидания.

```1c
    ПодключитьОбработчикОжидания("ФоновоеОповещениеОНовыхСообщениях",10);
```

```1c
    &НаКлиенте
    Процедура ФоновоеОповещениеОНовыхСообщениях()
    --//--
    ФоновоеОповещениеОНовыхСообщенияхСервер();
    --//--
    КонецПроцедуры

    &НаСервере
    Функция ФоновоеОповещениеОНовыхСообщенияхСервер()
    --//--
    КонецФункции;
```

Так вот когда я ввожу текст в поле ввода в обработке и в фоне выполнятся начинает мой обработчик ожидание, то текст в поле ввода пропадает. Как я понял, то очистка текста идет из за серверного вызова в обработчике ожидания. Как мне выполнить свой код так, что бы не пропали данные не сохраненные в БД, то есть просто введенные пользователем на форме? При всем этом я в функции ФоновоеОповещениеОНовыхСообщенияхСервер() работаю с реквизитом формы и без контекста получается передать ее не могу.
Пожалуй вопрос банальный и тупой, но учиться нужно ведь :)
---
Полагаю потому, что пока Вы вводите текст, реквизит его еще не хранит. Грубо говоря: не было смены фокуса ввода и нажатия клавиши "Enter", не было события "ПриИзменении", следовательно не было и сохранения введенного текста в реквизите формы.
---
Скиньте текст "ФоновоеОповещениеОНовыхСообщенияхСервер".
Возможно в данной процедуре идёт изменение формы, что вызывает её "пересоздание".
Попробуйте закомментировать текст в "ФоновоеОповещениеОНовыхСообщенияхСервер", будет ли стираться вводимый тест.
---
Не стирается текст, если не выполнять серверный вызов.
Если я делаю серверный вызов, то форма автоматически чистится, а именно текст введенный вот здесь:
---
При вызове функции идет обновление формы клиента, а так как поле, в котором введены данные не передавалось на сервер, то оно просто очищается и все.

```1c
    &НаСервере
    ФоновоеОповещениеОНовыхСообщенияхСервер()
```

Вот я и спрашиваю как сделать что бы не очищалось и вызвать сервер :)
---
Попробуйте отказаться от контекстного вызова сервера в пользу внеконтекстного.
---
Как я понимаю, то при вызове серверной контекстной процедуры передается на сервер объект формы со всеми ее заполненными реквизитами и т.д. Почему тогда реквизит "ТекстСообщения" наполнення в данном случае "лялялятополя" не передается на сервер?
---
Полагаю потому, что пока Вы вводите текст, реквизит его еще не хранит. Грубо говоря: не было смены фокуса ввода и нажатия клавиши "Enter", не было события "ПриИзменении", следовательно не было и сохранения введенного текста в реквизите формы.
---
Получается нужно делать так, как я описал выше, а именно принудительно закинуть текст в реквизит в случае контекстных вызовов сервера?
---
Вот НаКлиенте содержимое элемента и НаСервере.
НаСервере текст редактирования недоступен получается. В итоге сервер обратно возвращает форму клиенту, а поскольку он не получил текстредактирования, то возвращается пустая строка и по этому поле очищается. Выходит так что перед серверным контекстным вызовом нужно насильно перекинуть текстредактирования с формы в реквизит формы, а после серверного вызова вытянуть его с реквизита формы и отобразить на форме в поле ввода. Я правильно мыслю?)
---
Наверное так, если таки не выходит использовать безконтекстный вызов сервера.
---
Понял. Спасибо Вам большое. Буду думать как переписать вызов сервера на безконтекстный.
Вы очень мне помогли в понимании логики работы в данной ситуации. Добра Вам :)
---
так разнесите поля
отдельно для ввода пользователем
отдельно для фоновых сообщений
(вообще не очень понятно что у вас почему пропадает, наверно весь код нужен)
---
Вот так уже идет очистка (скрин формы обработки выше):

```1c
    &НаКлиенте
    Процедура ВключитьМониторингНовыхСообщений()
    ПодключитьОбработчикОжидания("ФоновоеОповещениеОНовыхСообщениях",10);
    КонецПроцедуры

    &НаКлиенте
    Процедура ФоновоеОповещениеОНовыхСообщениях()
    МассивЗаявокСОбновлениями=ФоновоеОповещениеОНовыхСообщенияхС­ервер();
    КонецПроцедуры

    &НаСервере
    Функция ФоновоеОповещениеОНовыхСообщенияхСервер()
    МассивЗаявокСОбновлениями=Новый Массив;
    Возврат МассивЗаявокСОбновлениями;
    КонецФункции
```
---
У меня есть реквизит формы, который хранит все идентификаторы диалогов и количество сообщений в каждом из диалогов. Данный реквизит заполняется при открытии обработки.
Фоновое задание проверяет количество сообщений по идентификаторам заявок на сервере и в случае, если по какому то идентификатору сообщений стало больше - добавляет ее идентификатор в массив и передает данный массив клиенту. В дальнейшем пользователю вылазит всплывающее уведомление что по такому-то идентификатору поступили новые сообщения.
---
Мне помогло в этой ситуации отщелкнуть галку "Сохранение"
---
Столкнулся с такой же проблемой. У поля ввода есть свойство "ОбновлениеТекстаРедактирования". Поставить его в "Не использовать" и очистка поля пропадет.
---
Очистка поля пропадает, но появляется другая проблема: при вводе нового значения оно не сохраняется и на сервер не передаётся...
---
а нет, вроде нормально отрабатывает. Спасибо!
---
Всё-таки когда надо программно изменить этот реквизит, то он не обновляется. Этот метод подходит в случае если реквизит изменяется исключительно только при интерактивном вводе.
---
Установил в режим "При изменении значения"
---
Куда проще не тащить контекст на сервер, чем прыгать в противогазе в гамаке, стоя на лыжах с немаленьким шансом получить отличающееся поведение в каком-нибудь веб-клиенте.

```1c
    &НаКлиенте
    Процедура ФоновоеОповещениеОНовыхСообщениях()
    ....
    ЗначенияРеквизитов = Новый Структура(...);
    ЗаполнитьЗначенияСвойств(ЗначенияРеквизитов, ЭтотОбъект);

    Результат = ФоновоеОповещениеОНовыхСообщенияхСервер(Данные);
    ЗаполнитьЗначенияСвойств(ЭтотОбъект, Результат);

    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция ФоновоеОповещениеОНовыхСообщенияхСервер()
    ...
    КонецФункции
```

С табличными частями сам разберешся