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

Заборона редагування полів таблиці за умовою

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

Редакційна сцена з таблицею полів: заповнена синя комірка відкриває пов’язану аналітичну комірку, поруч показано стриманий бурштиновий знак попередження.

Методична рекомендація (корисна порада)

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

  • Для попередження користувача застосовувати властивості поля ОтображениеПредупрежденияПриРедактировании і ПредупреждениеПриРедактировании
  • Текст попередження вказати у властивості поля форми під час розробки форми в конфігураторі.
  • Керувати властивістю ОтображениеПредупрежденияПриРедактировании із вбудованої мови під час активізації рядка таблиці та під час зміни тих значень, які впливають на умову редагування поля
  • Надати користувачеві можливість редагування вже введеного значення, навіть якщо воно введене «не за правилами», щоб користувач міг видалити раніше введене значення.

Наприклад, у таблиці форми Затраты є поля СтатьяЗатрат і АналитикаСтатьиЗатрат. При цьому заповнення поля АналитикаСтатьиЗатрат не має сенсу без заповнення поля СтатьяЗатрат. Тоді код форми може містити приблизно такі процедури.

&НаКлиенте 
Процедура УстановитьПредупреждениеПриРедактировании() 
	Если НЕ ЗначениеЗаполнено(Элементы.Затраты.ТекущиеДанные.СтатьяЗатрат) Тогда 
		Если НЕ ЗначениеЗаполнено(Элементы.Затраты.ТекущиеДанные.АналитикаСтатьиЗатрат) Тогда 
			Элементы.ЗатратыАналитикаСтатьиЗатрат.ОтображениеПредупрежденияПриРедактировании = 
			ОтображениеПредупрежденияПриРедактировании.Отображать; 
		Иначе 
			Элементы.ЗатратыАналитикаСтатьиЗатрат.ОтображениеПредупрежденияПриРедактировании = 
			ОтображениеПредупрежденияПриРедактировании.НеОтображать; 
		КонецЕсли; 
	Иначе 
		Элементы.ЗатратыАналитикаСтатьиЗатрат.ОтображениеПредупрежденияПриРедактировании = 
		ОтображениеПредупрежденияПриРедактировании.НеОтображать; 
	КонецЕсли; 
КонецПроцедуры

&НаКлиенте 
Процедура ЗатратыПриАктивизацииСтроки(Элемент) 
	УстановитьПредупреждениеПриРедактировании(); 
КонецПроцедуры 

&НаКлиенте 
Процедура ЗатратыСтатьяЗатратПриИзменении(Элемент) 
	УстановитьПредупреждениеПриРедактировании() 
КонецПроцедуры 

&НаКлиенте 
Процедура ЗатратыАналитикаСтатьиЗатратПриИзменении(Элемент) 
	УстановитьПредупреждениеПриРедактировании() 
КонецПроцедуры

У тому разі, якщо від деяких умов залежить не лише сама необхідність попередження, а й текст самого попередження, слід керувати із вбудованої мови не лише властивістю поля ОтображениеПредупрежденияПриРедактировании, а й властивістю ПредупреждениеПриРедактировании.

Записатися телефоном