ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
Авторизация

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

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


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 6 7 8 След.
БЭСТ-4+ просит переиндексацию с начала 2015 года, С наступлением 2015 года при запуске БЭСТ выводит сообщение о рекомендации проведения переиндексации
 
Цитата
Алексей Новиков пишет:
И похоже что как-то помогает переключение туда-сюда параметра "Требовать реиндексацию в начале суток".
Здравствуйте!
На одной БД пробовал туда- сюда и обратно. Не помогало.
Может база такая ,т.к. у этого клиента сервер дурит.
А так сегодня позвонили со многих мест - у них накая же "беда".
Размер экранного шрифта при работе через удаленный рабочий стол. Бэст4
 
На не выделенном сервере - пользователь Admin с правами администратора,
Для подключения к удаленному рабочему столу - пользователь User1 .
Размер экранного шрифта при работе через удаленный рабочий стол. Бэст4
 
Здравствуйте!
Сеть из 2-х компьютеров.
Win 7 (макс) - невыдел. сервер и Win Xp. Мониторы ( разрешение и размеры) разные.
C Win Xp. пользователь через удаленный рабочий стол работает с Бэст4.
Несмотря на то ,что пользователи запускают Бэст с разных рабочих столов и разных ярлыков , размер экранного шрифта у них одинаков.Хотя для каждого ярлыка (окна) в левом верхнем углу окна в свойствах был задан свой размер шрифта. Т.е . изменение размера экранного шрифта для одного пользователя приводит к изменению размера экранного шрифта для другого пользователя .Не удобно работать - для одного пользователя окно Бэста большое, для другого - маленькое.Как бороться?
Заранее спасибо.
Проверка на контрольное значение при использовании QINPUT
 
Цитата
Алексей Новиков пишет:
Это функция xHarbour, она работает когда угодно и где угодно. Можете использовать её всякий раз, когда нужно что-то отобразить.
Пробую :
FUNCTION Main()
Private _top:=2,_left:=2,bl
altd()
dispoutat(_top,_left,'TEST',"N/BG") // или так

//bl:={||sayandwait('TEST')}
bl:={|| dispoutat(_top,_left,'TEST',"N/BG")}
eval(bl) // или так
return

Ничего не происходит.
Я, видимо, неправильно ее вызываю?
Проверка на контрольное значение при использовании QINPUT
 
Заменил SayAndWait на dispoutat() ,получилось то ,что нужно.
_bPostGet:={||aeval(aIn,{|x| _s:=_s+x}),if(_s<>kSum,_s:=0,),if(_s<>kSum,dispoutat(_top+len(aParam),_left+23,'Контрольная сумма не верна',"R+/B"),),if(_s<>kSum, .f. ,.T.)}

Но теперь возник Вопрос по dispoutat(). Эта функции работает только после функций (операций) прорисовки экрана? В справочнике пользователя о ней ничего не сказано.Когда ее целесообразно применять?
Проверка на контрольное значение при использовании QINPUT
 
Здравствуйте!
Переменные _s, kSum, _bPostGet объявил как Private
Сосчитал контрольную сумму kSum.
Такой кодовый блок работает без проблем :
_bPostGet:={||aeval(aIn,{|x| _s:=_s+x}),if(_s<>kSum,_s:=0,),if(_s<>kSum,SayAndWait('Контрольная сумма не верна'),),if(_s<>kSum, .f. ,.T.)}

Но информацию для пользователя пришлось выводить через SayAndWait('Контрольная сумма не верна').
А можно ее отразить в нижней строке диалогового окна?
Проверка на контрольное значение при использовании QINPUT
 
Здравствуйте!
А в каких переменных ( массивах) будут храниться введенные пользователем значения?
Т.е к чему обращаться в кодовом блоке?
Проверка на контрольное значение при использовании QINPUT
 
