| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Что-то не пойму по Датапорту
			 
			
			Пытаюсь через датапорт в таблицу Покупка Заголовок внести данные, которые готовятся сторонней программой. Файл читается, все поля вроде нормально разбираются. НО! Номера документов в Покупка Заголовок проставляются автоматически. Все это делается в тригере OnInsert этой таблицы. Так вот я столкнулся с тем, что если вставлять запись в эту таблицу вручную (например нажатием F3) то триггер отрабатывает. А вот если делать в датапорте "Покупка Заголовок".INSERT то триггер не срабатывает и, соответственно, документ не получает номер.  
		
		
		
		
		
		
		
	Что я делаю неправильно? Может, с нумерацие из-под датапортов надо работать по-другому?  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			попробуйте: 
		
		
		
		
		
		
		
	"Покупка Заголовок".INSERT(true)  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Да, спасибо большое, это помогло - триггер стал выполняться. Но теперь другая проблема: если я импортирую более одной записи, то следующий номер почемуто не выбирается.  Т.е. первую запись он отрабатывает, вставляет с первым свободным номером, согласно информации в серии номеров. Но вот последующую запись он пытается вставить с тем же самым номером, что, логично, вызывает ошибку. Что-то не пойму - то ли он транзакцию вставки до конца не завершает... То ли я снова что-то не так делаю. 
		
		
		
		
		
		
		
	Делаю так: для цикла использую таблицу "Целое". В тригере OnAfterImportRecord() делаю следующие нехитрые операции: ПокупкаЗаголовок.RESET; ПокупкаЗаголовок.INIT; ПокупкаЗаголовок.VALIDATE(ПокупкаЗаголовок."Тип Документа","Тип Документа"); ПокупкаЗаголовок.VALIDATE("Покупка Поставщик Но.","Покупка Поставщик Но."); ............. ............. ПокупкаЗаголовок.VALIDATE("Описание Учета","Описание Учета"); ПокупкаЗаголовок.INSERT(TRUE);  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Смотрите на метод onInsert, там есть такая строчка : 
		
		
		
		
		
		
		
	IF "No." = '' THEN BEGIN.. на перовй строчке номер - пустой, он нормально заполняется. на второй строчке вы похоже правите предыдущую, все поля, в т.ч и номер - заполнены. Новый номер не выбирается. Попробуйте очистить переменную.  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Уф.. Заработало!!!! Ну я б ни в жизнь не сообразил если честно.  
		
		
		
		
		
		
		
	    Огромное спасибо!!
		 | 
| 
	
 |