Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Сообщение пользователю без привязки к конкретному окну , Вывести сообщение пользователю после закрытия формы          
AnryMc Подменю пользователя
сообщение 07.03.23, 14:13
Сообщение #1

Оратор
Иконка группы
Группа: Местный
Сообщений: 313
Спасибо сказали: 95 раз
Рейтинг: 96.6

Добрый день!

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

Как Вывести сообщениеПользователю в такой ситуации???

Petre Подменю пользователя
сообщение 07.03.23, 17:49
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

AnryMc @ Today, 14:13 * ,
Если БСП, то есть ОбщегоНазначенияКлиент.СообщитьПользователю() с несколькими вариантами вызова.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

AnryMc Подменю пользователя
сообщение 08.03.23, 8:05
Сообщение #3

Оратор
Иконка группы
Группа: Местный
Сообщений: 313
Спасибо сказали: 95 раз
Рейтинг: 96.6

Petre @ Вчера, 17:49 * ,


БСП есть но расположенное в модуле формы в процедуре ПослеЗаписиНаСервере - не срабатывает при "Провести и Закрыть"

З.Ы. Или я не знаю "волшебное" слово?

Сообщение отредактировал AnryMc - 08.03.23, 8:10

Petre Подменю пользователя
сообщение 08.03.23, 8:11
Сообщение #4

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

AnryMc @ Today, 8:05 * ,
Для вызова с сервера есть ОбщегоНазначения.СообщитьПользователю().
В форме есть событие на клиенте ПослеЗаписи.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

AnryMc Подменю пользователя
сообщение 08.03.23, 9:24
Сообщение #5

Оратор
Иконка группы
Группа: Местный
Сообщений: 313
Спасибо сказали: 95 раз
Рейтинг: 96.6

Цитата(Petre @ 08.03.23, 8:11) *
Для вызова с сервера есть ОбщегоНазначения.СообщитьПользователю().
В форме есть событие на клиенте ПослеЗаписи.


БСП 3.0.1.418

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)

    ОбщегоНазначенияКлиентСервер.СообщитьПользователю("!!!!", Объект.Ссылка, ,,);

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



"Записать" - работает
"Провести" - работает
"Провести и закрыть! - НЕ РАБОТАЕТ!!!

denis84 Подменю пользователя
сообщение 08.03.23, 9:57
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 421
Из: Украина
Спасибо сказали: 133 раз
Рейтинг: 132.5

AnryMc @ Вчера, 14:13 * ,
// Модуль "закрываемой" формы:
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
    Если ПараметрыЗаписи.Свойство("Сообщения") Тогда
        ПустойУИД = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000");
        Для Каждого Элемент Из ПараметрыЗаписи.Сообщения Цикл
            Сообщение = Элемент;
            Сообщение.ИдентификаторНазначения = ПустойУИД;
            Сообщение.Сообщить();
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры

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

// Код вывода сообщения (в серверных процедурах)
// ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Сообщение");


вот еще нашел на infostart.ru

//Как показать пользователю некритические информационные сообщения если он нажал "Записать и закрыть" или "Провести и закрыть".
//Бывают ситуации когда необходимо сообщить пользователю информацию, не вызванную исключительной ситуацией, т.е. ошибкой.

//И все бы хорошо, если бы пользователь не нажимал кнопки "Записать и закрыть" или "Провести и закрыть". В этом случае, если сообщение вызвано исключительной ситуацией, то оно отобразится
//и форма не закроется. Но в случае, если сообщение информационное, т.е. запись или проведение завершились удачно, то сообщение на доли секунды выведется в окно сообщений формы
//и закроется вместе с ней. Плохо.

//Искал по форумам решение, но так и не нашел того, что мне бы подошло. Обработчик ожидания не хочу для этого использовать. Решение с перенаправлением
//сообщения в окно приложения путем активации поочередно окон в моей версии платформы работать корректно не захотело.

//В итоге реализовал так (для записи элемента справочника, для документов реализация будет подобной же):

//1. В форме элемента создал реквизит МассивСообщений типа СписокЗначений для хранения перехваченных с сервера сообщений пользователю.

//2. Процедура ПослеЗаписиНаСервере()

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
    МассивСообщений.Очистить();

//Получаем сообщения, предназначающиеся пользователю, но пока не показанные ему, и удаляем их из фиксированного массива (системного), где они хранятся

//Получить сообщения можем лишь на сервере. Как только перейдем на клиент сообщения будут считаться показанными.

    ФиксМассивСообщений = ПолучитьСообщенияПользователю(Истина);

//Записываем сообщения в список значений (реквизит формы МассивСообщений)
    Для Сч = 0 По ФиксМассивСообщений.Количество() - 1 Цикл
        МассивСообщений.Добавить(ФиксМассивСообщений.Получить(Сч));
    КонецЦикла;
КонецПроцедуры


//3. Процедура ПослеЗаписи()

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)

//Если сообщения есть, то инициируем их показ пользователю
    Если МассивСообщений.Количество() > 0 Тогда
        ПоказатьСообщенияПользователю();
        МассивСообщений.Очистить();
    КонецЕсли;
КонецПроцедуры


//4. Создал процедуру ПоказатьСообщенияПользователю()

&НаКлиенте
Процедура ПоказатьСообщенияПользователю()
    Для Каждого Сообщение Из МассивСообщений Цикл

//Сообщения показываем в виде предупреждений, т.к. пока пользователь не нажмет "Ок" форма не закроется. Т.е. только так мы достигаем цели,

//чтобы пользователь увидел сообщения перед закрытием формы
        Предупреждение("" + Сообщение.Значение.Текст);
    КонецЦикла;
КонецПроцедуры


//Все вышеописанные процедуры описаны в модуле формы.


Сообщение отредактировал denis84 - 08.03.23, 10:02

AnryMc Подменю пользователя
сообщение 08.03.23, 10:07
Сообщение #7

Оратор
Иконка группы
Группа: Местный
Сообщений: 313
Спасибо сказали: 95 раз
Рейтинг: 96.6

denis84 @ Сегодня, 9:57 * ,

Это я видел до данной темы, но не понимаю:
1) // удаляем после получения
2) ПолучитьСообщенияПользователю(Истина)
3) // Код вывода сообщения (в серверных процедурах)
// ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Сообщение");

Т.е.:
1) как и где сформировать само сообщение?
2) Как и где его потом очистить?
3) Как и где заставить его вывести?
4) Какое фоновое задание?

Для: Business automation software for accounting CORP, edition 2.1 (2.1.13.1)

P.S. Метод через "Окно.Активировать()" - тоже не смог заставить работать...

Сообщение отредактировал AnryMc - 08.03.23, 10:09

1983air Подменю пользователя
сообщение 14.04.23, 20:31
Сообщение #8

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 9 раз
Рейтинг: 0

Кто-то победил вывод сообщений, формируемых в модуле объекта, при нажатии "Провести и закрыть" в форме документа?
При Записать, Провести - показывает, при правой кнопкой в списке документов и Провести - тоже, при "Провести и закрыть" - нет. Природу и причину понимаю. Интересно, у кого какой опыт в реализации?

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 17:05
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!