Здравствуйте!
Немного переделанный блок кода из предыдущей темы :
FUNCTION Main()
Private aMas:={}
Private aParam
dbpush()
aParam:={{"01/01/2014","аааааааа",50,400},{"02/01/2014","бббббббббббб",80,400},{"03/01/2014","ввввввв",300,400}}
//altd()
_DialogSay(aParam)
dbpop()
return

FUNCTION _DialogSay(x)
Local _top,_bot,_left,_right,_heads,_pic:={},_ref:={},_app,_spec,_getbl:={}
Local j:=0,aHeads:={},_value:=0
Private _head:='',cVar
For nPos:=1 to len(x)
cVar:='head_'+alltrim(str(nPos))
private &cVar
&cVar:=0
next
altd()
_top:=3
_bot:=len(x)+2
_left:=3
_right:=76
j:=1
//altd()
Do While j<=len(x)
_head:="head_"+alltrim(str(j))
aadd(aHeads,{{_top+j-1,_left+63},&('_head')})
&_head:=x[j,3]
j:=j+1
enddo

aeval(x,{|| aadd(_pic,'999999')})
_ref:={}
_app:=1
_spec:='RESTOFF'
aeval(x,{|| aadd(_getbl,NIL)})
DISPBOX(_top-1,_left-1,_bot+1,_right+1,'╔═╗║══╚║ ',"N/BG")
SAYSCREEN(" ЗАПОЛНЕНИЕ ОБЪЕМОМ ПРОИЗВЕДЕННОЙ ПРОДУКЦИИ ",_top-1,_left+2)
j:=0
aeval(x,{|x| SAYSCREEN(x[1]+' '+x[2],_top+j,_left+2),j++})
QINPUT(_top,_left,_bot,_right,aheads,_app,_ref,_pic,,,,,,,_spec,_getbl,,,,,,,,,"Сформировать отчет ?")
IF LASTKEY()!=27
j:=1
Do While j<=len(x)
_value:=&_head
aadd(aMas,_value)
j++
enddo
else
aMas:={}
endif
return aMas

Какой параметр в функции QINPUT отвечает за проверку вводимых значений? И как это сделать?
Надо чтобы общая сумма всех значений (&_head:=x[j,3]) , которое введет пользователь должна быть равна некоторому контрольному значению .В данном случае это четверый элемент массива aParam x[j,4].
При этом нужно не давать пользователю выйти из диалогового окна до тех пор ,пока не введет значения ,
которые в сумме будут равны общей контрольной сумме .Желательно чтобы в "подвале" диалогового окна отражалась запись с содержанием " неверная контрольная сумма".
В Help по этому Вопросу ни чего не нашел.
Заранее спасибо
Номенклатурный справочник и фото
 
Цитата
itman пишет:
Задача контроля изображений по номенклатуре еще актуальна?
Могу подсказать способ решения задачи сторонними продуктами.
А мне можете подсказать?
Подключение нового источника к БЭСТ5, Подключение нового источника к БЭСТ5
 
Цитата
Сергей Джулай пишет:
. Тут надо врукопашную поправлять. Я у себя взял среду для разработки из 3.3. и обновил кое какие файлы. Все заработало.
Как Вы это сделали?
Не явное имя переменной в полее ввода при использовании функции QINPUT
 
Еще раз спасибо.
Честно говоря не понял, как в данном случае воспользоваться выражением :
{|x,i| bTmp:=memvarblock('head_'+alltrim(str(i))), eval(bTmp, x) }
Не явное имя переменной в полее ввода при использовании функции QINPUT
 
Алексей,спасибо за развернутый ответ!
Внес изменения в плагин .Все работает.


