Товарищи, такой вопрос, может кто сталкивался, я никак не смог найти ответ: как можно сделать оповещение для пользователей конкретной группы, или кого-то одного? Чтобы внизу справа появлялось окошко что в системе появились новые, не обработанные документы.

Сделал обработку, там всё работает. Но если как внешнюю делать, выдаёт ошибки.

```1c
    &НаСервере
    Процедура ОповещениеНовыхПредзаказов()
    МассивРеализаций = Новый Массив;
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ПредварительныйЗаказ.Ссылка КАК ЕстьДокумент
    |ИЗ
    | Документ.ПредварительныйЗаказ КАК ПредварительныйЗаказ
    |ГДЕ
    | ПредварительныйЗаказ.СтатусЗаказа.Ссылка = &Ссылка";
    Запрос.УстановитьПараметр("Ссылка", Перечисления.СтатусыЗаказовКлиентов.Согласован);
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаСписка = РезультатЗапроса.Выбрать();
    Пока ВыборкаСписка.Следующий() Цикл
    Объект.Ссылки.Добавить(ВыборкаСписка.ЕстьДокумент);
    КонецЦикла;
    КонецПроцедуры

    &НаКлиенте
    Процедура ПоказатьОповещение (Команда)
    ОповещениеНовыхПредзаказов();
    НаличиеДокументов = Объект.Ссылки.Количество();
    Если НаличиеДокументов > 0 Тогда
    ПоказатьОповещениеПользователя("Имеются необработанные предзаказы!");
    КонецЕсли;
    КонецПроцедуры
```

{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(2354)}: Метод объекта не обнаружен (ВыполнитьКоманду)
Может кто решал подобную задачу или как-то иначе можно это сделать?
---
Прошу прощения, не сразу увидел рекомендации коллег, которые Вам уже дали выше. В связи с этим мои будут уже неактуальны.

Опишу тогда чуть более подробно схему.

1. Создаете общий модуль "МойМодульВызовСервера", где реализована функция с проверкой, нужно ли текущему пользователю выводить сообщение. Это может быть чтение регистра, любой запрос к данным, что угодно.

```1c
    Функция УведомлениеОбОбработкеНеобходимо() Экспорт
    Возврат Истина/Ложь;
    КонецФункции
```

2. Создаете общий модуль "МойМодульКлиентГлобальный", где реализован обработчик ожидания, проверяющий необходимость отображения уведомления, и собственно уведомляющий пользователя:

```1c
    Процедура МояОченьВажнаяПроверкаСУведомлением() Экспорт

    Если МойМодульВызовСервера.УведомлениеОбОбработкеНеобходимо() Тогда
    ПоказатьОповещениеПользователя("Работай!");
    КонецЕсли;

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

3. Создаете общий модуль "МойМодульКлиент", где реализован интерфейс подключения и при необходимости отключения обработчика ожидания:

```1c
    Процедура ПодключитьПроверкиНаКлиентеПоРасписанию() Экспорт

    ПодключитьОбработчикОжидания("МояОченьВажнаяПроверкаСУведомлением", 60, Ложь);

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

4. Ну и наконец в обработчике начала работы системы осуществляете подключение обработчика ожидания. Реализуется это в предназначенном для подобных операций общем модуле "ОбщегоНазначенияКлиентПереопределяемый", в процедуре "ПослеНачалаРаботыСистемы".

```1c
    Процедура ПослеНачалаРаботыСистемы() Экспорт

    ...

    МойМодульКлиент.ПодключитьПроверкиНаКлиентеПоРасписанию();

    КонецПроцедуры
```
---
Ваша ошибка говорит о том, что Вы некорректно оформили дополнительную обработку. Если это глобальная дополнительная обработка, то в ее форме ожидается процедура такого вида:

