| 
			
			 | 
		#1 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
			
			
			Ошибки в русских накладных, фактурах итп.
			 
			
			Дамы и господа, многих уже достали ошибки в счетах, фактурах и т.д, которые кочуют из версии в версию. Хотелось бы отлить этакую серебряную пулю для менеджера продукта в Москве (О. Дмитриева, не так ли?), и сделать суммарный запрос в сервисную систему со всеми известными ошибками. 
		
		
		
		
		
		
		
		
			Попробую начать: 
 Последний раз редактировалось EVGL; 02.11.2011 в 14:15.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Ivanhoe (5), gl00mie (5), Kabardian (3), Cathome (1). | |
| 
			
			 | 
		#2 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Я все-таки уточню, что главной проблемой будет не пофиксить, а зарегестрировать в поддержке. Ты заметил что на форуме часто появляются загадочные личности (например Ich@Ru) и после каждого описания ошибки, спрашивают - зарегистрированы ли они в поддержке? Как я понимаю, проблема в том, что без ссылки на запрос, разработчикам и менеджерам продукта просто не дадут зачекаутить классы и отчеты на изменение. Соответственно - задача не в том чтобы перечислить баги, а в том чтобы дать им описание подходящее для поддержки (то есть - разжеванное и переведенное на английский).
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Вроде бы, не игнорируется. У меня внешнее описание выводилось.
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	I could tell you, but then I would have to bill you.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Кстати, город банка из какого поля должен подставляться? Из города в адресе или из локализованного поля "Местоположение"?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	I could tell you, but then I would have to bill you.  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
X++: return .... (bankAccountTable.TownId_RU ? SysLabel::labelId2String(literalstr(""), languageId) + ' ' + AddressTown_RU::Find(bankAccountTable.CountryRegionId, bankAccountTable.State, bankAccountTable.County, bankAccountTable.TownId_RU).fullName_RU() + ' ' : bankAccountTable.City ? bankAccountTable.City + ' ' : "")  
		 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: twilight (1). | |
| 
			
			 | 
		#6 | 
| 
			
			 MCTS 
		
			
	 | 
	
	
	
		
		
		
		 
			
			1. Если не заполнено сокращенное наименование частей, то не надо выводить запятую после сокращенного наименования единиц в заголовке таблицы. 
		
		
		
		
		
		
			2. Если все номенклатуры относятся к типу Услуга, то в полях грузоотправитель и грузополучатель в счет-фактуре должен ставиться прочерк. 
				__________________ 
		
		
		
		
	I could tell you, but then I would have to bill you.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: EVGL (1). | |
| 
			
			 | 
		#7 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Отнюдь. В накладной всегда внешнее описание склеивается с внутренним, т.е. режим "Перезаписать" не работет. Более того, в коде этот параметр даже и не опрашивается. Опрашивается параметр для кода номенклатуры. 
		
		
		
		
		
		
		
	 
		 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Некоторые документы используют нестандартный отчет, а вывод в шаблон Excel / Word (например, ТН-ка)  
		
		
		
		
		
		
		
	Стандартное управление печатью для них тоже не работает.  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	|
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от fed
			 
 
			Я все-таки уточню, что главной проблемой будет не пофиксить, а зарегестрировать в поддержке. Ты заметил что на форуме часто появляются загадочные личности (например Ich@Ru) и после каждого описания ошибки, спрашивают - зарегистрированы ли они в поддержке? Как я понимаю, проблема в том, что без ссылки на запрос, разработчикам и менеджерам продукта просто не дадут зачекаутить классы и отчеты на изменение. Соответственно - задача не в том чтобы перечислить баги, а в том чтобы дать им описание подходящее для поддержки (то есть - разжеванное и переведенное на английский). 
		
	 | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: mazzy (5), AlGol (2), fed (5), Logger (0). | |