FUNCTION Main()
Private aMas:={}
Private aParam
dbpush()
aParam:={{"01/01/2014","аааааааа",1,'head_1'},{"02/01/2014","бббббббббббб",2,'head_2'},{"03/01/2014","ввввввв",3,'head_3'}}
//altd()
_DialogSay(aParam)
dbpop()
return
///********** запрашиваем дату начала и конца расчета, код склада,группы и вариант сортировки ***********
FUNCTION _DialogSay(x)
Local _top,_bot,_left,_right,_heads,_pic:={},_ref:={},_app,_spec,_getbl:={}
Local j:=0,aHeads:={},_value:=0
Private _head:='',head_1:=0,head_2:=0,head_3:=0
_top:=3
_bot:=len(x)+2
_left:=3
_right:=76
j:=1
Do While j<=len(x)
// _head:="head_"+alltrim(str(j))
_head:=x[j,4] // задает имя переменной
aadd(aHeads,{{_top+j-1,_left+63},&('_head')})
&_head:=x[j,3] // присвоение значение переменной
j:=j+1
enddo

aeval(x,{|| aadd(_pic,'999999')})
_ref:={}
_app:=1
_spec:='RESTOFF'
aeval(x,{|| aadd(_getbl,NIL)})
DISPBOX(_top-1,_left-1,_bot+1,_right+1,'г=┐│-=L│ ',"N/BG")
SAYSCREEN(" ЗАПОЛНЕНИЕ ОБЪЕМОМ ПРОИЗВЕДЕННОЙ ПРОДУКЦИИ ",_top-1,_left+2)
j:=0
aeval(x,{|x| SAYSCREEN(x[1]+' '+x[2],_top+j,_left+2),j++})
QINPUT(_top,_left,_bot,_right,aheads,_app,_ref,_pic,,,,,,,_spec,_getbl,,,,,,,,,"Сформировать отчет ?")
IF LASTKEY()!=27
j:=1
Do While j<=len(x)
_head:=x[j,4]
_value:=&_head
aadd(aMas,_value)
j++
enddo
// aeval(x,{|x| _head:=x[4],_value:=&_head,aadd(aMas,_value)})
altd()
else
aMas:={}
endif
return aMas

Но остались еще Вопрос ы ( проблемы):
1.Количество подмассивов массива aParam заранее не определено ( т.е это переменная величина).
Как тогда объявить неопределенное количество переменных head_1:=0,head_2:=0,head_3:=0 ( head_n:=......) ?
(Если такое вообще возможно .)
Можно, конечно ,заранее предположить длину массива aParam и объявить такое количество переменных :
Private head_1:=0,head_2:=0,head_3:=0,head_4:=0,head_5:=0 и т.д..

2.Чтобы присвоить переменным введенное значение в диалоговом окне пользователем пришлось
написать: j:=1
Do While j<=len(x)
_head:=x[j,4]
_value:=&_head
aadd(aMas,_value)
j++
enddo
На выражение aeval(x,{|x| _head:=x[4],_value:=&_head,aadd(aMas,_value)}) программа
заругалась на макрооператор &
Можно ли как-то переписать это выражение, чтобы оно заработало?
Или цикла Do While j<=len(x) ,,,,, enddo вполне достаточно?
Заранее спасибо.
Не явное имя переменной в полее ввода при использовании функции QINPUT
 
Здравствуйте!
Пытаюсь с помощью функции QINPUT создать диалоговое окно,которое заполняется
данными из массива,полученного в ходе выполнения плагина. в нижеследующем примере
это переменная aParam :
FUNCTION Main()
Private _data_n,_data_k,_data_r
Private aMas
Private aParam
dbpush()
aParam:={{"01/01/2014","аааааааа",1,'head_1'},{"02/01/2014","бббббббббббб",2,'head_2'},{"03/01/2014","ввввввв",3,'head_3'}}
altd()
_DialogSay(aParam)
dbpop()
return

FUNCTION _DialogSay(x)
Local _top,_bot,_left,_right,_heads,_pic:={},_ref:={},_app,_spec,_getbl:={}
Local j:=0,aHeads:={}
Local _head //head_n .......
Local _field:='',_zag:=' '
Local head_1:=1,head_2:=2,head_3:=3
//дата конца формирования отчета
_data_n:=111111
_data_k:=222
_data_r:=9999
//выходные параметры -_data_n ,_data_k,_data_r,входящие в массив aMas
_top:=3
_bot:=len(x)+2
_left:=3
_right:=76
j:=1
// ЗДЕСЬ ПЫТАЮСЬ задать имя переменной
// Do While j<=len(x)
// _head:="head_"+alltrim(str(j)) // так
// _head:=x[j,4] // или так
// _head:=x[j,3] // присвоение значение переменной
// aadd(aHeads,{{_top+j-1,_left+63},_head})
// j:=j+1
// enddo