```1c
    &НаКлиенте
    Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт
    // Реализация логики команды
    // ...
    КонецПроцедуры
```
---
Уточните, пожалуйста, а как вообще Вы видите задачу? Пользователь должен получать периодические уведомления, но при этом ничего для этого не запуская? Или он должен держать Вашу обработку открытой, дабы она уведомляла о наличии необработанных документах?
---
Экспортной пробовал делать процедуру, тот же результат.
Пользователь должен получать периодические уведомления, но при этом ничего для этого не запуская? Верно. Как допустим, появляются периодические уведомления о классификаторах или резервных копиях базы.
---
Экспортной пробовал делать процедуру, тот же результат.Та же ошибка? Это очень странно. Может форма обработки не назначена основной?

Верно. Как допустим, появляются периодические уведомления о классификаторах или резервных копиях базы.Такое внешней обработкой не провернуть. Для периодических оповещений форма обработки должна быть постоянно открыта. Надо подумать, если в БСП нужный функционал. Может еще кто что-нибудь подскажет.
---
Та же ошибка? Это очень странно. Может форма обработки не назначена основной? Назначена. А как сделать при открытой обработке? Пользователь должен сам должен нажимать на кнопку или просто чтобы форма обработки была открыта?
---
не знаю насколько подойдёт Вам
я настраивал оповещение пользователей через:
обработчик ожидания,
регистр, в котором хранятся сообщения, и пользователь, кому оно адресовано,
форму, в которую передается сообщение для показа выбранному пользователю.

только это совсем не похоже на
(1) внизу справа появлялось окошко что в системе появились новые, не обработанные документы.

Открывается обычная произвольная форма,но с размером и оформлением можно поиграться.
---
спасибо, я думал над этим. Но мне кажется что это будет отвлекать пользователей. Но если их устроит, может так и реализую, и если иначе не получится.
---
попробуйте использовать ПоказатьОповещениеПользователя в схеме описаной в (7)
---
А Вам принципиально, чтобы доработка была "внешней", или конфигурацию модифицировать можно?
---
можно модифицировать.
---
Прошу прощения, не сразу увидел рекомендации коллег, которые Вам уже дали выше. В связи с этим мои будут уже неактуальны.

Опишу тогда чуть более подробно схему.

1. Создаете общий модуль "МойМодульВызовСервера", где реализована функция с проверкой, нужно ли текущему пользователю выводить сообщение. Это может быть чтение регистра, любой запрос к данным, что угодно.

```1c
    Функция УведомлениеОбОбработкеНеобходимо() Экспорт
    Возврат Истина/Ложь;
    КонецФункции
```

2. Создаете общий модуль "МойМодульКлиентГлобальный", где реализован обработчик ожидания, проверяющий необходимость отображения уведомления, и собственно уведомляющий пользователя:

```1c
    Процедура МояОченьВажнаяПроверкаСУведомлением() Экспорт

    Если МойМодульВызовСервера.УведомлениеОбОбработкеНеобходимо() Тогда
    ПоказатьОповещениеПользователя("Работай!");
    КонецЕсли;

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

3. Создаете общий модуль "МойМодульКлиент", где реализован интерфейс подключения и при необходимости отключения обработчика ожидания:

```1c
    Процедура ПодключитьПроверкиНаКлиентеПоРасписанию() Экспорт

    ПодключитьОбработчикОжидания("МояОченьВажнаяПроверкаСУведомлением", 60, Ложь);

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

4. Ну и наконец в обработчике начала работы системы осуществляете подключение обработчика ожидания. Реализуется это в предназначенном для подобных операций общем модуле "ОбщегоНазначенияКлиентПереопределяемый", в процедуре "ПослеНачалаРаботыСистемы".

```1c
    Процедура ПослеНачалаРаботыСистемы() Экспорт

    ...

    МойМодульКлиент.ПодключитьПроверкиНаКлиентеПоРасписанию();

    КонецПроцедуры
```
---
Благодарствую за развернутый ответ, попробую реализовать.
---
почти всё сделал, спасибо.