| 
			
			 | 
		#11 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Да. Я сознательно оставил это за скобками. Очевидным решением будет открыть сразу несколько окон с Excel, но от этого будет только хуже. Прямой печати на принтер все равно нет, а пользователю придется работать тогда сразу в нескольких окнах.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			1. Может, стоит все текстовые графы явно хранить в таблице накладной / фактуры (как в международной версии?), а то реквизиты берутся всегда текущие, что не есть хорошо. 
		
		
		
		
		
		
			2. В фактуре очень бы хотелось видеть информацию о платежках. 3. В накладной количество мест считается от какого-то поля в карточке товара (количество в упаковке что ли). Странно это ![]() 4. В идеале бы сделать возможность в авансовой фактуре выводить полноценный список товаров, а не в одно поле всё записывать. В остальном польностью поддерживаю EVGL. P.S. осенью МС собирает партнеров на "совет" - можно попробовать и там это повторить. 
				__________________ 
		
		
		
		
	Ivanhoe as is..  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: EVGL (2), someOne (2). | |
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Есть еще одна неприятная бага. Не связанная  напрямую с печатью, но влияющая на печать (причем ошибка похоже не только в локализации). 
		
		
		
		
		
		
		
	Попробую быть краток : 1. Связь между шапкой CustInvoiceJour и строками CustInvoiceTrans идет по странному Relation, в который входят поля : SalesId InvoiceId InvoiceDate numberSequenceGroup но нет аналога поля VendInvoiceJour.InternalInvoiceId из-за этого возможна ситуация, когда номера накладных, даты и номера заказов совпадают, что приводит к перепутыванию строчек разных накладных. А это в свою очередь происходит из-за того, что : 2. Поле CustInvoiceJour.invoiceID является как составной частью первичного ключа таблички, так и номером документа, выводимым на печать. На практике это крайне неудобно, так как нередко приходится исправлять ошибки в документах через кредит-ноту. Например, выписали накладную по заказу. Заметили ошибку, сделали по заказу сторно через немедленное получение. Исправили документ, закатываем накладную по заказу заново. Клиент требует чтобы номер не менялся. Что делать ? Разрешаем дубликаты CustInvoiceJour.invoiceID и получаем все вышеописанные проблемы. т.е. надо выделить поле - первичный ключ накладной, а-ля InventJournalTable.JournalId и использовать его для связки шапки и строк, но не для печати. 3. Поле CustInvoiceJour.invoiceID является составной частью первичного ключа, но не является уникальным и может повторяться. Более того в системе штатно предусмотрен режим проверки уникальности по этому полю, предполагающий, что Аксапта может работать в режиме, когда номера накладных повторяются. А в системе есть куча мест где CustInvoiceJour.invoiceID используется так, словно он и есть первичный ключ и однозначно идентифицирует шапку накладной. Со всеми вытекающими проблемами... Навскидку : 4. Метод \Classes\FactureTransCreateCust_RU\createTrans расщепляет строки по ГТД. Для расщепления используются запросы : X++: select sum(Qty) from inventTrans where inventTrans.InvoiceId == custInvoiceTrans.InvoiceId && inventTrans.DateFinancial == custInvoiceTrans.InvoiceDate && inventTrans.InventTransId == custInvoiceTrans.InventTransId join InventGtdId_RU from inventDim group by InventGtdId_RU where inventDim.InventDimId == inventTrans.InventDimId; while (qtyToAllocate && inventTrans) { select sum(Qty) from factureTransSum where factureTransSum.InventTransId == custInvoiceTrans.InventTransId && factureTransSum.InvoiceId == custInvoiceTrans.InvoiceId && factureTransSum.InvoiceDate == custInvoiceTrans.InvoiceDate && factureTransSum.InventGTDId == inventDim.InventGtdId_RU && factureTransSum.FactureLineType == FactureLineType_RU::InvoiceLine && factureTransSum.Module == FactureModule_RU::Cust; InvoiceId InvoiceDate Легко видеть что если по лоту у нас отгружается 2 ГТД-ки по 5 штук, то после сторнирования и проведения фактуры заново может получиться 1 ГТД-ка на 10 штук. т.е. 5 штук будет взято из правильной накладной и 5 из исправленной, а 2-я ГТД-ка вообще в фактуру не попадет. 5. Код \Data Dictionary\Tables\InventTrans\Methods\qtyInvoiceSold также закладывается только на InvoiceId что приходит в конечном итоге к проблемам при вызове с формы \Forms\SalesCopying\Methods\canClose (копирование строк, создание кредит-нот с неверными количествами salesLine.QtyOrdered и.т.п.) 6. Также есть ряд мест в расчете налогов, в книгах покупок и продаж, где ваучер не используется. \Classes\BookTransCalc_Sales_RU\appendGtd \Classes\SalesCalcTax_Invoice\initCursor Правда в 3-ке таких мест было больше. В одном месте я как то видел просто фильтр по InvoiceId и все. Повеселило... P.S. Что с этим делать - фиг знает. Самым безопасным, простым и дешевым способом на мой взгляд было бы сделать поле CustInvoiceJour.InvoiceId уникальным, а для печати использовать свое кастомизированное поле. Так безопаснее. По крайней мере большинство кода с вышеописанными косяками при этом условии выполняется правильно. Косяк не проявляется. Можно еще добавить в строки CustInvoiceTrans, FactureTrans - ваучер и везде в запросах добавлять фильтры по нему. Работает корректно. Но поддерживать сложно, особенно с выходом сервис-паков. Хотя мы в итоге по этому пути и пошли. (Исторически так сложилось) Надежды что это когда-нить исправят - уже нет, особенно с учетом того что в 2012-й все переколбасили, т.е. исправление будет актуально только для 2009-й версии.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Pustik (2), gl00mie (7), someOne (2). | |
| 
			
			 | 
		#14 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Logger
			 
 
			из-за этого возможна ситуация, когда номера накладных, даты и номера заказов совпадают, что приводит к перепутыванию строчек разных накладных. 
		
	А это в свою очередь происходит из-за того, что : 2. Поле CustInvoiceJour.invoiceID является как составной частью первичного ключа таблички, так и номером документа, выводимым на печать. На практике это крайне неудобно, так как нередко приходится исправлять ошибки в документах через кредит-ноту. Зал засмеялся. 
				__________________ 
		
		
		
		
		
			-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. Последний раз редактировалось Pustik; 05.10.2011 в 21:38.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Logger (3). | |
| 
			
			 | 
		#15 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
![]() ![]() ![]() Интересно, а кто нить это регал в поддержке ? Чего говорят-то ? Кстати, а вы как лечили ?  | 
| 
	
 | 
| 
			
			 | 
		#16 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			так же как и Вы: 
		
		
		
		
		
		
			Цитата: 
	
		
			Сообщение от Logger
			 
 
			Самым безопасным, простым и дешевым способом на мой взгляд было бы сделать поле CustInvoiceJour.InvoiceId уникальным, а для печати использовать свое кастомизированное поле. Так безопаснее. По крайней мере большинство кода с вышеописанными косяками при этом условии выполняется правильно. Косяк не проявляется. 
		
	P.S. Спасибо, что упомянули о проблеме. 
				__________________ 
		
		
		
		
	-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: someOne (1). | |
| 
			
			 | 
		#17 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		
 и т.д. и т.п. прежде всего очень хочется, чтобы полностью переделали эту гребанную печатную форму с шейпами - убрали шейпы. из-за которых эти формы становится чудовищно сложно сопровождать и модифицировать. нигде в законодательстве не сказано, что "должны быть рамочки" "как в 1С". ну, и конечно единообразная печать документов под управлением печати документов. клиенты должны иметь возможность печатать документы массово и пачками. Цитата: 
	
не обязательно номер СФ совпадает с номером накладной и т.п. например, авансовая СФ должна создаваться сама по себе, безо всякой накладной. это надо переформулировать следующим образом: должен быть механизм наследования, контроля и отслеживания номеров СФ, созданных на основании накладной.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: EVGL (2). | |
| 
			
			 | 
		#18 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Logger
			 
 
			Что с этим делать - фиг знает. 
		
	Самым безопасным, простым и дешевым способом на мой взгляд было бы сделать поле CustInvoiceJour.InvoiceId уникальным, а для печати использовать свое кастомизированное поле. Так безопаснее. По крайней мере большинство кода с вышеописанными косяками при этом условии выполняется правильно. Косяк не проявляется. ни в коем случае. Сейчас уникальность определяется 4мя полями SalesId, InvoiceId, InvoiceDate, numberSequenceGroup InvoiceDate позволяет начинать нумерацию с 1 каждый новый год (как обычно этого хочет бухгалтерия) numberSequenceGroup позволяет выписывать накладные с одинаковыми номерами из разных подрезделений или в разных точках продаж. нельзя делать CustInvoiceJour.InvoiceId уникальным  | 
| 
	
 | 
| 
			
			 | 
		#19 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
![]() Щас они на 100% загружены локализацией AX2012, и все ваши "хотелки" далеко задвинут. А жаловаться на форумах - это лишь создаёт плохую репутацию, почитают люди и подумают, что аксапта говно и не купят, и останетесь вы без работы ))) А что ещё может подумать человек, когда заходит на форум и видит тему: "Ошибки в русских накладных, фактурах итп." Пишите напрямую вендору о всех ваших проблемах, зачем изливать всё это тут? Последний раз редактировалось lvan; 05.10.2011 в 23:46.  | 
| 
	
 | 
| 
			
			 | 
		#20 | 
| 
			
			 Banned 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от mazzy
			 
 
			
 Цитата: 
	
1) Нельзя быть святее папы (Microsoft), а названия компаний, собственное название и т.д. не хранятся в таблицах. 2) Ларец "должностные лица" пока не хочется открывать. Что касается InvoiceId, придерживаюсь мнения Mazzy: лучше не наступать на грабли, не ловить колючих ежей и оставлять номер уникальным. Если говорить о моих клиентах, то точечки, черточки и невидимые символы их вполне удовлетворяют. Последний раз редактировалось EVGL; 05.10.2011 в 23:47.  | 
| 
	
 | 
| Теги | 
| баг, локализация, накладная, ошибка, печатная форма, счет-фактура | 
| 
	
	 | 
	
		
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
		
  |