BEST logo логотип компании БЭСТ - программы для бизнеса ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
ПОДДЕРЖКА
+7 (495) 775-66-76
consult@bestnet.ru
СКАЧАТЬ
Обновления
Дистрибутивы
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Главная  / Поддержка  / Форум  / Публичные форумы  / Программирование приложений  / Функция WDoc() не работает при компиляции в Диз приложений.

Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Функция WDoc() не работает при компиляции в Диз приложений.
 
Функция 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"

По этому принципу БЭСТ создает новый номер но проверка
по уникальности делается дополнительно в БЭСТе насколько
я понимаю.
Изменено: nordk - 01.11.2008 13:50:04
 
Цитата
FUNCTION WDoc(cField,xKey,lPere,cPre,nLen,lNoPre_,cTag,cPath) //PRIVATE pNextNum,pLastNum
//lPere!=NIL для смежного документа при перемещении
//lNoPre_ - не подставлять букву во вновь сформированный номер

Должна работать в складской DLL.
Для использования функции при запуске из главного меню попробуйте LoadLibrary("[имя файла].bdll"

По этому принципу БЭСТ создает новый номер но проверка
по уникальности делается дополнительно в БЭСТе насколько
я понимаю.

Меня, собственно и интересовало это самое [имя файла]. Какой именно? Я не в курсе. Похоже, sclad.bdll?

З.ы. сразу что-то не сообразил посмотреть названия *.bdll файлов в папке bin...
Изменено: Саак Шахламджян - 01.11.2008 14:57:59
 
Да, похоже она там и лежит.
Добавил:

Код
Memvar pLastNum,pNextNum,PATH_DBA
Public PATH_DBA:="D:\DB\Clean8\ZAPAS\ARC\"//так, во всяк случае написано при просмотре других плагинов чз отладчик
Private plastnum,pNextNum

Только она мне не очень понравилась.
Сдал продукцию - автоматом присволся № 273
Сдал еще раз - автоматом присволся № 274
Сдал еще раз, вручную - вручную присвоил номер 275
Сдал продукцию - какой номер присвоился не занаю, но Empty(oErr) - true (я так проверяю успешность создания документа). Полагаю, WDoc вернула 275.
Изменено: Саак Шахламджян - 01.11.2008 15:26:37
 
Вполне может быть.
Надо бы по индексному ключу проверку делать.
Вручную то выдаст диалог, что такой номер уже есть и не побрезгует.
Наверно тут надо организационн разделять ручные и не ручные документы или видами движений или кодами документов.
 
Цитата
Вполне может быть.
Надо бы по индексному ключу проверку делать.
Вручную то выдаст диалог, что такой номер уже есть и не побрезгует.
Наверно тут надо организационн разделять ручные и не ручные документы или видами движений или кодами документов.

Так и сделал. Но та причина по которой не хотел "делать этого сам" и произошла - кажется, я ошибся с тем по какому ключу и данным делать проверку. Хотя wdoc Тоже не спасает, там ведь тоже параметры надо знать наверняка. И есть разница между Sclad и AgentCode. В общем очень тщательно надо подойти к Вопросу.
не хотел по причине того, что WDOC является функцией разработчиков и при изменения (аплейтах) они буду "отвечать" за правильность номера (мало ли какие нововведения появятся).
 
Вы можете сделать если хотите свой собственный счетчик и собственный код документов. Тогда нумерация Ваших документов не будет зависеть от номеров созданных средствами БЭСТа и не будет пересекаться.
 
КЛЮЧ для проверки MDOC
 
Цитата
nordk пишет:
Вы можете сделать если хотите свой собственный счетчик и собственный код документов. Тогда нумерация Ваших документов не будет зависеть от номеров созданных средствами БЭСТа и не будет пересекаться.

По поводу своего ключа не совсем полностью уловил.

Если я Вас правильно понял:
1. Я сделал свой ключ (свою проверку на уник)
2. Тогда при стандартном вводе документов проверка будет происходить по-другому, верно?

Это может вызвать "несовместимость"!?
 
Уход от несовместимости - создание собственных видов движения или своих кодов документов.
Тогда по Вашим кодам документов будет Ваша нумерация а по типовому 001 будет БЭСТовская штатная
 
Цитата
nordk пишет:
Уход от несовместимости - создание собственных видов движения или своих кодов документов.
Тогда по Вашим кодам документов будет Ваша нумерация а по типовому 001 будет БЭСТовская штатная

Хм... Интересная мысль. Мне казалось, что эти документы нечто такое такое фундаментальное, что в принципе менять нельзя (ну или свое изобретать).

Но в таком случае это задача мне кажется очень и очень трудоемкой.
Да еще к тому же "ручной ввод", как с этим быть? Меня-то интересует "автоматические" документы, а у пользователей есть ручной ввод. И если "мои" документы будут одного вида, а "пользовательские" другого будет нехорошо, да? Как с этим быть? Я просто не знаю, что "там внутри" (как собственно сделаны документы, логика и пр.), поэтому и не понимаю как такое будет функционировать.
Изменено: Саак Шахламджян - 04.12.2008 11:14:06
 
ключевой индекс
UPPER(SCLAD+VID+TYPE+CODEDOC+NUMDOC)/
Если при ручной работе будет codedoc='001'
А у вас '002' - то у них свой нумерация, у вас своя и Вы никак уже не пересекаетесь.

Второй варианта
Если для ручного ввода будет один TYPE а у Вас другой - то Вы опять не пересекаетесь.
 
Цитата
nordk пишет:
ключевой индекс
UPPER(SCLAD+VID+TYPE+CODEDOC+NUMDOC)/
Если при ручной работе будет codedoc='001'
А у вас '002' - то у них свой нумерация, у вас своя и Вы никак уже не пересекаетесь.

Второй варианта
Если для ручного ввода будет один TYPE а у Вас другой - то Вы опять не пересекаетесь.

Вот что-то первый вариант не особо понимаю. А именно:
Что подразумевается по словом не пересекаемся?
Лично я понимаю, что если в реестр документов зайти (стандартный), то "мои" документы видны не будут, верно я понял?

(По поводу второго варианта - пока трогать не будем.)
Изменено: Саак Шахламджян - 04.12.2008 12:26:22
 
Уникальность номера документа БЭСТ отслеживает в рамках указанного ключа.
Ваши документы будут видны.
Сделайте 2 кода документов в справочнике.
И Вы врчуную сможете заводить и по первому и по второму коду.
И в случае одинаковых номеров для БЭСТа это будут разные документы в представлении БЭСТа
 
Цитата
nordk пишет:
Уникальность номера документа БЭСТ отслеживает в рамках указанного ключа.
Ваши документы будут видны.
Сделайте 2 кода документов в справочнике.
И Вы врчуную сможете заводить и по первому и по второму коду.
И в случае одинаковых номеров для БЭСТа это будут разные документы в представлении БЭСТа


Теперь ясно. Они в реестре отображаться будут, там по признаку типа документа идет, а уникальность проверяется еще и по виду документа.

Т.е. получается может быть у 2х документов одного типа один и тот же номер, при условии что они разных видов? Ив реестре будет видно 2 одинаковых номера, верно??? (меня просто это пугало, казалось такого быть не должно.)
 
Все именно так только у нас это называется код документа.
Начиная с БЭСТ-3 это увязывалось с шаблоном печатной формы, которую для этого кода документа
Страницы: 1
Читают тему (гостей: 1)