Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Следующий номер накладной?!!!
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4
View previous topic :: View next topic  
Author Message
Vnehaev



Joined: 13 Apr 2007
Posts: 18
Location: Нехаев Валерий Сергеевич
Occupation: Программист
Interests: Калининград

PostPosted: 23 Apr 2007 15:23    Post subject: Reply with quote

Я тут смотрю в БЭСТЕ есть Переменная PNEXTNUM, ей можно как-нибудь воспользовать
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 23 Apr 2007 15:25    Post subject: Reply with quote

Vnehaev wrote:
в зависимости от поставщиков она записывает накладные в устангвленный тип и вид движения, даже если открыт не
тот реестр с видом и типом движения


Тока Вы пользуетесь функцией БЭСТа а она работает по тому виду движения, на котором стоит....
У Вас на самом дее 2 пути :
1. Я могу выложить описание функции и Вы дальше в ней ковыряетесь на предмет поиска параметров какие в нее передавать и получится ли передавать в принципе.... Может так оказаться, что она использует приват переменные, определенные в данный момент и это Вам тогда никак обойти не получится.... (но подозреваю что в Вашем решении это н единственная проблема с номерами дкументов).
2. Забываете о различии поставщиков в разрезе видов движени и делаете их в виде скажем кодов докумен
Back to top
View user's profile Send private message Send e-mail
Vnehaev



Joined: 13 Apr 2007
Posts: 18
Location: Нехаев Валерий Сергеевич
Occupation: Программист
Interests: Калининград

PostPosted: 23 Apr 2007 15:38    Post subject: Reply with quote

Я выбираю 1-й вариант
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 23 Apr 2007 15:42    Post subject: Reply with quote

Ок.
Вечром в объявлениях увидите топи
Back to top
View user's profile Send private message Send e-mail
Vnehaev



Joined: 13 Apr 2007
Posts: 18
Location: Нехаев Валерий Сергеевич
Occupation: Программист
Interests: Калининград

PostPosted: 25 Apr 2007 20:31    Post subject: Reply with quote

А вот S_LIB_ADD - это что такое? У меня при компиляции ошибку выдает.... Может надо чтонибудь с #INCLUDE добави
Back to top
View user's profile Send private message
Behemoth



Joined: 15 Mar 2002
Posts: 155
Location: Новиков Алексей Юрьевич
Occupation: ПБОЮЛ
Interests: Пермь

PostPosted: 26 Apr 2007 07:37    Post subject: Reply with quote

Добрый день.

Это константа.
#define S_LIB_EDIT 1 // pедактиpование
#define S_LIB_ADD 2 // дополнение
#define S_LIB_FILTER 0 // ввод знач. для фильтpации

Можете вставить в свою программу этот код или заменить символическое написание на числовое значени
_________________
С уважением, Новиков Алексей.
Back to top
View user's profile Send private message Send e-mail
Марина



Joined: 27 Aug 2002
Posts: 501
Location: Кондрина Марина Александровна
Occupation: ОАО БКО программист
Interests: Боровичи Новгородской обл

PostPosted: 26 Apr 2007 11:50    Post subject: Reply with quote

Vnehaev wrote:

К стати. С этим кодом номер документа меняеться в зависимости от типа, вида и кода операции Type=1, Vid=1, codeoper=01. А в бэсте идет генерация номеров накладных только от типа и вида движения. Или я ошибаюсь?


В этом коде по-моему зафиксирован Codedoc, а не codeoper (мне действительно так надо). В реестре накладных запросто можно завести две накладные с одним и тем же номером, но с разным Codedoc.


Last edited by Марина on 26 Apr 2007 15:14; edited 1 time in total
Back to top
View user's profile Send private message
Vnehaev



Joined: 13 Apr 2007
Posts: 18
Location: Нехаев Валерий Сергеевич
Occupation: Программист
Interests: Калининград

PostPosted: 26 Apr 2007 11:56    Post subject: Reply with quote

Я кажеться нашел значения в memdate.dbf этих страшных SR00000000... Это значение переменных: GLOBALTASK+IDENT_USER+pVID+pTYPE. Но текст "КОД СУММЫ В РЕЕСТРЕ" заменился на скоб NWDOC: cSclad+cVid+cType...

Исправил в функции:

Code:
FUNCTION New1NumDoc(cSclad,cVid,cType,cCodeDoc)
//----------------------------------------------------------------------------//
// Генерация уникального номера документа
LOCAL cNumDoc

   MDOC1->(dbPush(),SetScope())
