Довідковий матеріал

Інформування користувача

1. Випадки, коли необхідно довести інформацію до користувача:Див. також

Див. також

 

1. Випадки, коли необхідно довести інформацію до користувача:

  1. Безліч повідомлень (протокол) щодо неможливості виконання тієї чи іншої дії.
  2. Безліч повідомлень (протокол) щодо виконання тієї чи іншої дії.
  3. Інформація про помилку виконання дії.
  4. Інформація про успішне виконання тієї чи іншої дії під час роботи у формі.
  5. Інформація про успішне виконання тієї чи іншої дії за відсутності форми.

1.1. Інформація про помилки, виявлені під час перевірки заповнення, повинна виводитися в панелі повідомлень форми. Наприклад, такий спосіб інформування користувача пропонує платформа для найменування довідників. Перевірки заповнення можна поділити на два випадки:

А) Перевірку заповнення реквізитів об'єкта слід виконувати поза транзакцією запису об'єкта.

Приклад:

  • Під час спроби записати об'єкт необхідно видати низку повідомлень про його неправильне заповнення;
  • Під час виконання команди "Перерахувати ціни" необхідно видати повідомлення про помилки перерахунку цін товарів, вибраних у документі.

Засоби для реалізації:

  • Властивість Проверка заполнения
  • Обробник ОбработкаПроверкиЗаполнения (у цьому випадку для формування повідомлень про помилки слід застосовувати об'єкт СообщениеПользователю)

Б) Перевірку цілісності об'єкта та пов'язаних із ним даних слід виконувати в транзакції запису об'єкта.

Приклад:

  • Перевірка складських залишків товарів і видавання повідомлень про нестачу товарів

Засоби для реалізації:

  • Обробники ПередЗаписью і ПриЗаписи
  • Для формування повідомлень про помилки слід застосовувати об'єкт СообщениеПользователю
  • Для відмови від запису об'єкта встановлювати параметр Отказ = Истина

При цьому

  • якщо помилкова ситуація виникає в процедурі або функції, яка має загальний характер (не має прямого стосунку до запису об'єкта, може викликатися в контексті найрізноманітніших дій), то слід використовувати ВызватьИсключение (див. нижче п.1.3, приклад №2) Але якщо помилкова ситуація виникає в процедурі або функції, яка безпосередньо пов'язана із записом об'єкта, користувач може оперативно усунути цю помилку (тобто це помилка введення даних користувачем, а не помилка налаштування системи), то слід застосовувати варіант (Б).
  • слід мінімізувати кількість перевірок, які виконуються під час запису об'єкта. Під час запису повинні виконуватися лише перевірки, що мають транзакційний характер. Наприклад, якщо підрозділ працівника можна змінити в будь-який момент часу і при цьому не перевіряється, чи існують уже документи, у яких вибрано цього працівника, то також немає сенсу перевіряти під час запису документа відповідність вибраного працівника та заданого підрозділу. Таку перевірку слід виконувати в процедурі ОбработкаПроверкиЗаполнения до початку транзакції запису.

1.2. Інформація про протокол виконаних дій може виводитися в окремому полі у формі.

Приклад:

  • Під час виконання команди форми "Прокоментувати розрахунок" видати інформацію про використані під час розрахунку дані та проміжні результати розрахунку

Засоби для реалізації:

  • Формування повідомлень в окремому реквізиті форми та зміна видимості поля у формі;
  • Відкриття окремої форми зі списком повідомлень.

1.3. Інформація про помилку повинна доводитися до користувача в модальному діалозі. Наприклад, такий спосіб інформування користувача пропонує платформа під час виведення системних повідомлень про помилку: повідомлення про неунікальність коду, неунікальність запису регістру відомостей, незадану дату документа тощо.

Приклад №1:

  • Під час виконання локальної команди форми "Заповнити знижку" необхідно повідомити, що контрагент ще не вибраний
  • Під час виконання локальної команди "Розрахувати зарплату" необхідно повідомити, що в системі ще не задано курс валюти на поточний місяць.

Спосіб реалізації:

  • Перевіряти необхідні значення в коді форми та використовувати метод глобального контексту Предупреждение.
  • У разі якщо є варіант вирішення проблеми, рекомендується використовувати функцію Вопрос. Наприклад:
Вопрос(НСтр("ru='Цього місяця ще не задано курс валюти. Використовувати курс за минулий місяць?'"), ...))

Приклад №2:

  • Під час виконання функції розрахунку крос-курсу валюти щодо управлінської валюти повідомити, що не задано курс валюти, не задано управлінську валюту тощо.

Спосіб реалізації:

  • Викликати виняток. Наприклад:
ВызватьИсключение НСтр("ru='Не встановлено управлінську валюту'")

1.4. Інформація про успішне виконання дії у формі повинна виводитися в разі, якщо факт виконання команди не очевидний для користувача. Система повинна видавати ту чи іншу реакцію на будь-яку команду. Наприклад, неправильно мовчки "проковтувати" натискання кнопки форми.

Доводити інформацію до користувача рекомендується як за допомогою модального діалогу (наприклад, процедури Предупреждение), так і за допомогою методу ПоказатьОповещениеПользователя. Застосовувати процедуру Предупреждение слід у тому разі, якщо потрібно "призупинити" роботу користувача та звернути його увагу на результат виконання команди.

Приклад:

  • Під час виконання команди форми "Перевірити заповнення" необхідно повідомити, що перевірка не виявила помилок;
  • Під час виконання команди форми "Обмежити залишками на складі" необхідно повідомити, що кількість товарів перевірено й не було зменшено;
  • Під час виконання команди форми "Прийняти зміни" необхідно повідомити, що оброблено всі п'ять вибраних документів.

Спосіб реалізації:

  • Використовувати процедуру Предупреждение

Водночас не слід інформувати користувача про очевидно виконану дію. Наприклад, не слід повідомляти про успішне виконання команди "Заповнити" за умов, коли список товарів, що заповнюється, у користувача "на виду", і користувач і так чітко бачить результат виконання команди.

1.5. Інформація про успішне виконання дії за відсутності форми на екрані також повинна виводитися в тому разі, коли для користувача може виявитися неочевидним факт виконання дії.

Приклад:

  • Під час виконання стартової обробки інформаційної бази повідомити, що обробку виконано успішно.

Спосіб реалізації:

  • Використовувати процедуру Состояние.
  • В окремих випадках, коли потрібно записати факт дії над об'єктом в історію (меню Сервис - История), використовувати процедуру ПоказатьОповещениеПользователя, передавши до неї навігаційне посилання на об'єкт інформаційної бази.

2. У випадках, коли повідомлення користувачу виводяться програмно за допомогою об'єкта СообщениеПользователю, слід уникати виведення великої кількості повідомлень у циклі (кілька сотень і більше), оскільки це може призводити до істотного уповільнення або аварійного завершення роботи клієнтського застосунку. Наприклад, якщо в документі під час проведення кількість помилок заповнення перевищує розумні межі, необхідно припиняти перевірку заповнення та зупинятися, повідомляючи про наявність безлічі помилок ("Також не заповнено й інші 256 рядків табличної частини Товари." або "Також не вдалося провести ще 256 документів."). Граничну кількість повідомлень слід вибирати виходячи з прикладного завдання.

Але при цьому не потрібно вживати жодних заходів у прикладному коді в інших випадках, коли повідомлення виводяться автоматично під час перевірки заповнення реквізитів або коли кількість повідомлень, що виводяться у штатних сценаріях роботи, свідомо невелика.

Див. також

  • Повідомлення користувачу
Записатися телефоном