|  | 
|  22.06.2006, 18:08 | #1 | 
| Moderator |  Пользовательские настройки: не отвязать таблицу в форме параметров запроса 
			
			Уважаемые коллеги, такая проблема: Пользователь каким-то образом умудрился приджойнить таблицу, которую теперь, извиняюсь, не "отджойнить обратно". Конкретно: в строках журнала по основным средствам при вводе в эксплуатацию после нажатия на кнопку "Выбор" появляется форма параметров запроса (SysQueryForm), в которой в поле "Структура" нарисовано: Код: * Таблицы
|___ * Основные средства
      |_____ * Складские проводкиПричем, когда я делаю подобное под своим логином, мне позволено добавлять и удалять эти "Складские проводки". И у меня слева на этих "Проводках" присутствует "стрелочка" - как знак ярлыка. У пользователя такой "стрелочки" нет, и при щелчке правой кнопкой у него отсутствует пункт "Удаление", а присутствют только пункты "1:n" и "n:1". В пункт "Использование данных" (SysLastValue) уже ходили и убили там строку: UserSetupQuery / Q:RAssetTable . Не помогло. Все запросы честно удалились, остался только "Используемый запрос". Но в нем все равно висят эти "Складские проводки"... Как можно побороть проблему? Заранее благодарю. | 
|  | |
| За это сообщение автора поблагодарили: NataLee (1). | |
|  22.06.2006, 18:27 | #2 | 
| Участник | 
			
			Скорее всего не до конца почистили SysLastValue. Если есть возможность - лучше грохнуть вообще все упоминания про RAssetTable или просто весь SysLastValue для этого юзера. | 
|  | 
|  22.06.2006, 19:54 | #3 | 
| Moderator | Цитата: 
		
			Сообщение от Logger
			
			 ... или просто весь SysLastValue для этого юзера. Потому что юзер бы сильно расстроилась... У нас они очень трепетно относятся к своим настройкам...   | 
|  | 
|  22.06.2006, 18:35 | #4 | 
| Участник | Цитата: 
		
			Сообщение от Gustav
			
			 Как можно побороть проблему? | 
|  | |
| За это сообщение автора поблагодарили: Gustav (4). | |
|  22.06.2006, 18:53 | #5 | 
| Moderator | Цитата: 
		
			Сообщение от olesh
			
			 Нужно удалить из SysLastValue еще и строку Class / класс_ввода_в_эксплуатацию (RAssetProposalAcquisition?) Запрос там сидит.   Я думаю, даже не "еще и", а с этого надо было начинать и, может быть, только этим и ограничиться, т.е. мое убийство Q:RAssetTable, наверное, было лишним. Или нет? | 
|  | 
|  22.06.2006, 23:08 | #6 | 
| Участник | Цитата: 
		
			Сообщение от Gustav
			
			 Причем, когда я делаю подобное под своим логином, мне позволено добавлять и удалять эти "Складские проводки". И у меня слева на этих "Проводках" присутствует "стрелочка" - как знак ярлыка. У пользователя такой "стрелочки" нет, и при щелчке правой кнопкой у него отсутствует пункт "Удаление", а присутствют только пункты "1:n" и "n:1". Подкачала реализация работы с queryRun в классе RAssetProposal Проблема в том, что форма SysQueryForm не может отделить датасоурсы, добавленные пользователем, от "оригинальных", т.е. добавленных в дизайне или программно. Если посмотреть метод Init() класса SysQueryEdit, то видно, что для выделения этих датасоурсов используется queryNextUniqueId = Query().nextUniqueId(). При этом Query() берется у текущего QueryRun, т.е. при загрузке из SysLastValue получится, что добавленные датасоурсы стали "оригинальными". Для того, чтобы эту ситуацию исправить, надо сохранить "оригинальный" запрос - а для этого необходимо использовать класс SysQueryRun (замечу, что в ClassDeclaration класса RAssetProposal queryRun определен как объект класса QueryRun, а при распаковке queryRun присваивается уже new SysQueryRun()). Что необходимо сделать в классе RAssetProposal 1. Переопределить в Class Declaration queryRun как SysQueryRun X++: SysQueryRun queryRun; X++: // поменять queryRun = new QueryRun(querystr(RassetTable)); // на queryRun = new SysQueryRun(querystr(RassetTable)); queryRun.origQueryPack(queryRun.query().pack()); X++: Query q; ; ... if (queryIsPackedOk(packedQuery)) { q = new Query(packedQuery); QueryRun.Query(q); } ... 
				__________________ Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 22.06.2006 в 23:11. | 
|  | |
| За это сообщение автора поблагодарили: NataLee (1), Lemming (2), Hammer (1). | |
|  23.06.2006, 12:17 | #7 | 
| Moderator | 
			
			AndyD, большое спасибо за подробный "разбор полётов".  Пока, увы, очков добавить не могу - Форум говорит: "Вы должны добавить отзыв кому-то еще, прежде чем сможете снова добавить ее AndyD." (хотя в очередной раз мне до конца не совсем понятно почему - я уже добавлял "кому-то еще"). Поэтому откладываю "материальную" благодарность на будущее  P.S. To whom it may concern: "добавить ОТЗЫВ... прежде чем снова добавить ЕЕ..." - пофиксите, пожал-та! Последний раз редактировалось Gustav; 23.06.2006 в 12:25. | 
|  |