Бэст4 "вылетает " при попытке запустить скомпилированный плагин (Win Server 2003 x-64)
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
15.04.2013 21:10:36
Цитата
gabov пишет:
Здравствуйте!
Операционная система Win Server 2003 x-64
Бэст 4 SP 98
При попытке запустить скомпилировонный простейший плагин :
Private a
altd()
a:='1'
sayandwait(a)
Бэст вылетает в главное меню.
Добрый день!
Повторил на Win8x64, все работает.
У вас на других ОС работает?
Попробуйте в конце поставить возврат.
Private a
altd()
a:='1'
sayandwait(a)
Return 1
Тормозит БЭСТ при одной операции, Бухгалтеры сильно недовольны - решения дилер не знает
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
05.12.2012 21:18:36
Цитата
Nikolai Gorbatchev пишет:
695030_820_27.08.2012_10003001.txt
Не нашел сам файл импортируемой выписки, тоже положите на FTP
695030_820_27.08.2012_10003001.txt
Тормозит БЭСТ при одной операции, Бухгалтеры сильно недовольны - решения дилер не знает
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
05.12.2012 00:44:32
Цитата
Nikolai Gorbatchev пишет:
Здравствуйте.
Я залил базу на ФТП - папка со словом MINSK.
Еще инфо, может поможет при рассмотрении. Тормозит только при записи хозяйственных операций ДОХОД, при РАСХОДЕ и во всех других случаях работает нормально.
Добрый день!
Тормозов не наблюдается.
База в папке MINSK MESI ?
Или мы не то смотрим?
Какую конкретно проводку надо ввести?
На вирус проверяли?
Акты о выполненении работ услуг
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
28.11.2012 18:46:47
Цитата
А Nemo пишет:
Здравствуйте!
Захожу в акты выполненных работ услуг (Продажи.Клиенты), открываю любой документ, прохожу проле счет-фактура и получаю ошибку. Ругается на какой-то индекс или не может создать индекс... не понятно. Помогите, разобраться, плиз.
Картинки прилагаю
и еще
БЭСТ-5 3.4 SP 29.8
Добрый день!
Еще как вариант. Не может создать временный индекс. Посмотрите, куда указывают переменные окружения TEMP и TMP,они должны указывать на существующую папку, или возможно там закончилась дисковая память.
GenPro, GenPro
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
17.11.2012 00:42:56
Цитата
NotWar пишет:
Цитата
nordk пишет:
Цитата
NotWar пишет:
mdoc->(setscope())
только потом скоп обратно возвратить не забудьте
Кабы знать точный скоп до этого.
Хотя можно, конечно, выйти из Бэста и снова зайти...
Функция SetScope() возвращает предыдущий скоп.
Стандартный ход такой:
aScope:=SetScope() // снятие скопа (можно также сразу установить новый)
........
SetScope(aScope) //воcстановление
OLEDB или ODBC,, что лучше использовать для доступа к БД Visual FoxPro?
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
09.09.2012 21:27:59
Цитата
itman пишет:
Собственно в теме.
Какой способ доступа к данным (только для чтения) БЭСТ-5 рекомендован?
Сравнивал по скорости - ничем не отличаются.
Да, и по нашим опытам по скорости примерно одинаково.
Если писать что-то новое, то наверное лучше OLEDB.
Быстродействие работы программы.
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
26.04.2012 20:18:35
Цитата
Радик Шакиров пишет:
И Б4 и Б5 у меня неплохо работают в терминале и на рабочей станции XP/Win7(pro). Ничем не хуже сервера.
Я, как бывший программист на VFP, тоже как-то пытался донести свои мысли до разработчиков по поводу быстродействия.
А именно, сокращения внутри системы применения фильтров, релейшн, пересмотр структур индексов, придерживаться технологии rashmore и т.д.
К сожалению, меня даже не выслушали.
Очень странные обвинения... Именно такие методы мы и применяем... И по-моему мы с Вами говорили как-то о этом... Кто Вас не выслушал?
Получение данных после записи документа в Кадрах, Плавающие алиасы в Кадрах, возможно ли зафиксироваться?
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
20.02.2012 20:13:22
Цитата
nordk пишет:
Ну собственно у меня только одна мысль в этом направлении имеется.
Думаю выступить с предложением к разработчику, что в графических окнах при обращению к плагину по событию попросить создавать в области переменных массив с указателями на каждую графическую форму, которые открыты в данной точке запуска программы.
Имея указатель на форму, с которой идет работа Вам будет проще работать с ней.
Есть такая переменная
public oFrmReeGrForPlugins
Доступ к реестру из пользовательской программы
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
20.01.2012 19:14:03
Цитата
itman пишет:
Возможен ли доступ к системному реестру из пользовательского приложения.
Необходимо проверить наличие ветки реестра?
Примерно так:
#include "xbpreg.ch"
#define BESTREGKEY "SOFTWARE\BEST\BEST5\"
cBestRegKey:="SOFTWARE\BEST\BEST5\34"
hKey := 0
if REGOPENKEYEX(HKEY_LOCAL_MACHINE,cBestRegKey, 0, KEY_READ, @hKey) != 0 //только на чтение
ErrorMsg('Не удалось открыть ключ реестра ' + cBestRegKey)
return .F.
endif
nVerSP:=GetRegistryValue("SP") //установленный SP
static function GetRegistryValue(vName)
local vtype := 0, vdata := 0, vcbdata := 0
REGQUERYVALUEEX(hKey, vName, 0, @vtype, @vdata, @vcbdata)
DO CASE
CASE vtype == REG_SZ
vData := SUBSTR( vData, 1, vcbdata - 1 )
CASE vtype == REG_DWORD
vData := BIN2L( vData )
ENDCASE
return vdata
Вылетает в Учет закупок
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
01.10.2011 12:22:10
Цитата
AndyI пишет:
*** Сетевая / Версия 12.01/01[SP83] от 05/09/11/ Хозрасчетная ***
Учет материальных запасов -> Учет закупок -> Ведение книги покупок -> Книга покупок ->
F6 ставим фильтр по "Дата счета-фактуры." -> входим в любой документ -> ESC
Имеем вылет:
Что скажут разработчики?
Добрый день!
Спасибо за сигнал. Исправление выйдет в ближайшем пакете. Сейчас можно взять отсюда:
Вылетает в Учет закупок
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
18.09.2011 23:08:31
Цитата
AndyI пишет:
Цитата
Александр Титов пишет:
Если лог соответствует ошибке, то дело в нем. Посмотрите, есть ли у него индексный файл, попробуйте проиндексироваться из настройки, предварительно удалив plan0.cdx. Поищите дубль файла plan0.dbf в корневой части БЭСТа или там где где находятся *.exe
Сори за уточнение.
Дублей нет.
Далее:
rar a -r -df -m0 RM_CDX C:\BEST\B4_PLUS\BASE_0610\*.cdx
.\BIN\INIT.EXE index L:000005
P.S.
Базу получил, ответ письмом.
Вылетает в Учет закупок
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
15.09.2011 15:49:36
Цитата
AndyI пишет:
Цитата
Александр Титов пишет:
Бодрое утро!
PLAN0.dbf не индексирован.
Думаю не в нем дело так-как если стереть из него все записи суть проблемы не меняется.
Если лог соответствует ошибке, то дело в нем. Посмотрите, есть ли у него индексный файл, попробуйте проиндексироваться из настройки, предварительно удалив plan0.cdx. Поищите дубль файла plan0.dbf в корневой части БЭСТа или там где где находятся *.exe
Прошу убрать altd() в smallbas.prg
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
14.09.2011 14:09:26
Цитата
Алексей Новиков пишет:
Добрый день.
БЭСТ-5 версии 3.4SP26HF18
Кто-то оставил altd() в исходнике main\smallbas.prg. Уберите, пожалуйста.
Неудобно отлаживать плагины в групповых операциях, отладчик всё время цепляется за smallbas.prg
И вообще, оставленные кодером вызовы altd() напрягают и в других модулях.
Добрый день!
Это не в altd() дело. Просто в хотфикс попали некоторые bdll с отладчиком. На обычную работу это не оказывает влияния, а при отладке плагинов может вызывать неудобство. Исправим.
Вылетает в Учет закупок
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
14.09.2011 08:13:17
Цитата
AndyI пишет:
*** Сетевая / Версия 12.01/01[SP83] от 05/09/11/ Хозрасчетная ***
Следующий пример кода вызывает тихий вылет БЭСТ-5 на втором запуске.
Первый раз плагин отрабатывается штатно, на втором запуске срыв происходит в момент создания объекта в точке oObject:=uObject():new()
Столкнулся в кассе, попробовал в складе - тот же эффект. Вроде такой проблемы раньше не было. По крайней мере, нашёл у себя немало плагинов с объектами.
umain()
return
function umain()
local oObject
oObject:=uObject():new()
sayandwait('Проехали.')
return nil
#INCLUDE "C:\BEST534\Include\hbclass.ch"
CLASS uObject
EXPORTED:
VAR aData
ENDCLASS
Цитата
Александр Титов пишет:
Цитата
Алексей Новиков пишет:
Добрый день.
Следующий пример кода вызывает тихий вылет БЭСТ-5 на втором запуске.
Первый раз плагин отрабатывается штатно, на втором запуске срыв происходит в момент создания объекта в точке oObject:=uObject():new()
Столкнулся в кассе, попробовал в складе - тот же эффект. Вроде такой проблемы раньше не было. По крайней мере, нашёл у себя немало плагинов с объектами.
umain()
return
function umain()
  local oObject
  oObject:=uObject():new()
  sayandwait('Проехали.')
