| View previous topic :: View next topic | 
	
	
		| Author | Message | 
	
		| kvb 
 
 
 Joined: 10 Jun 2002
 Posts: 18
 Location: Ковалько В.Б.
 
 
 
 | 
			
				|  Posted: 07 May 2004 08:43    Post subject: Реестр счетов-фактур :  SH_FACT->nnoper |   |  
				| 
 |  
				| Ситуация   : В месяц выписывается порядка 2000 накладных на отгрузку
 Учетная политика по оплате
 Внешний модуль :
 а) на основании накладных на отпуск в пакетном режиме
 генерирует счета-фактуры в  реестре продаж
 б) анализирует оплату и генерирует в пакетном режиме записи в
 книге продаж
 в) генерирует в пакетном режиме авансовые счета-фактуры,
 записи в книге покупок по авансовым счетам-фактурам и
 сторнирующие записи в книге покупок
 
 Проблема:
 При добавлении в реестр новой счет-фактуры стандартными способами БЭСТ-4 использует внутренний счетчик порядковых номеров. Находиться :    /ini/in_cash.dbf
 
 После формирования счет-фактуры (пример)
 
 /ini/in_cash.dbf
 
 Поля                Name                          Param1
 Значение         OPERSHFACT               Aa@
 
 /real/sh_fact.dbf
 
 Поле                                                  Nnoper
 Значение                                                  34
 
 Не подскажет ли кто секретные формулы преобразования
 Aa@     в     34      и наоборот
 
 
 P.S:  Если не взирая ни на что не трогать внутренний счетчик, а при добавлении записей внешними средствами инкрементировать Sh_fact->nnoper - возникают коллизии :
 nnoper увеличен а внутренний счетчик нет -> при добавлении стандартно в БЭСТ-4 новой счет-фактуры в нее пытаются попасть строки из счет-фактуры, сформированной внешними средствами.
 Правда индексация вроде бы решает данную проблему - но это долго и не есть хорошо.
 
 Заранее благодарен   kvb@knp.kem.ru      :roll
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Behemoth 
 
  
 Joined: 15 Mar 2002
 Posts: 155
 Location: Новиков Алексей Юрьевич
 Occupation: ПБОЮЛ
 Interests: Пермь
 
 | 
			
				|  Posted: 07 May 2004 16:20    Post subject: |   |  
				| 
 |  
				| Добрый день. 
 В свете тезиса "БЭСТ-4 - программа конструктор".
   
 Функция IncStep() с параметром "OPERSHFACT" возвращает следующий номер NNOPER и обновляет поле в ini_cash.
 _________________
 С уважением, Новиков Алексей.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| kvb 
 
 
 Joined: 10 Jun 2002
 Posts: 18
 Location: Ковалько В.Б.
 
 
 
 | 
			
				|  Posted: 11 May 2004 07:33    Post subject: |   |  
				| 
 |  
				| Спасибо ! Эта функция, безусловно, полезна !
 Но в данной ситуации, модули, выполняющие работы с реестрами счетов-фактур и книгой продаж являются внешними exe-файлами - так удобнее.
 Поэтому проблема остается открытой - необходимо знать сам алгоритм преобразования !!! Т.е. формулу ...
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| integral 
 
 
 Joined: 19 Jul 2002
 Posts: 378
 
 Occupation: ОАО "Интеграл"  инженер-программист
 Interests: Нефтекамск
 
 | 
			
				|  Posted: 11 May 2004 09:19    Post subject: |   |  
				| 
 |  
				| Можно попробовать использовать во внешней программе свой счетчик, начать с 9999999  и уменьшать его 9999998,9999997 и т.д. Таким образом счетчик БЭСТа и ваш нескоро пересекутся.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Яков 
 
  
 Joined: 04 Mar 2002
 Posts: 618
 Location: Яков
 Occupation: Экстремальная терапия бизнеса
 Interests: Владивосток
 
 | 
			
				|  Posted: 11 May 2004 09:56    Post subject: Re: Реестр счетов-фактур :  SH_FACT->nnoper |   |  
				| 
 |  
				|  	  | kvb wrote: |  	  | Внешний модуль : а) на основании накладных на отпуск в пакетном режиме
 генерирует счета-фактуры в  реестре продаж
 б) анализирует оплату и генерирует в пакетном режиме записи в
 книге продаж
 в) генерирует в пакетном режиме авансовые счета-фактуры,
 записи в книге покупок по авансовым счетам-фактурам и
 сторнирующие записи в книге покупок
 
 | 
 
 Продаёте, меняете или как?
 Очень было бы интересно взглянуть на исходники.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| kvb 
 
 
 Joined: 10 Jun 2002
 Posts: 18
 Location: Ковалько В.Б.
 
 
 
 | 
			
				|  Posted: 12 May 2004 05:10    Post subject: |   |  
				| 
 |  
				|  	  | integral wrote: |  	  | Можно попробовать использовать во внешней программе свой счетчик, начать с 9999999  и уменьшать его 9999998,9999997 и т.д. Таким образом счетчик БЭСТа и ваш нескоро пересекутся.
 | 
 
 
 Хорошая идея !  Но в этом случае после индексация внутренний счетчик принимает наибольшее значение из sh_fact->nnoper.
 А вот  когда свой счетчик уменьшаем с 0 до -9999999 , проблем абсолютно никаких нет - проверил - все корректно.
 Спасибо !
 Считаю тему закрытой !
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Яков 
 
  
 Joined: 04 Mar 2002
 Posts: 618
 Location: Яков
 Occupation: Экстремальная терапия бизнеса
 Interests: Владивосток
 
 | 
			
				|  Posted: 12 May 2004 10:00    Post subject: |   |  
				| 
 |  
				| Можно счетчик БЭСТа поставить в 900000 пусть дальше считает. И иметь незаполненный буфер, с текущего значения до 900000, который и можно использовать.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		|  |