УФ. Информационные сообщения пользователям при "Записать и закрыть" или "Провести и закрыть".

Публикация № 203620

Разработка - Практика программирования

Сообщение Провести и закрыть Сохранить и закрыть

4
Как показать пользователю некритические информационные сообщения если он нажал "Записать и закрыть" или "Провести и закрыть".

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

 

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

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

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

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

 

 

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

4

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. RailMen 12.10.13 00:46 Сейчас в теме
Довольно популярная задачка.

Есть несколько мыслей вслух:
1) реквизит формы МассивСообщений типа СписокЗначений лучше назвать СписокСообщений.
2) показывать столько Предупреждений, сколько и сообщений не совсем правильно. Представим, что сообщений 10 - тогда пользователь вынужден будет 10 раз закрывать окошки.
2. iRounder 93 12.10.13 17:02 Сейчас в теме
Да вариантов реализации может быть масса, например создание реквизита формы не интерактивно, а программно. Каждый под себя допилит :)
У меня максимум 2 сообщения - поэтому мне удобнее показывать по очереди.
Публиковал не как идеальное решение - а как идею :)
3. nixel 822 16.10.13 17:10 Сейчас в теме
Я для этих целей использую более простой на мой взгляд вариант - показ СообщенияПользователю в основном окне.

Привожу полный код тестовой обработки.
&НаКлиенте
Процедура ПоказатьСообщение(Команда)
	
	СообщениеОсновноеОкно 	= Новый СообщениеПользователю;
	СообщениеДругоеОкно 	= Новый СообщениеПользователю;
	
	// получает открытые окна приложения
	ОкнаКлиента = ПолучитьОкна();
	
	Если ОкнаКлиента = Неопределено Тогда
		
		// если приложение запущено в обычном режиме
		СообщениеОсновноеОкно.Текст = "Сообщение отображается в окне Служебных сообщений.";
		СообщениеОсновноеОкно.Сообщить();
		
	Иначе
		                      
		// найдём основное окно приложения (хотя оно с индексом [0])
		Для Каждого ОкноКлиента Из ОкнаКлиента Цикл
			Если ОкноКлиента.Основное Тогда
				ОсновноеОкно = ОкноКлиента;
				Прервать;
			КонецЕсли; 
		КонецЦикла;
		
		
		// найдём нужное нам окно (не основное) по 
		// 	заголовку 	ОкноКлиента.Заголовок
		// 	ссылке 		ОкноКлиента.ПолучитьНавигационнуюСсылку()
		//	содержимому ОкноКлиента.ПолучитьСодержимое()
		Для Каждого ОкноКлиента Из ОкнаКлиента Цикл
			Если НЕ ОкноКлиента.Основное И 
				 СтрЧислоВхождений(ОкноКлиента.Заголовок, "Заголовок искомого окна") > 0 Тогда
				ДругоеОкно = ОкноКлиента;
				Прервать;
			КонецЕсли; 
		КонецЦикла;

		СообщениеОсновноеОкно.ПутьКДанным = ОсновноеОкно.ПолучитьНавигационнуюСсылку();
		
		// получить УИ можно только у неосновного окна   
		СообщениеДругоеОкно.ИдентификаторНазначения = ДругоеОкно.ПолучитьСодержимое().УникальныйИдентификатор;
		СообщениеДругоеОкно.Поле = "Поле_привязки_сообщения";
		
		СообщениеОсновноеОкно.Текст = "Сообщение отображается в окне " + ОсновноеОкно.Заголовок + ".";
		СообщениеДругоеОкно.Текст 	= "Сообщение отображается в окне " + ДругоеОкно.Заголовок + ".";
		
		
		СообщениеДругоеОкно.Сообщить();
		
		// финт для отображения в основном окне
		ОсновноеОкно.Активизировать();
		СообщениеОсновноеОкно.Сообщить();
		ЭтаФорма.Окно.Активизировать();
		
	КонецЕсли; 

КонецПроцедуры
Показать


Кода много. Но основная фишка вот здесь -
СообщениеОсновноеОкно.ПутьКДанным = ОсновноеОкно.ПолучитьНавигационнуюСсылку();

ОсновноеОкно.Активизировать();
СообщениеОсновноеОкно.Сообщить();
ЭтаФорма.Окно.Активизировать();
4. iRounder 93 16.10.13 20:16 Сейчас в теме
Я пытался сделать так же. Только нужно было когда пользователь нажмет просто "Записать" или "Провести", то сообщения показывать в форме элемента/документа, а если "Записать и закрыть" или "Провести и закрыть", то в главном окне. Однако на моей версии платформы не взлетело - в любых случая показывало в главном окне. Меня это не устраивало.
5. guy_septimiy 30.10.17 13:46 Сейчас в теме
Если в конфигурации есть форма рабочего стола, то кажется, что можно было использовать Оповестить и ОбработкаОповещения в этой форме. Показывать модальные предупреждения сейчас вроде как уже не в моде?
Оставьте свое сообщение

См. также

[СКД] Программное создание схемы компоновки данных 236

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

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

15.01.2020    2707    John_d    14       

Базовый курс для начинающих 1С-программистов. Пятый поток. Онлайн-курс с 12 февраля по 15 апреля 2020 г. Промо

Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.