return nil
#INCLUDE "C:\BEST534\Include\hbclass.ch"
CLASS uObject
  EXPORTED:
    VAR aData
ENDCLASS
Ok, спасибо, посмотрим
Цитата
Алексей Новиков пишет:
Добрый день.
Следующий пример кода вызывает тихий вылет БЭСТ-5 на втором запуске.
Первый раз плагин отрабатывается штатно, на втором запуске срыв происходит в момент создания объекта в точке oObject:=uObject():new()
Столкнулся в кассе, попробовал в складе - тот же эффект. Вроде такой проблемы раньше не было. По крайней мере, нашёл у себя немало плагинов с объектами.
umain()
return
function umain()
local oObject
oObject:=uObject():new()
sayandwait('Проехали.')
return nil
#INCLUDE "C:\BEST534\Include\hbclass.ch"
CLASS uObject
EXPORTED:
VAR aData
ENDCLASS
Добрый день!
В плагине нельзя объявлять класс.
Можно использовать класс объявленный в bdll.
Странный Alias
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
31.08.2011 19:15:40
Цитата
Геннадий Симонович пишет:
Насколько я понял, происходит вбрасывание отдельных полей таблицы myvip во временную таблицу tmpfile . Но на первой же строчке после addrec() происходит ошибка "Переменная не существует":
Код
...
private tmpfile:=alias()
...
do while !eof()
(tmpfile)->(addrec())
(tmpfile)->DP:=myvip->DP
(tmpfile)->ND:=myvip -> ND
(tmpfile)->SCHK:=myvip -> SCHK
(tmpfile)->SD:=myvip -> SD
(tmpfile)->SK:=myvip -> SK
(tmpfile)->NP:=myvip -> NP
(tmpfile)->KOD:=myvip -> KOD
(tmpfile)->(f_dbunlock())
dbskip()
enddo
?(tmpfile) отвечает "feval"
Таблица myvip, судя по показаниям монитора, подключается и функционирует нормально.
Как поправить?
Надо открыть таблицу функцией netuse(), или перейти в нее с помощью dbselectarea(), если она открыта.
Функция ALIAS() возвращает текущую рабочую область, она действительно соответствует FEVAL, то есть Вы пытаетесь писать в таблицу FEVAL.dbf, а там нет таких полей.
Ошибки при работе Бэст 5, Ошибки при запуске какого-нибудь модуля
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
30.08.2011 15:05:03
Цитата
Роман Лутошкин пишет:
Добрый день! При запуске приложений возникает ошибка:
DELPHI:BADI.DLL:
(51);ERRORHANDLER
(25);(b)BEST5_MAIN_FUNCTION
(0);DBCREATE
(80);CREATMETKA
(327);ACCOUNTS
(102);(b)CRTRUN
(102);CRTRUN
(99);(b)BEST5_MAIN_FUNCTION
(99);BEST5_MAIN_FUNCTION
(0);(b)dynvmEval
(0);(B)
Приложение: DBFCDX
Код: 1004
Операция:
Описание: Ошибка создания
Эта ошибка возникает не постоянно!!!!
Подскажите, что сделать!
Добрый день!
Ошибка при создании файла во временной папке: возможно не хватает дисковой памяти, возможно вирус-антивирус блокирует создание временного файла. Проверьте, куда указывает переменная среды TEMP и TMP, они должны указывать на существующую папку. В антивирусе отключите сканирование файлов dbf,cdx,fpt.
Переполнение массива, После установки обновления 1-81 выходит ошибка Переполнение массива наверное количество аргументов ....
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
21.08.2011 15:44:02
Цитата
Сергей Николаевич пишет:
-------------------------- Environmental Information --------------------------
Arguments .......: [ 1] = Type: A Val: { Array of 1 Items } [ 2] = Type: N Val: 0
Involved File ...:
Dos Error Code ..: 0
Trace Through:
----------------
LOADLABEL : 685 in Module: util1.prg
DOSSAVE$ : 336 in Module: initbest.prg
Скорее всего, слетела авторизация. Попробуйте отключить авторизацию доступа, удалить файл pro\login.pro, потом снова включить авторизацию и вновь завести пользователей. При этом login.pro должен образоваться вновь.
Переполнение массива, После установки обновления 1-81 выходит ошибка Переполнение массива наверное количество аргументов ....
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
15.08.2011 09:44:16
Цитата
Сергей Николаевич пишет:
Доброго времени суток. Подскажите пожалуйста как решить проблему, накатил sp 1-81 вышла ошибка прикрепил снимок. Спасибо.
Как правило, при возникновении ошибки в корне БЭСТа образуется error.log, покажите его содержимое, тогда сможем разобраться.
Использование объектов в плагинах для БЭСТ-5
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
15.08.2011 09:34:53
Цитата
Алексей Новиков пишет:
Добрый день.
Следующий пример кода вызывает тихий вылет БЭСТ-5 на втором запуске.
Первый раз плагин отрабатывается штатно, на втором запуске срыв происходит в момент создания объекта в точке oObject:=uObject():new()
Столкнулся в кассе, попробовал в складе - тот же эффект. Вроде такой проблемы раньше не было. По крайней мере, нашёл у себя немало плагинов с объектами.
umain()
return
function umain()
local oObject
oObject:=uObject():new()
sayandwait('Проехали.')
return nil
#INCLUDE "C:\BEST534\Include\hbclass.ch"
CLASS uObject
EXPORTED:
VAR aData
ENDCLASS
Ok, спасибо, посмотрим
Использование оператора CASE в отчетах БЭСТ 5
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
11.08.2011 13:10:34
Цитата
ОАО КРССУ пишет:
Уважаемые разработчики и консультанты, помогите пожалуйста.
Возникла необходимость сделать отработку значений по оператору CASE.
Но вот синтаксис говорит:
Код
case (Ошибка здесь: Need ":=" here)combobox1.itemindex do
0: memo145.Lines.Add('0');
1: memo145.Lines.Add('1');
2: memo145.Lines.Add('2');
end;
Как правильно описать выражение?
Для выбора можно использовать конструкции CASE и SWITCH.
Такой синтаксис больше подходит под оператор SWITCH, CASE имеет несколько другой формат, вот примеры правильного написания этих операторов:
SWITCH cType
CASE "N"
x:=STR(x,nLen)
EXIT
CASE "D"
x:=DTOS(x)
EXIT
CASE "L"
x:=IF(x,"T","F")
EXIT
END
do case
case cType=='N'
cOrdFor := ::DataStruct[i-3,1]+[==]+aParamValues[i]
case cType=='L'
if aParamValues[i]
cOrdFor := ::DataStruct[i-3,1]
else
cOrdFor := [!]+::DataStruct[i-3,1]
endif
otherwise
cOrdFor := ::DataStruct[i-3,1]+[==']+aParamValues[i]+[']
endcase
Передача в Excel КНИГИ ПРОДАЖ
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
11.08.2011 12:52:24
Цитата
Александр Гершанов пишет:
Cсылка на этот файл " tovar из PLGL11 " - это папка TOVAR из рабочей БД БЭСТ4+ СП 79. Здесь выходим на ошибку :
Cсылка на этот файл "tovar из PLGL11_07_13 " - это папка TOVAR из архивной копии БД БЭСТ4+ СП 79. В эту папку я кладу файлы BOOK, sh_fact и s_kredit из рабочей БД . В этом случае книга формируется штатно
Не выхожу на ошибку. Положите еще раз папки tovar\ real\ ini\ sclad\ и корневую часть базы, на которой происходит ошибка. Или всю базу.
Передача в Excel КНИГИ ПРОДАЖ
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
09.08.2011 18:18:40
Цитата
Александр Гершанов пишет:
Недавно главбух попыталась напечатать КНИГУ ПОКУПОК. И там то же самое. Так же Excel (и ДОС и Блокнот) пытается создать колонок слишком многою........
Посылаю 2 архива "tovar из PLGL11" - это папка TOVAR из рабочей БД БЭСТ4+ СП 79. Здесь выходим на ошибку
"tovar из PLGL11_07_13" - это папка TOVAR из архивной копии БД БЭСТ4+ СП 79. В эту папку я кладу файлы BOOK, sh_fact и s_kredit из рабочей БД . В этом случае книга формируется штатно
Туплю или не понял: "посылаю..." - это куда? Где искать?
Передача в Excel КНИГИ ПРОДАЖ
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
27.07.2011 15:15:45
Цитата
Александр Гершанов пишет:
Почему то текст сюда не копируется, а прикрепить можно только архивы
Добрый день!
Судя по логу, программа пытается сформировать очень много колонок, и Ексель падает. Чтобы понять, почему так происходит, нужна ваша база.
Как поправить программу в FileEval?
Administrator
Сообщений: Регистрация: 29.10.2007
Москва, Компания "БЭСТ"
26.07.2011 14:46:48
Цитата
Александр Синенков пишет:
У нас есть программа для подсчета сумм, дней и часов по зарплате. Ее написал специалист, который, к сожалению, уже здесь не работает.
Часть программы, которая собирает количество дней и часов по колонкам табеля выглядит так
// IF Accounts->TIME#0
// Подсчет дней
IF Accounts->Tabcol = "002"
aVars[3] := aVars[3]+Accounts->Time
IVars[3] := IVars[3]+Accounts->Time
endif
IF Accounts->Tabcol = "003"
aVars[3] := aVars[3]+Accounts->Time
IVars[3] := IVars[3]+Accounts->Time
Endif
………………………
// Подсчет часов
IF Accounts->Tabcol = "006"
aVars[2] := aVars[2]+Accounts->Time
IVars[2] := IVars[2]+Accounts->Time
endif
IF Accounts->Tabcol = "007"
aVars[2] := aVars[2]+Accounts->Time
IVars[2] := IVars[2]+Accounts->Time
endif
......................
Нам надо вместо дней и часов по всем колонкам поставить рабочие дни и часы по колонке 1. Там в одной колонке и дни и часы. Как это можно сделать? Что можно почитать по программированию в FileEval?
Добрый день!
Отработанные дни и часы можно получить из табеля рабочего времени:
aVars[1]:=ANY("TABLE","_02",UPPER(Cardspri->TNUM+M->S_PERIOD), "IDAY")
aVars[2]:=ANY("TABLE","_02",UPPER(Cardspri->TNUM+M->S_PERIOD), "IHOUR")
или
aVars:=ANY("TABLE","_02",UPPER(Cardspri->TNUM+M->S_PERIOD), {"IDAY", "IHOUR"})
вернет массив, где aVars[1]-дни, aVars[2]-часы
Вместо Cardspri->TNUM можно подставить необходимый таб.номер и вместо M->S_PERIOD(расчетный период) фактический период если нужно.
Почитать можно:
BEST5_34\Client\Help\programming in best-5.chm
B412_PLUS\news\программирование_в_БЭСТ-4.chm