aheads:={{{_top,_left+67},"_data_n"},{{_top+1,_left+67},"_data_k"},{{_top+2,_left+67},"_data_r"}} // вот с ним //проблема
aeval(x,{|| aadd(_pic,'999999')})
_ref:={}
_app:=1
_spec:='RESTOFF'
aeval(x,{|| aadd(_getbl,NIL)})
_getbl:={}
DISPBOX(_top-1,_left-1,_bot+1,_right+1,'г=┐│-=L│ ',"N/BG")
SAYSCREEN(" ЗАПОЛНЕНИЕ ОБЪЕМОМ ПРОИЗВЕДЕННОЙ ПРОДУКЦИИ ",_top-1,_left+2)
j:=0
aeval(x,{|x| SAYSCREEN(x[1]+' '+x[2],_top+j,_left+2),j++})
QINPUT(_top,_left,_bot,_right,aheads,_app,_ref,_pic,,,,,,,_spec,_getbl,,,,,,,,,"Сформировать отчет ?")
IF LASTKEY()!=27
aMas:={_data_n ,_data_k,_data_r}
else
aMas:={}
endif
return aMas


Не получается в массиве aheads избавится от явно задаваемых переменных _data_n ,_data_k,_data_r

Строка _head:="head_"+alltrim(str(j)) или строка _head:=x[j,4] позволяет задать имя переменной для ввода и вывода,.
А вот значение ей не удается задать.
Как это сделать?
Заранее спасибо.
Заполнение поля оплата в СЗВ-6
 
Здравствуйте!
Скачал последний релиз.
Если дата приема у сотрудника, например, 20/10/2014 ,но есть выплаты и взносы в 3 квартале, то такой сотрудник не выгружается в файл совсем.Если перебить дату приема на любую дату более ранюю чем 01/10/2014 , то все ОК.
Обращение к полю БД из формулы типовой операции ( Товары.ГП)
 
Спасибо
Изменено: gabov - 15.09.2014 15:28:12
Обращение к полю БД из формулы типовой операции ( Товары.ГП)
 
Здравствуйте!
Нужно прямо из формулы типовой операции (Товары,ГП) обратиться к определенному полю файла Partner.

Без написания плагина это как-то можно сделать? Кажется я раньше встречал как это сделать,но найти не смог. Это нужно для Бэст 4 и Бэст 5
Заранее спасибо
Вопрос по DBSEEK
 
Код будет более компактным , а еще какие будут преимущества при такой записи кода?
Вопрос по DBSEEK
 
