Функция WDoc() не работает в проектах, написанных в дизайнере приложений. Бест при подключении дллки с этой ф-ии выдает ошибку что нет такой.
Использовал её также как и в примере:
oDoc:NumDoc:=MDoc->(WDoc('NumDoc',UPPER(pSclad+pVid+pType+oDoc:CodeDoc))). В плагинах, написанных в XBA редакторе работает.
Может быть нужно длл подгрузить какую-нибудь. Если да, то какую???
Если нет, то хотелось бы узнать есть ли аналог или принцип её работы, чтобы полностью повторить её работу.
И самый главный : "обходит" ли данная функция возможность одновременного получения одного и того же номера?
FUNCTION WDoc(cField,xKey,lPere,cPre,nLen,lNoPre_,cTag,cPath) //PRIVATE pNextNum,pLastNum
//lPere!=NIL для смежного документа при перемещении
//lNoPre_ - не подставлять букву во вновь сформированный номер
Должна работать в складской DLL.
Для использования функции при запуске из главного меню попробуйте LoadLibrary("[имя файла].bdll"
По этому принципу БЭСТ создает новый номер но проверка
по уникальности делается дополнительно в БЭСТе насколько
я понимаю.
FUNCTION WDoc(cField,xKey,lPere,cPre,nLen,lNoPre_,cTag,cPath) //PRIVATE pNextNum,pLastNum
//lPere!=NIL для смежного документа при перемещении
//lNoPre_ - не подставлять букву во вновь сформированный номер
Должна работать в складской DLL.
Для использования функции при запуске из главного меню попробуйте LoadLibrary("[имя файла].bdll"
По этому принципу БЭСТ создает новый номер но проверка
по уникальности делается дополнительно в БЭСТе насколько
я понимаю.
Меня, собственно и интересовало это самое [имя файла]. Какой именно? Я не в курсе. Похоже, sclad.bdll?
З.ы. сразу что-то не сообразил посмотреть названия *.bdll файлов в папке bin...
Memvar pLastNum,pNextNum,PATH_DBA
Public PATH_DBA:="D:\DB\Clean8\ZAPAS\ARC\"//так, во всяк случае написано при просмотре других плагинов чз отладчик
Private plastnum,pNextNum
Только она мне не очень понравилась.
Сдал продукцию - автоматом присволся № 273
Сдал еще раз - автоматом присволся № 274
Сдал еще раз, вручную - вручную присвоил номер 275
Сдал продукцию - какой номер присвоился не занаю, но Empty(oErr) - true (я так проверяю успешность создания документа). Полагаю, WDoc вернула 275.
Вполне может быть.
Надо бы по индексному ключу проверку делать.
Вручную то выдаст диалог, что такой номер уже есть и не побрезгует.
Наверно тут надо организационн разделять ручные и не ручные документы или видами движений или кодами документов.
Вполне может быть.
Надо бы по индексному ключу проверку делать.
Вручную то выдаст диалог, что такой номер уже есть и не побрезгует.
Наверно тут надо организационн разделять ручные и не ручные документы или видами движений или кодами документов.
Так и сделал. Но та причина по которой не хотел "делать этого сам" и произошла - кажется, я ошибся с тем по какому ключу и данным делать проверку. Хотя wdoc Тоже не спасает, там ведь тоже параметры надо знать наверняка. И есть разница между Sclad и AgentCode. В общем очень тщательно надо подойти к у.
не хотел по причине того, что WDOC является функцией разработчиков и при изменения (аплейтах) они буду "отвечать" за правильность номера (мало ли какие нововведения появятся).
Вы можете сделать если хотите свой собственный счетчик и собственный код документов. Тогда нумерация Ваших документов не будет зависеть от номеров созданных средствами БЭСТа и не будет пересекаться.
nordk пишет:
Вы можете сделать если хотите свой собственный счетчик и собственный код документов. Тогда нумерация Ваших документов не будет зависеть от номеров созданных средствами БЭСТа и не будет пересекаться.
По поводу своего ключа не совсем полностью уловил.
Если я Вас правильно понял:
1. Я сделал свой ключ (свою проверку на уник)
2. Тогда при стандартном вводе документов проверка будет происходить по-другому, верно?
Уход от несовместимости - создание собственных видов движения или своих кодов документов.
Тогда по Вашим кодам документов будет Ваша нумерация а по типовому 001 будет БЭСТовская штатная
nordk пишет:
Уход от несовместимости - создание собственных видов движения или своих кодов документов.
Тогда по Вашим кодам документов будет Ваша нумерация а по типовому 001 будет БЭСТовская штатная
Хм... Интересная мысль. Мне казалось, что эти документы нечто такое такое фундаментальное, что в принципе менять нельзя (ну или свое изобретать).
Но в таком случае это задача мне кажется очень и очень трудоемкой.
Да еще к тому же "ручной ввод", как с этим быть? Меня-то интересует "автоматические" документы, а у пользователей есть ручной ввод. И если "мои" документы будут одного вида, а "пользовательские" другого будет нехорошо, да? Как с этим быть? Я просто не знаю, что "там внутри" (как собственно сделаны документы, логика и пр.), поэтому и не понимаю как такое будет функционировать.
ключевой индекс
UPPER(SCLAD+VID+TYPE+CODEDOC+NUMDOC)/
Если при ручной работе будет codedoc='001'
А у вас '002' - то у них свой нумерация, у вас своя и Вы никак уже не пересекаетесь.
Второй варианта
Если для ручного ввода будет один TYPE а у Вас другой - то Вы опять не пересекаетесь.
nordk пишет:
ключевой индекс
UPPER(SCLAD+VID+TYPE+CODEDOC+NUMDOC)/
Если при ручной работе будет codedoc='001'
А у вас '002' - то у них свой нумерация, у вас своя и Вы никак уже не пересекаетесь.
Второй варианта
Если для ручного ввода будет один TYPE а у Вас другой - то Вы опять не пересекаетесь.
Вот что-то первый вариант не особо понимаю. А именно:
Что подразумевается по словом не пересекаемся?
Лично я понимаю, что если в реестр документов зайти (стандартный), то "мои" документы видны не будут, верно я понял?
(По поводу второго варианта - пока трогать не будем.)
Уникальность номера документа БЭСТ отслеживает в рамках указанного ключа.
Ваши документы будут видны.
Сделайте 2 кода документов в справочнике.
И Вы врчуную сможете заводить и по первому и по второму коду.
И в случае одинаковых номеров для БЭСТа это будут разные документы в представлении БЭСТа
nordk пишет:
Уникальность номера документа БЭСТ отслеживает в рамках указанного ключа.
Ваши документы будут видны.
Сделайте 2 кода документов в справочнике.
И Вы врчуную сможете заводить и по первому и по второму коду.
И в случае одинаковых номеров для БЭСТа это будут разные документы в представлении БЭСТа
Теперь ясно. Они в реестре отображаться будут, там по признаку типа документа идет, а уникальность проверяется еще и по виду документа.
Т.е. получается может быть у 2х документов одного типа один и тот же номер, при условии что они разных видов? Ив реестре будет видно 2 одинаковых номера, верно??? (меня просто это пугало, казалось такого быть не должно.)