| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Вызвать modified поля датасорса
			 
			
			Я перекрываю modified поля датасорса на форме. Можно ли теперь программно вызвать этот метод?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Попробуй напиши так: <имя поля>.hasChanged(true) - мне помогло. 
		
		
		
		
		
		
		
	А еще можно вот так: <имя датасорса>_ds.object(fieldNum(таблица, поле)).modified();  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			2 kashperuk  
		
		
		
		
		
		
		
	<имя поля>.hasChanged(true) мне не совсем подходит, т.к. оно вызывает событие modified на дизайне, т.е., насколько я понял, <имя поля> - имя контрола на форме, а этого мне как раз и хочется избежать. Второй же вариант: <имя датасорса>_ds.object(fieldNum(таблица, поле)).modified();, хотя мне на первый взгляд показался именно тем что нужно, почему-то не вызывает методы датасорса формы, а вызывает только метод modifiedfield() таблицы.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Привет.  
		
		
		
		
		
		
		
	Возник такой же вопрос. Тока хуже - hasChanged не работает. Есть форма, на два DS - InventDim и InventJournalTrans. Метод modified одного из полей в InventDim перекрыт. В нем изменяется одно поле в InventJournalTrans PHP код: 
	
			
	Сделал так: PHP код: 
	
			
	Подскажите, что я не так делаю?  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Датасорс разрешен на редактирование?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			угу
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А на контроле отрабатывает?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			2Artild 
		
		
		
		
		
		
		
	Так вызывается на таблице, а не на источнике данных. Цитата: 
	
		
			А на контроле отрабатывает?
		
	 
 | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Хм. Может, попробовать что-нить типа flush? может, где-нить в буфере зависло? 
		
		
		
		
		
		
		
	Какая-то, прямо скажу, странная ситуация - на датасорсе еще старые данные.. Может, вынести на контрол или вызывать оттуда код изменения InventJournalTrans?  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вот решение этой проблемы: 
		
		
		
		
		
		
		
	Код: {
    FormDataObject datasourceField;
    ;
    datasourceField = Datasource_DS.object(fieldNum(TableName,FieldName));
    datasourceField.modified();
} | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Maxim Gorbunov (6), olesh (1), kashperuk (1), jasper (1), Gustav (6), Polgid (1), Cathome (1). | |