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
Nikolai Gorbatchev пишет:
Здравствуйте.
Я залил базу на ФТП - папка со словом MINSK.
Еще инфо, может поможет при рассмотрении. Тормозит только при записи хозяйственных операций ДОХОД, при РАСХОДЕ и во всех других случаях работает нормально.
Добрый день!
Тормозов не наблюдается.
База в папке MINSK MESI ?
Или мы не то смотрим?
Какую конкретно проводку надо ввести?
На вирус проверяли?
Захожу в акты выполненных работ услуг (Продажи.Клиенты), открываю любой документ, прохожу проле счет-фактура и получаю ошибку. Ругается на какой-то индекс или не может создать индекс... не понятно. Помогите, разобраться, плиз.
Добрый день!
Еще как вариант. Не может создать временный индекс. Посмотрите, куда указывают переменные окружения TEMP и TMP,они должны указывать на существующую папку, или возможно там закончилась дисковая память.
Хотя можно, конечно, выйти из Бэста и снова зайти...
Функция SetScope() возвращает предыдущий скоп.
Стандартный ход такой:
aScope:=SetScope() // снятие скопа (можно также сразу установить новый)
........
SetScope(aScope) //воcстановление
nordk пишет:
Ну собственно у меня только одна мысль в этом направлении имеется.
Думаю выступить с предложением к разработчику, что в графических окнах при обращению к плагину по событию попросить создавать в области переменных массив с указателями на каждую графическую форму, которые открыты в данной точке запуска программы.
Имея указатель на форму, с которой идет работа Вам будет проще работать с ней.
Если лог соответствует ошибке, то дело в нем. Посмотрите, есть ли у него индексный файл, попробуйте проиндексироваться из настройки, предварительно удалив plan0.cdx. Поищите дубль файла plan0.dbf в корневой части БЭСТа или там где где находятся *.exe
Сори за уточнение.
Дублей нет.
Далее:
rar a -r -df -m0 RM_CDX C:\BEST\B4_PLUS\BASE_0610\*.cdx
Думаю не в нем дело так-как если стереть из него все записи суть проблемы не меняется.
Если лог соответствует ошибке, то дело в нем. Посмотрите, есть ли у него индексный файл, попробуйте проиндексироваться из настройки, предварительно удалив plan0.cdx. Поищите дубль файла plan0.dbf в корневой части БЭСТа или там где где находятся *.exe
Кто-то оставил altd() в исходнике main\smallbas.prg. Уберите, пожалуйста.
Неудобно отлаживать плагины в групповых операциях, отладчик всё время цепляется за smallbas.prg
И вообще, оставленные кодером вызовы altd() напрягают и в других модулях.
Добрый день!
Это не в altd() дело. Просто в хотфикс попали некоторые bdll с отладчиком. На обычную работу это не оказывает влияния, а при отладке плагинов может вызывать неудобство. Исправим.
Следующий пример кода вызывает тихий вылет БЭСТ-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()
Столкнулся в кассе, попробовал в складе - тот же эффект. Вроде такой проблемы раньше не было. По крайней мере, нашёл у себя немало плагинов с объектами.
Геннадий Симонович пишет:
Насколько я понял, происходит вбрасывание отдельных полей таблицы 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, а там нет таких полей.
Роман Лутошкин пишет:
Добрый день! При запуске приложений возникает ошибка:
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.
Сергей Николаевич пишет:
-------------------------- 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 должен образоваться вновь.
Следующий пример кода вызывает тихий вылет БЭСТ-5 на втором запуске.
Первый раз плагин отрабатывается штатно, на втором запуске срыв происходит в момент создания объекта в точке oObject:=uObject():new()
Столкнулся в кассе, попробовал в складе - тот же эффект. Вроде такой проблемы раньше не было. По крайней мере, нашёл у себя немало плагинов с объектами.
ОАО КРССУ пишет:
Уважаемые разработчики и консультанты, помогите пожалуйста.
Возникла необходимость сделать отработку значений по оператору 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
Cсылка на этот файл "tovar из PLGL11_07_13 " - это папка TOVAR из архивной копии БД БЭСТ4+ СП 79. В эту папку я кладу файлы BOOK, sh_fact и s_kredit из рабочей БД . В этом случае книга формируется штатно
Александр Гершанов пишет:
Недавно главбух попыталась напечатать КНИГУ ПОКУПОК. И там то же самое. Так же Excel (и ДОС и Блокнот) пытается создать колонок слишком многою........
Посылаю 2 архива "tovar из PLGL11" - это папка TOVAR из рабочей БД БЭСТ4+ СП 79. Здесь выходим на ошибку
"tovar из PLGL11_07_13" - это папка TOVAR из архивной копии БД БЭСТ4+ СП 79. В эту папку я кладу файлы BOOK, sh_fact и s_kredit из рабочей БД . В этом случае книга формируется штатно
Туплю или не понял: "посылаю..." - это куда? Где искать?
Александр Синенков пишет:
У нас есть программа для подсчета сумм, дней и часов по зарплате. Ее написал специалист, который, к сожалению, уже здесь не работает.
Часть программы, которая собирает количество дней и часов по колонкам табеля выглядит так
// 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