|  20.12.2002, 11:48 | #1 | 
| ---------------- |  Осторожно! Грабли! 
			
			Пару раз наступив, хочу предостеречь коллег. Стандартная схема: 1. Есть форма с гридом и есть кнопочка, вызывающая какую-то обработку текущей строки 2. При нажатии кнопочки запускается процесс, где в классе (форме) обработки выполняется строка myTable = args().record(); 3. В процессе выводится некий диалог с пользователем. 4. Делается окончательная обработка с использованием курсора myTable Все работает замечательно... но в один "прекрасный" день пользователь на шаге 3 за какой-то надобностью полез обратно в форму с гридом и перешел на другую запись. В результате на шаге 4 мы используем уже другую(!!!) запись из myTable. Поймать эту ошибку сложно, так как возникает редко, а последствия могут быть очень разнообразны. Решение: На шаге 2 использовать строку myTable.data(args.record()); | 
|  | 
|  08.01.2003, 19:35 | #2 | 
| Участник | 
			
			а может ето не грабли а фича    | 
|  | 
|  11.09.2003, 11:02 | #3 | 
| ---------------- | Продолжение (грабли 2) 
			
			Есть формочка с табличкой MyTable Есть кнопка на форме с таким методом: PHP код: 
			PHP код: 
			 | 
|  | 
|  11.09.2003, 11:30 | #4 | 
| Участник | Re: Продолжение (грабли 2) Цитата: 
		
			Изначально опубликовано Wamr  ...НО статус меняется!!! В базу данных изменения не пошли. Если нажать F5, то это будет видно. Решение? Следовать рекомендациям Best Practice и не программировать в формах   | 
|  | 
|  11.09.2003, 11:58 | #5 | 
| ---------------- | почти верно Цитата: 
		
			В базу данных изменения не пошли. Если нажать F5, то это будет видно
		
	 Большинство пользователей поступает именно так. Цитата: 
		
			Следовать рекомендациям Best Practice и не программировать в формах 
		
	 (Кстати, форма создана господами внедренцами) P.S. Для себя я еще раз убедился, что нужно избегать прямого использования курсора, взятого из DS формы. | 
|  | 
|  11.09.2003, 12:29 | #6 | 
| Участник | Re: почти верно Цитата: 
		
			Изначально опубликовано Wamr  А вот если перейти на другую запись, то изменения (статус) радостно запишутся в БД. Большинство пользователей поступает именно так. Цитата: 
		
			Изначально опубликовано Wamr  А в каком месте были нарушены BPs и как можно еще меньше (1 строка) программировать в формах? Код действительно написан в соответствии с BP. | 
|  |