|  26.01.2009, 17:59 | #1 | 
| :o) | Задача: запретить удалять строки разнесённых журналов.  Задача: запретить удалять строки разнесённых журналов. добавила в validateDelete() таблицы InventJournalTrans условие, что если журнал разнесён, то его нельзя удалять... (возвращает false)  теперь можно просто нажать на кнопку, но ничего не произойдёт... то же вариант.. но, как-то не правильно это - кнопка на панели инструментов активная... Хотелось бы как-то красиво сделать, либо, чтобы кнопка была неактивная при раскрытии строк разнесённого журнала, либо сообщение выдать - вы мол хотите удалить строчку разнесённого журнала - "низзззя!" посоветуйте, плиз! X++: public boolean validateDelete() { boolean ret = super(); if ((isConfigurationkeyEnabled(configurationkeynum(CsePoland)) && this.inventJournalTable().Posted && ! InventJournalName::find(this.inventJournalTable().JournalNameId).DeletePostedLines)||(this.inventJournalTable().Posted)) { ret = false; } return ret; } 
				__________________ "Только на Бога не может быть обиды - если смерть пошлет, значит, жизни пришел предел, на то рождался,- а за все остальное на Земле есть и должен быть спрос!." Чингиз Торекулович Айтматов. | 
|  | 
|  26.01.2009, 18:07 | #2 | 
| Участник | 
			
			Попробуйте так X++: ret = checkFailed("вы мол хотите удалить строчку разнесённого журнала - низзззя!"); return ret; | 
|  | 
|  26.01.2009, 18:13 | #3 | 
| Участник | 
			
			Задача противоречит стандартной логике Аксапты. Чтобы сохранять журналы используйте журнализацию. читайте на форуме. обсуждалось неоднократно. Цитата: Только лучше задачу поменяйте. Вы сейчас Аксапту изнасилуете, а она ж потом всю жизнь мстить будет   | 
|  | 
|  26.01.2009, 18:21 | #4 | 
| Участник | 
			
			в методе класса (ну или в его потомках) JournalFormTrans.initDatasourceAllow() устанавливается доступность, добавьте туда запрет на удаление. или создайте на форме метод initDatasourceAllow(), в котором запретите удалять, если необходимо в конкретной форме Последний раз редактировалось ice; 26.01.2009 в 18:27. | 
|  | 
|  26.01.2009, 18:36 | #5 | 
| Участник | 
			
			Если Вам нужен запрет только в одной форме(в чем я сомневаюсь), то на init датасорса строк журнала можете делать проверку - разнесен журнал или нет. Далее в зависимости от результата проверки меняйте свойство AllowDelete.  А лучше всего прислушайтесь к совету Сергея. У Вас в журналах действительно есть что-то такое, чего нельзя получить из проводок? Последний раз редактировалось _scorp_; 26.01.2009 в 18:40. | 
|  | 
|  26.01.2009, 18:44 | #6 | 
| Axapta | Цитата: По теме. Прислушайтесь к совету Маззи не запрещать удалять. Если вы трижды подумали и это вам не подошло, то я бы делал так, как написал ice. | 
|  | 
|  26.01.2009, 18:48 | #7 | 
| Участник | 
			
			Согласен, каюсь.
		 Последний раз редактировалось _scorp_; 26.01.2009 в 19:02. | 
|  | 
|  26.01.2009, 19:03 | #8 | 
| Member | 
			
			Стандартным функционалом не решается. Если бы я взялся за такую кастомизацию, то сделал бы по аналогии с журналам ГК (там нельзя удалять журналы не удалив строк, а строки разнесенных журналов нельзя удалять даже с помощью функции удаления строк). Правда, корректно это реализовано в 4.0. В 3.0 еще были лазейки. Вот просто для аналогии. Даже если там и не совсем оптимальный подход. Для единообразия. 
				__________________ С уважением, glibs® | 
|  | 
|  26.01.2009, 19:27 | #9 | 
| :o) | Цитата: Надо будет как-то ещё и нашему бизнес-аналитику это объяснять... Цитата: Пока добавила новый параметр в таблицу BOMParameters, вывела его на соответтвующую форму InventParameters А далее, действительно сделала, как написал ice: Цитата: X++: void initDatasourceAllow() { BOMParameters BOMParameters = BOMParameters::find(); // my add boolean allow = !journalTableData.journalTable().posted && journalTableData.journalTable().sessionId; boolean allowPosted = !(BOMParameters.UNS_IsBlockPostedTransDel && journalTableData.journalTable().posted); // my add ; journalTrans_ds.allowDelete((journalTableData.journalTable().sessionId != 0)&&(allowPosted)); // my edit journalTrans_ds.allowEdit(allow); journalTrans_ds.allowCreate(allow); if (formHasMethodinitDatasourceAllow == unknownNoYes::Unknown) formHasMethodinitDatasourceAllow = formHasMethod(formRun,identifierStr(initDatasourceAllow)) ? unknownNoYes::Yes : unknownNoYes::No; if (formHasMethodinitDatasourceAllow == unknownNoYes::Yes) formRunObject.initDatasourceAllow(); } 
				__________________ "Только на Бога не может быть обиды - если смерть пошлет, значит, жизни пришел предел, на то рождался,- а за все остальное на Земле есть и должен быть спрос!." Чингиз Торекулович Айтматов. Последний раз редактировалось jeky; 26.01.2009 в 19:30. | 
|  | 
|  26.01.2009, 23:08 | #10 | 
| Аманд | Цитата: 
		
			Надо будет как-то ещё и нашему бизнес-аналитику это объяснять... 
		
	  И описание задачи тоже   | 
|  | 
|  26.01.2009, 23:24 | #11 | 
| Участник | 
			
			а почему бы не использовать обычный банальный эрэлэс? Кодировать ведь не нужно абсолютно.
		 
				__________________ The Variable men power. | 
|  | 
|  28.01.2009, 19:07 | #12 | 
| :o) | Цитата: Цитата:  Думала, что чего-то не знаю... но может действительно не знаю... У нас журнализация - настроена.... Но как восстановить журнал оттуда?  Понятно если джобом... но стандартых вроде средств не нашла.... И потом, стандартной наверное да... у нас, не стадартная ... У нас сторнирование журналов спецификации написано... Оно исключительно из журналов делается.. (таким образом исправляют ошибки в журнале - на него создают журнал с отрицательным количеством потом заводят новый) Собственно из-за этого и закрывали удаление....  + ещё у нас на разных формах есть кнопочка "Удаление строк журнала", вот пришлось ещё на каждой форме и это править... я у датасорсов перекрывала active и linkActive   
				__________________ "Только на Бога не может быть обиды - если смерть пошлет, значит, жизни пришел предел, на то рождался,- а за все остальное на Земле есть и должен быть спрос!." Чингиз Торекулович Айтматов. Последний раз редактировалось jeky; 28.01.2009 в 19:11. | 
|  | 
|  28.01.2009, 22:22 | #13 | 
| Аманд | Цитата: 
		
			У нас сторнирование журналов спецификации написано...
		
	  Начинаем с простого вопроса, а на деле оказывается...  Пожалуйста, формулируйте вопрос в целом, с указанием причин Ваших действий! Это крик души, а теперь по делу: чем ваше сторнирование журналов спецификаций отличается от функции приёмка, в которой можно укзазать направление операции? Хм, при разборке автоматически ставите аналитику и себестоимость? Тогда уж опишите, как и для чего вы используете журнал спецификаций. | 
|  |