4500/9500 рублей

Оповещения боту из 1С за 31 минуту 124

Статья Программист Нет файла v8::УФ 1cv8.cf Бесплатно (free) Практика программирования Интеграция

Поделюсь опытом, как быстро сделать бота с оповещениями в Телеграмм из 1С без лишних затрат.

18.09.2019    10796    4    feva    32       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Агрегатные функции СКД, о которых мало кто знает 391

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    20250    ids79    45       

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Три костыля. Сказ про фокусы в коде 130

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    12725    YPermitin    69       

Отслеживание выполнения фонового задания 154

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции Разработка

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    15949    ids79    16       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

Данный онлайн-курс предусматривает углубленное изучение языка запросов и возможностей системы компоновки данных, которые понадобятся при разработке отчетов, работающих на платформе “1С:Предприятие” в рамках различных прикладных решений. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей различных прикладных решений, которые используют в своей работе отчеты разного назначения.

6500 рублей

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив 291

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    25449    ids79    34       

Фоновое выполнение кода в 1С - это просто 148

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур.

02.08.2019    15982    avalakh    21       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты 153

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    21772    ids79    8       

INFOSTART MEETUP Krasnodar. 14 февраля 2020 г. Промо

Краснодар станет первым в 2020 году местом, где пройдет региональная встреча IT-специалистов сообщества Инфостарт. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Стоимость участия - 5000 рублей. Цена действительна до 26.12.2019.

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ 160

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Инструментарий разработчика Практика программирования

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    16748    ids79    27       

Регистры сведений. За кулисами 134

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    13145    YPermitin    12       

Онлайн-курс «Практические аспекты внедрения регламентированного учета и расчета себестоимости в 1С:ERP на крупных промышленных предприятиях» с 17 февраля по 13 марта 2020 года. Промо

Курс рассчитан для подготовки экспертов по регламентированному учету и учету затрат для внедрения на крупных промышленных предприятиях с «исторически сложившимся» учетом

9000 рублей

"Меньше копипаста!", или как Вася универсальную процедуру писал 185

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    11335    SeiOkami    49       

Создание отчетов с помощью СКД - основные понятия и элементы 226

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    28144    ids79    17       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017 180

Статья Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Разработка

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    15561    dmurk    144       

Регистры накопления. Структура хранения в базе данных 180

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    24497    YPermitin    27       

Базовый курс по разработке мобильных 1C-приложений для Android-устройств. Третий поток. Онлайн-интенсив с 11 февраля по 05 марта 2020 г. Промо

Данный онлайн-курс предусматривает изучение базовых принципов создания приложений для операционной системы Android, работающих на мобильной платформе “1С:Предприятие”. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие” при разработке прикладных решений для “обычных” компьютеров, но пока ещё не занимался разработкой 1С-приложений, предназначенных для работы на мобильных устройствах.

7500 рублей

Выполнение внешней обработки в фоновом задании 153

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    15602    Eret1k    23       

Выгрузка документа по условию 5

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

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

25.04.2019    8725    m-rv    2       

22 января состоится вебинар "Использование технологии блокчейн в 1С" Промо

На вебинаре вы узнаете как использовать современную технологию блокчейн при проектировании и создании учетных систем, почему эту технологию следует рассматривать как одну из базовых. Ведущий Михаил Калимулин поделится своими знаниями основ технологии и опытом внедрения.

990 рублей

Как прикрутить ГУИД к регистру сведений 23

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

... и немного теории обмена данными. В частности, разберем боль всех, кто пишет небанальные обмены данными: как набору записей регистра сведений назначить гуид и далее использовать его в обмене для идентификации этого набора.

16.04.2019    11643    m-rv    16       

О расширениях замолвите слово... 199

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования Разработка

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    21114    ellavs    125       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Git-репозитории для 1С-кода (опыт использования при небольших проектах) 206

Статья Программист Стажер Нет файла v8 Windows Бесплатно (free) Практика программирования Разработка

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    17217    ellavs    83       

Трюки с внешними источниками данных 169

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    18734    YPermitin    53       

Перенос данных УТ 10.3 => УТ 11 / КА 2 / ERP 2 (ЕРП 2) (документы, остатки и справочная информация из "1С:Управление торговлей, ред. 10.3" в УТ 11 / КА 2 / ERP 2). Обновлен до УТ 10.3.56.х, УТ 11.4.10.х, КА 2.4.10.х и ERP 2.4.10.х! Промо

Уже более 100 компаний приобрели перенос и выполнили переход на УТ 11 / КА 2 / ERP 2 с помощью нашей разработки! Обработка перехода с УТ 10.3 на УТ 11 / КА 2 / ERP 2 позволяет перенести не только остатки на указанную дату (как типовой перенос), но и все возможные документы за выбранный период. При выходе новых релизов этих программ оперативно выпускаем обновление обработки. Предоставляем техническую поддержку. Можем сделать бесплатный тестовый перенос!

29700 руб.

Добавление отчетов в типовые конфигурации 1С 215

Статья Программист Нет файла v8::УФ v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем)

Описание различных способов добавления общих и контекстных отчетов в конфигурации 1С, построенные на базе БСП. Основные моменты и нюансы.

07.03.2019    33055    ids79    45