#std800¶
Работа с формами объектов¶
Рекомендации относятся к формам, основной реквизит которых — объект информационной базы.
1.¶
Все изменения объекта в форме должны инициироваться явными действиями пользователя: редактированием полей и таблиц, выполнением команд, открытием вспомогательных форм. Это относится и к косвенным изменениям, например программному заполнению связанных реквизитов.
2.¶
Рекомендуется давать пользователю возможность отказаться от изменений и сохранить исходное состояние объекта: кнопкой «Отмена» или закрытием формы без записи.
3.¶
Не рекомендуется записывать объект из формы, в том числе в фоновом режиме, без явного намерения пользователя.
Если нестандартная команда приводит к записи, но ее название не сообщает о сохранении данных, объясните пользователю характер действия и предоставьте возможность продолжить или отменить операцию.
Запись подразумевают стандартные команды:
- «Записать», «Записать и закрыть»;
- «Провести», «Провести и закрыть», «Отменить проведение»;
- «Пометить на удаление», «Снять пометку», «Удалить»;
- «Выполнено», «Выполнено, закрыть»;
- «Старт», «Стартовать и закрыть».
О сохранении также сообщают названия «Сохранить», «Применить изменения», «Отправить», а в форме с подразумеваемой записью — «ОК».
4.¶
Не рекомендуется записывать объект, полученный через РеквизитФормыВЗначение.
Такая запись обходит платформенный механизм записи объекта из формы и может лишить пользователя возможности отказаться от изменений.
5.¶
Не рекомендуется изменять объект в обработчиках формы:
ПриСозданииНаСервере;ПриЧтенииНаСервере;ПриОткрытии;ПриПовторномОткрытии;ПриПереоткрытииСДругогоСервера;ПриЗаписиНаСервере;ПослеЗаписиНаСервере;ПослеЗаписи.
Первоначальное заполнение нового объекта реализуйте в обработчике ОбработкаЗаполнения модуля объекта.
Изменение сохраненного объекта при открытии формы или после записи нарушает согласованность действий пользователя и изменений данных.
Допускается менять значения служебных реквизитов табличных частей объекта, добавленных на форме.
6.¶
Не рекомендуется устанавливать Модифицированность формы объекта в Ложь.
Это обходит индикацию изменений и может нарушить работу объектных блокировок.
При закрытии формы без записи изменения могут потеряться без уведомления, а при повторной записи — попасть в базу без явного намерения пользователя.
См. также¶
- Признак модифицированности у формы
- #std409: Использование РеквизитФормыВЗначение и ДанныеФормыВЗначение
- #std396: Обработчик события ОбработкаЗаполнения