View previous topic :: View next topic |
Author |
Message |
Vnehaev
Joined: 13 Apr 2007 Posts: 18 Location: Нехаев Валерий Сергеевич Occupation: Программист Interests: Калининград
|
Posted: 23 Apr 2007 15:23 Post subject: |
|
|
Я тут смотрю в БЭСТЕ есть Переменная PNEXTNUM, ей можно как-нибудь воспользовать |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 23 Apr 2007 15:25 Post subject: |
|
|
Vnehaev wrote: | в зависимости от поставщиков она записывает накладные в устангвленный тип и вид движения, даже если открыт не
тот реестр с видом и типом движения |
Тока Вы пользуетесь функцией БЭСТа а она работает по тому виду движения, на котором стоит....
У Вас на самом дее 2 пути :
1. Я могу выложить описание функции и Вы дальше в ней ковыряетесь на предмет поиска параметров какие в нее передавать и получится ли передавать в принципе.... Может так оказаться, что она использует приват переменные, определенные в данный момент и это Вам тогда никак обойти не получится.... (но подозреваю что в Вашем решении это н единственная проблема с номерами дкументов).
2. Забываете о различии поставщиков в разрезе видов движени и делаете их в виде скажем кодов докумен |
|
Back to top |
|
|
Vnehaev
Joined: 13 Apr 2007 Posts: 18 Location: Нехаев Валерий Сергеевич Occupation: Программист Interests: Калининград
|
Posted: 23 Apr 2007 15:38 Post subject: |
|
|
Я выбираю 1-й вариант |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 23 Apr 2007 15:42 Post subject: |
|
|
Ок.
Вечром в объявлениях увидите топи |
|
Back to top |
|
|
Vnehaev
Joined: 13 Apr 2007 Posts: 18 Location: Нехаев Валерий Сергеевич Occupation: Программист Interests: Калининград
|
Posted: 25 Apr 2007 20:31 Post subject: |
|
|
А вот S_LIB_ADD - это что такое? У меня при компиляции ошибку выдает.... Может надо чтонибудь с #INCLUDE добави |
|
Back to top |
|
|
Behemoth
Joined: 15 Mar 2002 Posts: 155 Location: Новиков Алексей Юрьевич Occupation: ПБОЮЛ Interests: Пермь
|
Posted: 26 Apr 2007 07:37 Post subject: |
|
|
Добрый день.
Это константа.
#define S_LIB_EDIT 1 // pедактиpование
#define S_LIB_ADD 2 // дополнение
#define S_LIB_FILTER 0 // ввод знач. для фильтpации
Можете вставить в свою программу этот код или заменить символическое написание на числовое значени _________________ С уважением, Новиков Алексей. |
|
Back to top |
|
|
Марина
Joined: 27 Aug 2002 Posts: 501 Location: Кондрина Марина Александровна Occupation: ОАО БКО программист Interests: Боровичи Новгородской обл
|
Posted: 26 Apr 2007 11:50 Post subject: |
|
|
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 |
|
|
Vnehaev
Joined: 13 Apr 2007 Posts: 18 Location: Нехаев Валерий Сергеевич Occupation: Программист Interests: Калининград
|
Posted: 26 Apr 2007 11:56 Post subject: |
|
|
Я кажеться нашел значения в 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 |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 26 Apr 2007 12:00 Post subject: |
|
|
Значит проблема решена не до конца...
Попробуйте посмотреть куда Вы пишете номер и потом когда в БЭСТе
вы создаете документ по F4 в какую строчку он пишет следующий номер. Имеется ввиду memdat |
|
Back to top |
|
|
Vnehaev
Joined: 13 Apr 2007 Posts: 18 Location: Нехаев Валерий Сергеевич Occupation: Программист Interests: Калининград
|
Posted: 26 Apr 2007 12:12 Post subject: |
|
|
В мемдате по спецфункции пишу номер в строку с SR0000000000000AUTO10111 9211001, т.е. globaltask+IDENT_user+cVid+cType cSclad+cVid+cType+cCodeDoc, а по F4 номер записываеться в строку с SR0000000000000AUTO10111КОД СУММЫ В РЕЕСТРЕ, причем поле VALUE с какими-то кракозябрами. |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 26 Apr 2007 12:24 Post subject: |
|
|
Ну вот и ответ - в разные строки смотрите, потому по F4 он собственно и не видит прибавления Ваших номеров
А коркозябры случайно не 8 бай |
|
Back to top |
|
|
Vnehaev
Joined: 13 Apr 2007 Posts: 18 Location: Нехаев Валерий Сергеевич Occupation: Программист Interests: Калининград
|
Posted: 26 Apr 2007 12:52 Post subject: |
|
|
nordk wrote: | Ну вот и ответ - в разные строки смотрите, потому по F4 он собственно и не видит прибавления Ваших номеров
А коркозябры случайно не 8 байт ? |
Не знаю там полоски и буква Ё, а при переходе на поле VALUE все пропадает. Эту проблемму я и раньше видел, но как получить при скобе в NWDOC текст "КОД СУММЫ В РЕЕСТРЕ" ? И почему моя спецфункция тогда видит номера по F4? |
|
Back to top |
|
|
Vnehaev
Joined: 13 Apr 2007 Posts: 18 Location: Нехаев Валерий Сергеевич Occupation: Программист Interests: Калининград
|
Posted: 26 Apr 2007 13:08 Post subject: |
|
|
Не ужели в cPre надо писать текстом "....КОД СУММЫ В РЕЕСТРЕ"? |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 26 Apr 2007 14:23 Post subject: |
|
|
Напишите если это действительно в этой стро |
|
Back to top |
|
|
Vnehaev
Joined: 13 Apr 2007 Posts: 18 Location: Нехаев Валерий Сергеевич Occupation: Программист Interests: Калининград
|
Posted: 27 Apr 2007 11:04 Post subject: |
|
|
А нельзя ли по подробнее объяснить о кракозябрах в поле value в таблице MEMDAT.DBF просто у меня теперь две одинаковых строки но в одной кракозябры а в другой номер последней импортированной накладной. Однако по F4 все равно создаются номера без учета номеров после импорта накладных |
|
Back to top |
|
|
|