| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Журнал платежей поставщиков
			 
			
			Привет. 
		
		
		
		
		
		
		
	Проблема с формой Платежей (строки) поставщиков. - LedgerJournalTrans_VendPaym. Началось все с того, что обнаружилось следующее поведение в форме: Создаю несколько строк в журнале. проставляю какие нибудь счета. Даты пока все одинаковые. Далее становлюсь на строку, к примеру, первую, меняю дату на другую. И курсором перехожу на другую запись ( на вторую.  ) при этом меняется дата во второй строке на ту, что ввел в первой.Начал рыть код. Это происходит при сохранении текущей записи. Последовательность вызовов следующая: \Forms\LedgerJournalTransVendPaym\Data Sources\LedgerJournalTrans\Methods\write там ledgerJournalEngine.write(ledgerJournalTrans); вызывается. в нем 28 строка: this.adjustLedgerJournalTrans(_ledgerJournalTrans); в нем 8 строкой: if (ledgerJournalEngine_Server.adjustDate(_ledgerJournalTrans, this))//, voucherDateList)) В этом методе следующий код: PHP код: 
	
			
	И наконец, вопрос: Это так и должно быть, или это глюк, который просто никто не замечал??? Больше что-то похоже на второе. ![]() А если должно так быть, то почему? Неужели нельзя указать другую дату для отдельной строки? Спасибо  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Re: Журнал платежей поставщиков
			 Цитата: 
	
		
			Изначально опубликовано kashperuk  
Это так и должно быть, или это глюк, который просто никто не замечал??? Больше что-то похоже на второе. ![]() А если должно так быть, то почему? Неужели нельзя указать другую дату для отдельной строки? Ваучер - это набор строк с одинаковым номером документа ГК. Аксапта определяет номер ваучера в зависимости от настроек журнала. По-умолчанию, в настройках журнала стоит опция "Изменять номер при балансе" Это значит, что Аксапта начнет новый ваучер только если вы введете строчки, для которых сумма по дебету равна сумме по кредиту. Если в строке журнала вводится корр.счет. То сумма дебета и сумма кредита автоматически совпадают. Таким образом (если для каждой строки вводится корр.счет), вы видите отдельный номер ГК в каждой строке. Если же ваши пользователи корр.счет пропустили. То Аксапта считает, что пользователь вводит многострочную проводку. В этом случае следующие строчки будут получать ОДИНАКОВЫЙ номер ваучера, пока дебет не сравняется с кредитом. А один ваучер может быть только с одной датой. Разные даты вы можете указать только для разных ваучеров. См. картинку. Первые три строки относятся к одному ваучеру. Первые три строки с разными датами сделать не получится никак  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Очень хороший ответ, спасибо. 
		
		
		
		
		
		
		
	Но наши пользователи корр.счет не пропустили, а не указали сознательно... ну проще им сначала перечислить даты, поставщиков и суммы, а уже потом выбирать на каждую строчку банк... так то.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Изначально опубликовано linney  
Очень хороший ответ, спасибо. Но наши пользователи корр.счет не пропустили, а не указали сознательно... ну проще им сначала перечислить даты, поставщиков и суммы, а уже потом выбирать на каждую строчку банк... так то. ![]() Анекдот: Русские мужики купили японскую бензопилу. Решили проверить. Подсунули ей доску. - Вжик - сказала японская бензопила - О! - сказали русские мужики Подсунули ей бревно. - Вжик - сказала японская бензопила - О! - сказали русские мужики Подсунули ей желензный лом - Кряк - сказала японская бензопила - Э-э-э - махнули рукой русские мужики...  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			ага... и ружья у нас кирпичом не чистют..
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			ружья кирпичом не чистют у них  
		
		
		
		
		
		
		
	 
		 | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Подниму эту давнишнюю тему - хочу вернуться к коду чудо-метода ledgerJournalEngine_Server.adjustDate(), который с 2005-го года в неизменном виде перекочевал и в 2009-ю Аксапту: 
		
		
		
		
		
		
		
	X++: ttsbegin; dateCorrected = false; while select forUpdate ledgerJournalTransLocal where ledgerJournalTransLocal.journalNum == _ledgerJournalTrans.journalNum && ledgerJournalTransLocal.voucher == _ledgerJournalTrans.voucher { if (ledgerJournalTransLocal.recId != _ledgerJournalTrans.recId) { ledgerJournalTransLocal.transDate = _ledgerJournalTrans.transDate; if (_ledgerJournalEngine) _ledgerJournalEngine.currencyModified(ledgerJournalTransLocal); ledgerJournalTransLocal.doUpdate(); dateCorrected = true; } } ttscommit;  
		 | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Member 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А почему у вас при программном создании строк меняется дата ваучера?
		 
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	С уважением, glibs®  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В том-то и дело, что она не меняется - у всех строк с одинаковым ваучером дата тоже одинаковая. Другое дело, что тот же LedgerJournalEngine со своими допущениями может дергать adjustDate() чаще, чем нужно, а тот тупо не смотрит, одинаковая ли в строках дата...
		 
		
		
		
		
		
		
		
	 | 
| 
	
 |