altd()
   cNumDoc := MDOC1->(NWDOC("NUMDOC",UPPER(cSclad+cVid+cType+cCodeDoc),globaltask+ident_user+cVid+ctype,"MDOC","memdat1"))
   IF  !MDOC1->(NVDOC(S_LIB_ADD,,"NUMDOC",UPPER(cSclad+cVid+cType+cCodeDoc),globaltask+ident_user+cVid+ctype,"MDOC",.T.,"memdat1",{|x| IF(x != NIL,cNumDoc := x,cNumDoc) },.T.))
     NControlMem(UPPER(cSclad+cVid+cType+cCodeDoc),globaltask+ident_user+cVid+ctype,"memdat1",.T.)
     cNumDoc := MDOC1->(NWDOC("NUMDOC",UPPER(cSclad+cVid+cType+cCodeDoc),globaltask+ident_user+cVid+ctype,"MDOC","memdat1"))
   ENDIF
   MDOC1->(dbPop())
RETURN cNumDoc


И теперь при импорте у меня накладные не пересекаються, однако при стандартном вводе накладной номер ставиться по предыдущему номеру накладной введенной по F4. Вроде проблемма решена, т.к. накладные не пересекаються. Но неудобство осталось. Приходится перед введением накладной по F4 смотреть последний номер накладной.
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 26 Apr 2007 12:00    Post subject: Reply with quote

Значит проблема решена не до конца...
Попробуйте посмотреть куда Вы пишете номер и потом когда в БЭСТе
вы создаете документ по F4 в какую строчку он пишет следующий номер. Имеется ввиду memdat
Back to top
View user's profile Send private message Send e-mail
Vnehaev



Joined: 13 Apr 2007
Posts: 18
Location: Нехаев Валерий Сергеевич
Occupation: Программист
Interests: Калининград

PostPosted: 26 Apr 2007 12:12    Post subject: Reply with quote

В мемдате по спецфункции пишу номер в строку с SR0000000000000AUTO10111 9211001, т.е. globaltask+IDENT_user+cVid+cType cSclad+cVid+cType+cCodeDoc, а по F4 номер записываеться в строку с SR0000000000000AUTO10111КОД СУММЫ В РЕЕСТРЕ, причем поле VALUE с какими-то кракозябрами.
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 26 Apr 2007 12:24    Post subject: Reply with quote

Ну вот и ответ - в разные строки смотрите, потому по F4 он собственно и не видит прибавления Ваших номеров
А коркозябры случайно не 8 бай
Back to top
View user's profile Send private message Send e-mail
Vnehaev



Joined: 13 Apr 2007
Posts: 18
Location: Нехаев Валерий Сергеевич
Occupation: Программист
Interests: Калининград

PostPosted: 26 Apr 2007 12:52    Post subject: Reply with quote

nordk wrote:
Ну вот и ответ - в разные строки смотрите, потому по F4 он собственно и не видит прибавления Ваших номеров
А коркозябры случайно не 8 байт ?


Не знаю там полоски и буква Ё, а при переходе на поле VALUE все пропадает. Эту проблемму я и раньше видел, но как получить при скобе в NWDOC текст "КОД СУММЫ В РЕЕСТРЕ" ? И почему моя спецфункция тогда видит номера по F4?
Back to top
View user's profile Send private message
Vnehaev



Joined: 13 Apr 2007
Posts: 18
Location: Нехаев Валерий Сергеевич
Occupation: Программист
Interests: Калининград

PostPosted: 26 Apr 2007 13:08    Post subject: Reply with quote

Не ужели в cPre надо писать текстом "....КОД СУММЫ В РЕЕСТРЕ"?
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 26 Apr 2007 14:23    Post subject: Reply with quote

Напишите если это действительно в этой стро
Back to top
View user's profile Send private message Send e-mail
Vnehaev



Joined: 13 Apr 2007
Posts: 18
Location: Нехаев Валерий Сергеевич
Occupation: Программист
Interests: Калининград

PostPosted: 27 Apr 2007 11:04    Post subject: Reply with quote

А нельзя ли по подробнее объяснить о кракозябрах в поле value в таблице MEMDAT.DBF просто у меня теперь две одинаковых строки но в одной кракозябры а в другой номер последней импортированной накладной. Однако по F4 все равно создаются номера без учета номеров после импорта накладных
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4 All times are GMT + 4 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru