| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Изменение range Query в AOT.
			 
			
			Добрый день. 
		
		
		
		
		
		
		
	Задача стоит в том чтобы можно было изменять критерии (range) запроса (Query) в AOT. Изначально задача состояла в следующем, есть представление, которое сделано на основе запроса (Query). Это представление участвует в расчете куба. Нужно, чтобы пользователи могли изменять это представление, а именно чтобы данные в представление были в указанном периоде. Я попытался в Query переопределить метод init() и там внести изменения: X++: public void init() { QueryBuildRange qbr_TransDate; QueryBuildDataSource qbds_CustTrans; qbds_CustTrans = this.query().dataSourceTable(tableNum(CustTrans)); qbr_TransDate = qbds_CustTrans.rangeField(fieldNum(CustTrans, TransDate)); qbr_TransDate.value(strFmt("%1.%2 > %3", qbds_CustTrans.name(), fieldStr(CustTrans, TransDate), date2StrXpp(02\05\2023))); super(); } При открытии представления, в отладчике данный метод init() не вызывается. Подскажите, как можно изменить структуру Query в AOT? Нужно перезаписать значение в узле range. В интернете пока не получилось ничего найти. Может кто уже сталкивался с такой задачей ?  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Несколько пользователей должны будут менять один и тот же query в одном узле АОТ ? Как вы себе представляете этот процесс ?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Один пользователь - админ.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вот это должно помочь (пункт Create a Query in the AOT by Using X++) 
		
		
		
		
		
		
		
	https://learn.microsoft.com/en-us/dy...ies-by-using-x Получить dataSource и добавить нужный range X++: // Further define the query. qbds = queryObj.addDataSource(tablenum(CustTable)); qbr = qbds.addRange(fieldnum(CustTable, DlvMode)); qbr.value(">10");  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			LETTO, спасибо большое!!!. А подскажите как правильно синхронизировать представление после этих изменении ?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
X++: appl.dbSynchronize(tableNum(SalesLineCube)); | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			На всякий случай, если стоит задача написать условие на больше/меньше, то можно использовать метод sysQuery::range(From, To).  
		
		
		
		
		
		
			Если одна из границ не указана (для дат - это dateNull()), то вместо условия "между" будет сформировано условие "больше или равно" и "меньше или равно" в зависимости от того, какой границы нет Применительно к данному примеру, это будет как-то так X++: qbr_TransDate.value(sysQuery::range(systemDateGet()+1, dateNull())); "+1" - это чтобы исключить равенство с указанной датой. Всегда больше 
				__________________ 
		
		
		
		
	- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря...  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 |