Использование «ОписаниеОповещения» в асинхронных методах глобального контекста в системе BAS

  • ПрограммистBAS

При разработке приложений часто возникает ситуация, когда нужно выполнить взаимодействие с пользователем, не блокируя выполнение клиентского кода в ожидании ответа. Для таких задач платформа имеет асинхронные методы глобального контекста, в которых после завершения результат передается в заранее прописанную специальную процедуру обратного вызова (уведомление).

Одной из процедур, использующих этот механизм, является процедура глобального контекста «ПоказатьВопрос()». Она позволяет открыть диалоговое окно с вопросом, после чего выполнение текущей процедуры продолжается. Обработка полученного результата производится после завершения взаимодействия с пользователем. Процедура, которая вызывается после ответа, задается с помощью параметра «ОписаниеОповещенияЗавершение» с типом «ОписаниеОповещения».

Объект «Оповещения» является одним из ключевых элементов асинхронного программирования. Одним из направлений, где он используется является:

— диалоги с пользователем;

— работа с файловой системой;

— открытие форм и выбор значений;

— подключение внешних компонент и оборудования.

Пример реализации: Рассмотрим этот механизм на примере работы с документом «Продажа товаров». Будем считать, что при записи документа нам необходимо спросить пользователя, нужно ли печатать расходную накладную. Если пользователь отвечает «Да», необходимо сформировать и вывести печатную форму документа.

Для этого в модуле формы документа проработаем процедуру «ПослеЗаписи» и напишем в ней следующий код:

ПослеЗаписи

Где мы сначала создаем новое «ОписаниеОповещения», в котором первым параметром указываем процедуру, которая будет вызываться после получения ответа от пользователя:

ОписаниеОповещения

В нашем случае это процедура «ПослеЗакрытияОкнаВопроса».

Далее используем процедуру глобального контекста «ПоказатьВопрос()» где в параметрах указываем «ОписаниеОповещения», сам вопрос  и далее заранее выбран режим диалогового окна:

ПоказатьВопрос()

Примечание! После вызова «ПоказатьВопрос()» выполнение текущей процедуры не ожидает ответа. Метод запускает взаимодействие с пользователем, а по ее завершении платформа вызывает процедуру указанную в «ОписанииОповещения». Поэтому результат ответа недоступен в текущем месте вызова.

После получения ответа от пользователя будет вызвана указанная процедура с результатом во входных параметрах. В самой процедуре «ПослеЗакрытияОкнаВопроса» мы напишем следующий код:

ПослеЗакрытияОкнаВопроса

Примечание! Процедура обратного вызова должна быть экспортной.

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

табличный документ

расходная накладная

Рекомендуемые статьи

Procom default image
30.09.2022

7 причин: чому користувачу варто пройти курси з програмування в системі BAS

7 причин: чому користувачу варто пройти курси з програмування в системі BAS  (Business Automation Software)   Досить часто користувачі програмних продуктів лінійки BAS (BAS ERP, BAS КУП, BAS УТ тощо) задають питання стосовно доцільності проходження курсів для програмістів в цій системі. Як правило, це пов’язано з необхідністю швидко та недорого зробити невеличкі поточні доробки, налаштувати […]

Детально про СКД: настройки варіанту VS настройки користувача. Особливості роботи зі звітами системи BAS храниліще
13.02.2023

Детально про СКД: настройки варіанту VS настройки користувача. Особливості роботи зі звітами системи BAS

Детально про СКД: настройки варіанту VS настройки користувача. Особливості роботи зі звітами системи BAS   Для звітів, що побудовані за допомогою системи компонування даних (СКД), є декілька можливостей працювати з їх настройками. Якщо виключити з розгляду настройки, що прописані в коді, то залишаються настройки варіанту та настройки користувача. Що таке варіант звіту та стандартні варіанти? […]

Робота зі сховищем конфігурації в системі BAS налаштування
23.02.2023

Робота зі сховищем конфігурації в системі BAS

Робота зі сховищем конфігурації в системі BAS   Сховище конфігурації в BAS ¬– це інструмент для групової розробки прикладного рішення, який вбудовано у платформу BAF. Сховище дозволяє вести розробку рішень необмеженою кількістю користувачів. За допомогою цього інструменту можна побачити повну історію розробки конфігурації і детально проаналізувати кожен крок розробників. 1. Створення сховища Доступ: Конфігурація → […]

Procom default image
17.09.2025

Чи має сенс Програмісту системи BAS проходити курси для користувачів?

Чи має сенс Програмісту системи BAS проходити курси для користувачів?В минулій статті ми спробували розібрати «Чи варто користувачу системи BAS проходити курси для програмістів?». Якщо пропустили дану статтю, можете ознайомитись за посиланням https://csoprocom.com.ua/info/articles/chi-ma-sens-koristuvachu-sistemi-bas-prokhoditi-kursi-dlya-programistiv/. Та чи варто програмісту BAS детально розуміти штатний функціонал типових конфігурацій, тобто розбиратись в програмі як просунутий користувач? Ми звернули увагу на […]