Використання «ОписаниеОповещения» в асинхронних методах глобального контексту в системі 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 детально розуміти штатний функціонал типових конфігурацій, тобто розбиратись в програмі як просунутий користувач? Ми звернули увагу […]