| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Вопрос по поводу "Модификации были отменены". Что можно сделать?
			 
			
			Выдает сообщение при обработки заказа - накладная - "Модификации были отменены." и прекращает работу. Если это место закомментировать программа дальше тоже выдает ошибку, нужна складская аналитика, потом тоже выдает ошибку, так как не может разнести по проводкам. 
		
		
		
		
		
		
		
	А нельзя ли сделать так чтобы выдал сразу все ошибки, а то после throw ничего больше не делает. Спасибо!  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Hans
			
			 
Выдает сообщение при обработки заказа - накладная - "Модификации были отменены." и прекращает работу. Если это место закомментировать программа дальше тоже выдает ошибку, нужна складская аналитика, потом тоже выдает ошибку, так как не может разнести по проводкам. 
		
	А нельзя ли сделать так чтобы выдал сразу все ошибки, а то после throw ничего больше не делает. Спасибо! Я как-то не понимаю в чем смысл комментировать ошибки  
		 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			А тогда можно узнать что делает эта команда?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В Руководстве Разработчика поищите по этому слову, там все подробненько написано.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	Андрей.  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Hans
			
			 
А тогда можно узнать что делает эта команда? 
		
	PHP код: 
	
			
	 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Задам свой первый вопрос с картинкой. 
		
		
		
			Вопрос: Как сделать так чтобы при разноске накладной выдавались сразу все ошибки по строкам, а не по одной? Это создает затруднения для пользователя, потому что ему приходится делать много раз разноску накладной для исправления всех ошибок по строкам заказа. Можно ли все таки так сделать?  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В складских журналах есть механзм проверки, для заказов писать придется по-моему..
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			2Hidden: 
		
		
		
		
		
		
			Судя по вашему сообщению, Hidden и Hans - это одно лицо. Пункт 4.10 правил еще никто не отменял. Разберитесь с вашими никами, пожалуйста, не вводите людей в заблуждение. 
				__________________ 
		
		
		
		
	Андрей.  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Hidden
			
			 
Вопрос: Как сделать так чтобы при разноске накладной выдавались сразу все ошибки по строкам, а не по одной? 
		
	![]() \Classes\LedgerVoucherTransObject\check  | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Dron AKA andy
			
			 
2Hidden: 
		
	Судя по вашему сообщению, Hidden и Hans - это одно лицо. Пункт 4.10 правил еще никто не отменял. Разберитесь с вашими никами, пожалуйста, не вводите людей в заблуждение.  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			По поводу ника, совершенно справедливо, есть проблемы в отправлении сообщенний на моем компьютере. Сейчас проверю \Classes\LedgerVoucherTransObject\check.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			2Hidden&Hans: 
		
		
		
		
		
		
			ОК, спасибо. 
				__________________ 
		
		
		
		
	Андрей.  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от DreamCreator
			
			 
Один из классов участвующих в проверке, можно поставить точку останова и смотреть стек вызовов, во всяком случае с него можно начать  
		
	![]() \Classes\LedgerVoucherTransObject\check return checkFailed(strFmt("@SYS2176", _inventQty,this.availPhysical())); \Classes\InventUpdate_Physical\updatePhysicalIssue - throw error("@SYS18447").  | 
| 
	
 | 
| 
			
			 | 
		#14 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Возникло две мысли 
		
		
		
		
		
		
		
	1. Причина того что мы видим одну ошибку -- после генерации исключительной ситуации оператором throw за ним ничего выполняется. Можно заменить все участвующие в обработке накладной операторы throw на что-нибудь менее жесткое. Чревато непредсказуемыми последствиями и трудоемко. 2. Чтобы логика алгоритма продолжалось после throw, однажды я использовал вложенные try..catch -- помогло.  | 
| 
	
 | 
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 Цитата: 
	
		
			Сообщение от DreamCreator
			
			 
Возникло две мысли 
		
	1. Причина того что мы видим одну ошибку -- после генерации исключительной ситуации оператором throw за ним ничего выполняется. Можно заменить все участвующие в обработке накладной операторы throw на что-нибудь менее жесткое. Чревато непредсказуемыми последствиями и трудоемко. 2. Чтобы логика алгоритма продолжалось после throw, однажды я использовал вложенные try..catch -- помогло.  | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Hans
			
			 
первый метод работает, если заменить throw на что-нить вроде checkFailed(), можно ли поступать таким образом. Пострадает ли от этого функционал? 
		
	 | 
| 
	
 | 
| 
			
			 | 
		#17 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Можно написать свой отдельный класс в котором будут реалзованы все проверки с корректным сообщением. Вызывать до основной проверки. Но выйдет что проверка будет  дважды -- это плата за нетронутый основной функционал.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#18 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от DreamCreator
			
			 
Да, пострадает. Потому как checkFailed это аналог info (поправьте если не так), отличие только в иконке, таким образом несмотря на ошибку алгоритм не прервется как задумывалось ранее, а продолжится. И нет никакой гарантии что продолжится верно (ошибка ведь была -- допустим что-то не инициализировалось). Поэтому и трудоемко будет все переделывать. 
		
	 | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от DreamCreator
			
			 
Потому как checkFailed это аналог info (поправьте если не так) 
		
	if (условие) ret = checkfailed(какая-то ошибка); else ret = super(); return ret; поправьте если не так  | 
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Hans
			
			 
Вот это меня и интересует, мы не можем заменить throw, так как не знаем какая ошибка будет последней,  я дошел до 6 ошибок в разных методах таблиц и классов, и когда необходимо будет делать прерывание чтобы накладная не оприходовалась. Дальше я вряд ли смогу что-нибудь придумать (уровень не позволяет), наверное лучше оставить стандартный функционал. Спасибо! 
		
	 | 
| 
	
 |