Здравствуйте. Вопрос из темы http://www.bestnet.ru/support/forum/index.php?PAGE_NAME=read&FID=10&TID=6475
Цитата
Цитата nordk пишет:
а еще можно было partner->( dbseek(upper(MDOC->AGENTCODE),,"fullcodeВ этом случае вы еще и индексный ключ не меняете функцией ordsetfocus а просто делаете поиск по нужному ключу
Посмотрел описание dbseek()
Syntax
DBSEEK(<expKey>, [<lSoftSeek>],[<lFindLast>]) --> lFound
Arguments
<expKey> Any expression
<lSoftSeek> Toggle SOFTSEEK condition
<lFindLast> is an optional logical value that set the current record position to the last record if successful
Returns

Третий параметр этой функции логический.
У Вас другой - имя индекса.

Вставил указанный вами код в плагин. Все работает.
Подскажите ,у этой функции есть еще где-то другое описание?
Заранее спасибо
ERROR DBFCDX/1201 Файл не индексирован, Ошибка индекса справочника партнеров после записи в файл
 
Здравствуйте.
Цитата
nordk пишет:
а еще можно было partner->( dbseek(upper(MDOC->AGENTCODE),,"fullcode"))
В этом случае вы еще и индексный ключ не меняете функцией ordsetfocus а просто делаете поиск по нужному ключу
Посмотрел описание dbseek()
Syntax
DBSEEK(<expKey>, [<lSoftSeek>],[<lFindLast>]) --> lFound
Arguments
<expKey> Any expression
<lSoftSeek> Toggle SOFTSEEK condition
<lFindLast> is an optional logical value that set the current record position to the last record if successful
Returns

Третий параметр этой функции логический.
У Вас другой - имя индекса.

Вставил указанный вами код в плагин. Все работает.
Подскажите ,у этой функции есть еще где-то другое описание?
Заранее спасибо
Как записать в кодовом блоке несколько команд?
 
Алексей,спасибо.
Вы правильно поняли мой Вопрос .
Кроме того еще остался один Вопрос .
Для принудительного завершения работы плагина в каких случаях надо применять break() , а в каких случаях - return ?
Как записать в кодовом блоке несколько команд?
 
Здравствуйте!
Можно ли в кодовом блоке сразу вызвать на выполнение несколько команд
Например:

function main()
Local aCol:={1,2,3}
aeval(aCol,{|x| if(x=4,sayandwait("Нет такого значения") return, )})
return

Бэст на строку aeval(aCol,{|x| if(x=4,sayandwait("Нет такого значения") return, )}) выдает ошибку.
Как иначе можно это выражение записать?
Заранее спасибо.
Печать через сервер отчетов. Б4+ SP77.
 
Цитата
Цитата
Лилия П пишет:
Доброго дня!
При печати отчетов через сервер отчетов возникает замедление печати на принтере HP LaserJet M1120 MFP. На принтере формируется очередь печати из двух документов при одной посылке на печать(одного документа): один документ из папки временных файлов пользователя , второй из папки сервера отчетов. Всвязи с чем могут формироваться два временных файла для одного отчета?
Спасибо.



Аналогичная проблема с принтером HP Laser Jet M1005 MFP .
Но в этом случае происходит не замедление печати,, а вообще полное " зависание печати.
Лечится только - перезагрузкой компьютера.

До этого этот принтер был подключен к компьютеру с Win XP x-32. Проблем с печатью не было .Сейчас этот принтер ( локальный) подключен к компьютеру .на котором установлен WiN 7 x-64 .

Установил принтер Epson LX-300+ /II на LPT1.
Проблема не ушла.
Что можно еще попробовать?

Заполнение поля оплата в СЗВ-6
 
Здравствуйте!
При попытке выгрузить ИС за 1 квартал 2014 года , программа пишет " не определен тариф страховой части"
БЭСТ5 .hrb аналог view()
 
Жалко ,что View() в Бэсте 5 не работает с массивом.Очень удобная была возможность в Бэсте4.
Поиск в массиве ,если переменнаяимеет пустое значение
 
Здравствуйте!
Случайно "споткнулся " на такую ситуацию.
В данном случае значение выражения ascan(aTm,nTermin) получается "Истинным",что не верно.
пример :
function main()
Private aTm:={"Один"}
Private nTermin:=''
IF ascan(aTm,nTermin)>0
sayandwait('1')
else
sayandwait('2')
endif
return



В данном случае значение выражения ascan(aTm,nTermin) получается "Ложным",что правильно
Пример :
function main()
Private aTm:={"Один"}
Private nTermin:=''
IF ascan(aTm,{|x| upper(x)==upper(nTermin)})>0
sayandwait('1')
else
sayandwait('2')
endif
return

Т.е для поиска в массивах необходимо ОБЯЗАТЕЛЬНО ( во избежание ошибок) использовать кодовый блок?
Страницы: Пред. 1 2 3 4 5 6 7 8 След.