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

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

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


Форум

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

Страницы: Пред. 1 ... 13 14 15 16 17 18 19 20 21 22 23 След.
Помогите разобраться
 
Цитата
admin_omega пишет:
Да, Вопрос затрагивает БЕСТ-4. На БЕСТ-5 наше "правительство" переходить пока не хочет :( вот и приходится изобретать велосипед. По поводу составных полей уже игрался никак не получается, всегда найдется дубляж. Поэтому это только колонка с уникальным значением. Как я уже говорил выше, мне необходимо получить доступ не к группе проводок, а к конкретной проводке и привязать ее этим уникальным индексом к нашим управленческим задачам.

Для управленческого учета БЭСТ-5 весьма удобен. Найдите время, проведите презентацию для Руководства по БЭСТ-5 на базе демоверсии. Сейчас сентябрь, оптимальное время для начала работ по переходу. :happiness:
И по поводу поля с уникальным значением. Почему не получится создать?
Не обязательно использовать алгоритмы Б4, можно например генерировать значение на основе времени, уникальность обеспечена.
С уважением,
Ильин Евгений
Помогите разобраться
 
По-хорошему, в книге операций вообще следует запретить какой либо ввод проводок.
Все следует делать через документы, если нет подходящих, есть свободные в АРМе главбуха.
Какая именно версия БЭСТа? Какая задача?
Судя по тексту, версия 4+.
Проводки имеют свой уникальный код в поле nnoper, его заполнение обязательно.
Файл main.dbf - ключевой для бухучета, поэтому к прямому формированию данных в нем стоит подойти со всей серьезностью.
Здесь можно скачать справочник по 4+, там можно найти ответы на многие Вопросы.
И можно узнать задачу?
С уважением,
Ильин Евгений
Подскажите про два InitList()
 
Можно взять инструментарий для БЭСТ-4, и разобраться в нем.
Там непосредственно основные функции БЭСТа в исходниках.
А по поводу задачи, есть ли строгое соответствие для фасовок?
Существует же определенное количество вариантов, нельзя ли их идентифицировать?
Просто в использовании 2 инитлиста будет не очень удобно и отнимет время оператора.
Для оператора чем проще тем лучше, ему легче выбрать из предложенного чем ввести.
В последнее время я в этом все чаще и чаще убеждаюсь, цепочка вопросов и действие алгоритма в зависимости от ответов позволяют свести ошибки оператора к минимуму (но могут добавить ошибки кода :funny: ).
И я бы не рекомендовал использовать oper_fact, равно как и любое другое поле.
Сделайте свое поле по правилам БЭСТ-4, свой индекс. описания полей есть в системе.
Изменено: itman - 03.09.2008 14:36:58
С уважением,
Ильин Евгений
Подскажите про два InitList()
 
Добрый день!
Там пример про два инитлиста на экране, одновременно.
Возможно подойдет для этого случая.
Но я бы хотел обратить Внимание на первичность использования стандартных средств.
Т.е. в этом случае можно делать не внутреннее перемещение, а списание на фасовку, скажем. и порождать автоматом накладную на приход другой позиции.
Список привязки оформить как таблицу пользователя, это по сути спецификация.
И уже по ней в коде формировать новую накладную.
Как вариант, возможно затраты по кодингу здесь будут меньше и надежнее.
Не надо каждый раз делать привязку, если я правильно понял задачу.

Получится примерно такой набор "внедрений":
- таблица привязки (списываемый = приходуемый)
- настройки в реестрах движения, возможно новый реестр, для удобства
- плагин на событие (обработка накладной и формирование новой)
- плагин для реестра на таблицу привязки
Изменено: itman - 03.09.2008 09:00:57
С уважением,
Ильин Евгений
Замена типовой операции в реестре внутренного перемещения
 
Разобрался:
в базе mdocm поля, хранящие значения доппризнаков заполняются при выборе номенклатуры.
Если происходит изменение параметра - то он в реестре не обновляется, и отсюда проблема, а именно, типовая не видит нового значения, т.к. оно только в справочнике груп. Но условия обрабатывает исправно.
Решаю плагином, обновляя значения нужных "допов".
С уважением,
Ильин Евгений
Замена типовой операции в реестре внутренного перемещения
 
БЭСТ-5 СП9
Типовая операция на внутреннее перемещение.
Вносим изменения в проводки, добавляем новую корреспонденцию.
Делаем новый документ, проводки формируются.
Хотим сформировать проводки по всем документам с начала месяца - новые проводки не формируются.
Выбираем замену операции по Ф5, даже если меняем операцию, то новая проводка упорно не формируется.
Сумма проводки формируется по условию if(,,), без условий формируется нормально.
Изменено: itman - 08.08.2008 10:14:07
С уважением,
Ильин Евгений
Досвидания БЭСТ!
 
На самом деле нет ничего прискорбного, даже наоборот. ))
Руководство получит новую практику, новые заботы, ит-шники новый опыт, новую стоимость.
В сообществе БЭСТа всегда рады старым друзьям, особенно с опытом работы в разных системах, пишите как идет процесс, какие преимущества, ...

P.S. "Болезни" есть у всех )), только клиники разные :happiness:
С уважением,
Ильин Евгений
Справочник БИК
 
Можно импортировать, пример здесь
С уважением,
Ильин Евгений
Карточка для ввода персональных данных
 
Денис, я честно говоря уже не помню почему, но по какой-то причине я вынес формирование строк в функцию SayScreen :smile:
Попробуй сделать так, может получится.
С уважением,
Ильин Евгений
Карточка для ввода персональных данных
 
у меня вот так работает:
Цитата
Save Screen
DispBox(nTop-1,nLeft-1,nBottom+1,nRight+1,'г=¬¦-=L¦ ',"N/BG")
SayScreen("Введите дату наряда..........",nTop,nLeft+1,'N/BG')
SayScreen("Смена (1 - день / 2 - ночь)..",nTop+1,nLeft+1,'N/BG')
aHeads:={ { { nTop, nleft+30 } ,'dWorkDate'},;
{ { nTop+1, nleft+30 } ,'nSmena'} }
nApp:=1
lSpec:='RESTOFF'
Qinput(nTop,nLeft,nBottom,nRight,aHeads,;
nApp,,,,,;
,{||1},,,lSpec)
Restore Screen
С уважением,
Ильин Евгений
ночная индексация БЭСТ5
 
Сервер приложений имеется в виду, я так думаю.
С уважением,
Ильин Евгений
Адреса!
 
Такие требования часто встречаются при налоговых проверках а также у крупных клиентов, которые в свою очередь являются налогоплательщиками и которым такие же требования предъявляет налоговая.
Чем обосновано такое требование?
В накладных и счет-фактурах необходимо указывать название и адреса так, как указано в учредительных документах, в которых, как правило адрес начинается с указания страны.
С уважением,
Ильин Евгений
Дополнительные измерения, как правильно использовать?
 
А как использовать эти данные штатным способом для формирования проводок по дополнительному плану счетов, к примеру.
Возьмем картотеку ОС и добавим доп. измерение.
Как сформировать проводку с аналитикой=доп. измерению.
С уважением,
Ильин Евгений
Аналитика
 
Необходимо сделать реорганизацию справочника пользователя с системным справочником.
Главная книга
Настройка
реорганизация счетов
перевести пользовательский сегмент в системный

Это необходимо сделать для всех счетов где аналитика привязана к партнерам.
В этом случае заработают и акты сверок.

P.S. Необходимо отследить, чтобы таблица соответствия была заполнена полностью ( по правой колонке). Сопоставление идет по названиям, если они не соответствуют, то надо оценить объем работы, что проще - каждый раз пробивать позиции на соответствие или же в аналитическом измерении сделать то же самое ))))

Успехов!
Изменено: itman - 17.07.2008 12:41:37
С уважением,
Ильин Евгений
Оптимизация справочника БАНКОВ в БЭСТ-5 3.4 и связка с bnkseek.dbf
 
Для поддержания справочника в актуальном состоянии понадобится периодически скачивать файл bnkseek.dbf (именно той структуры, какая есть на сегодня).
И запускать функцию bnk_imp() для добавления новых записей.
С уважением,
Ильин Евгений
Оптимизация справочника БАНКОВ в БЭСТ-5 3.4 и связка с bnkseek.dbf
 
Завершающий этап - загрузка справочника банков.
Код
Function bnk_imp()
Local cFileBnkSeek
Local cPath:="c:\"
Local cMask:="*.dbf"
Local aFileFilter:={{"Базы данных","*.dbf"}}
Local cFilename:="bnkseek.dbf"
Local cMess:="Выбор файла BNKSEEK.DBF"
cFileBnkSeek:=PopFile(,cPath,cMask,cMess,aFileFilter) //ищем где находится файл
If Empty(cFileBnkSeek)
  SayAndWait("Не выбран файл")
Else
  SayAndWait(cFileBnkSeek)
EndIf   
Use (Loadpath()+"bank.dbf") Index('bank.cdx') New Alias bank shared//открываем справочник банков БЭСТа
bank->(ordSetFocus('tag_code')) // выбираем сортировку по БИКу
Go top
DbUseArea(.T.,,(cFileBnkSeek),"bnkseek",.t.,.F.,) //открываем классификатор банков РФ
Index On newnum tag tag_bik To "bnkseek.cdx" //делаем индекс для поиска
Go top
///перенос данных
Select bnkseek
Do While !EoF()
  Select bank
  If !DbSeek(bnkseek->newnum)
    Select bank
    Append Blank
    bank->bnk_id:=XGUID()
    bank->bnk_code:=bnkseek->newnum
    bank->bnk_name:=oemtoansi(AllTrim(bnkseek->namep))+" г."+oemtoansi(AllTrim(bnkseek->nnp))
    bank->acnt_rule:="1"
    bank->acnt_korr:=bnkseek->ksnp
    bank->addr:=AllTrim(bnkseek->ind)+", ";
                        +oemtoansi(AllTrim(bnkseek->nnp))+", ";
                        +oemtoansi(AllTrim(bnkseek->adr))+", ";
                        +oemtoansi(AllTrim(bnkseek->telef))
    DbUnLock()
  Else
  EndIf   // !DbSeek(bnkseek->newnum)
  Select bnkseek
  bnkseek->(DbSkip())
EndDo   // !EoF()
sayandwait("Перенос завершен")
bnkseek->(DbCloseArea()) //закрываем таблицу
bank->(DbCloseArea()) //закрываем таблицу
Return .t.
С уважением,
Ильин Евгений
Оптимизация справочника БАНКОВ в БЭСТ-5 3.4 и связка с bnkseek.dbf
 
Синхронизация справочника в Б5 с файлом bnkseek.dbf.
Источник - http://www.pvision.ru/bik.htm
Скачиваем архив, раскрываем в любую папку.
Запускаем функцию, получаем справочник с обновленными реквизитами по справочнику БИК.
Код минимален, перед применением тестировать на копии рабочей базы. :funny:

Код
Function bnk_sync()
Local cFileBnkSeek
Local cPath:="c:\"
Local cMask:="*.dbf"
Local aFileFilter:={{"Базы данных","*.dbf"}}
Local cFilename:="bnkseek.dbf"// скачивать здесь http://www.pvision.ru/bik.htm
Local cMess:="Выбор файла BNKSEEK.DBF"
cFileBnkSeek:=PopFile(,cPath,cMask,cMess,aFileFilter) //ищем где находится файл
If Empty(cFileBnkSeek)
  SayAndWait("Не выбран файл")
EndIf   // Empty(cFileBnkSeek)
Use (Loadpath()+"bank.dbf") Index('bank.cdx') New Alias bank shared//открываем справочник банков БЭСТа
bank->(ordSetFocus('tag_code')) // выбираем сортировку по БИКу

DbUseArea(.T.,,(cFileBnkSeek),"bnkseek",.t.,.F.,) //открываем классификатор банков РФ
Index On newnum tag tag_bik To "bnkseek.cdx" //делаем индекс для поиска
Go top 
Select bank //встаем в справочник банков Б5
Go top //на первую запись
Do While !EoF() // перебор системного справочника банков БЭСТ-5
  Select bnkseek //перемещаемся в область справочника банков bnkseek
  If DbSeek(bank->bnk_code) // проверка на наличие записи с кодом БИК из БЭСТ-5
    Select bank // если есть такой банк в справочнике то обновляем его реквизиты в БЭСТ-5
    RLock()
    bank->bnk_name:=oemtoansi(AllTrim(bnkseek->namep))+" г."+oemtoansi(AllTrim(bnkseek->nnp)) //Название банка, город
    bank->bnk_code:=bnkseek->newnum//БИК
    bank->acnt_korr:=bnkseek->ksnp//корсчет
    bank->addr:=AllTrim(bnkseek->ind)+", ";
                        +oemtoansi(AllTrim(bnkseek->nnp))+", ";
                        +oemtoansi(AllTrim(bnkseek->adr))+", ";
                        +oemtoansi(AllTrim(bnkseek->telef))//индекс, город, адрес, телефон
    DbUnLock()
  Else // если нет такого банка в справочнике (устаревшая запись, либо ошибочная)
    Select bank //делаем отметку такой записи в справочнике Б5
    If Left(bank->bnk_name,2)<>"!("// проверка на повторный запуск этой функции,
      RLock()
      bank->bnk_name:="!(нет в спр-ке БИК) "+AllTrim(bank->bnk_name)
      DbUnLock()
    EndIf   // Left(bank->bnk_name,2)<>"!("// проверка на повторный запуск этой функции,
  EndIf   // DbSeek(bank->bnk_code) // проверка на наличие записи с кодом БИК из БЭСТ-5
  Select bank // дело сделано, идем к другой записи по справочнику банков БЭСТ-5
  bank->(DbSkip())
EndDo   // !EoF() // перебор системного справочника банков БЭСТ-5
sayandwait("Сихнронизация справочника завершена!")
bnkseek->(DbCloseArea()) //закрываем таблицу
bank->(DbCloseArea()) //закрываем таблицу
Return .t.
Изменено: itman - 17.07.2008 12:18:04
С уважением,
Ильин Евгений
Справочник банков.
 
http://www.bestnet.ru/support/forum/index.php?PAGE_NAME=read&FID=11&TID=1272&MID=s
С уважением,
Ильин Евгений
Оптимизация справочника БАНКОВ в БЭСТ-5 3.4 и связка с bnkseek.dbf
 
После перехода с Б4+ в справочнике банков формируется много записей с одним БИКом (если в Б4+ различались наименования). Что затем усложняет использование справочника.
предлагаю простой код для оптимизации справочника, удаления дублей.
Код
/*$$$
Функция: optbank
Категория: утилита для оптимизации справочника банков, удаления дубликатов
Параметры: без параметров
Результат: обновленный справочник банков, не содержащий дубли БИКов
Пример:  добавляем запись в userbdll.txt:
Дополнительно\Утилиты пользователя;Оптимизация справочника БАНКОВ;optbank;tools;1;
Примечания:
$$$*/

Function optbank()
Private t_bnk_id, t_bnk_code // переменные для сравнения значений соседних строк по индексу TAG_CODE
Use (Loadpath()+"prt_acnt.dbf") Index('prt_acnt.cdx') New Alias prt_acnt shared
prt_acnt->(ordSetFocus(0))
Use (Loadpath()+"bank.dbf") Index('bank.cdx') New Alias bank shared
bank->(ordSetFocus('tag_code')) // выбираем сортировку по БИКу
DbGoTop() // перемещаем указатель на начало сортированного списка
Do While !EoF() // цикл на перебор записей справочника банков
  If Len(AllTrim(bnk_code))<>9 // проверка на корректность значения БИК (9 символов)
    //действия при некорректном коде
    bank->(DbSkip())
  Else //иначе, код равен 9 символам
    //действия при корректном коде (по количеству символов)
    t_bnk_id:=bank->bnk_id ; t_bnk_code:=bank->bnk_code //Запоминаем значения текущей записи для сравнения с последующими
    bank->(DbSkip()) //идем дальше
    Do While  bank->bnk_code=t_bnk_code // проверка, если по этому БИКу запись повторяется
      Select prt_acnt
      //замена значения банка в справочнике счетов партнеров
      FLock()
      Replace prt_acnt->bnk_id With t_bnk_id ;
              For prt_acnt->bnk_id=bank->bnk_id
      DbUnLock()
      Select bank
      //Отмечаем запись для удаления в справочнике банков
      RLock()
      Delete
      DbUnLock()
      bank->(DbSkip())
    EndDo   //  bank->bnk_code=t_bnk_code // проверка, если по этому БИКу запись повторяется
  EndIf   // Len(AllTrim(bnk_code))<>9 // проверка на корректность значения БИК (9 символов)
EndDo   // !EoF() // цикл на перебор записей справочника банков
messagebox("Оптимизация справочника банков завершена.")
bank->(DbCloseArea()) //закрываем таблицу
prt_acnt->(DbCloseArea()) //закрываем таблицу
Return .t.


Изменено: itman - 17.07.2008 12:04:31
С уважением,
Ильин Евгений
Постоянный запрос на индексацию баз только с одной станции.
 
И ТОЧНО ! :smile:
дата неправильная.
Спасибо
С уважением,
Ильин Евгений
Постоянный запрос на индексацию баз только с одной станции.
 
В чем может быть проблема?
Все пользователи и станции работают отлично и в сетевом и в терминальном режиме доступа.
Но без видимых причин, на одной станции при попытке входа в любую базу на сервере в сетевом режиме - появляется запрос на индексацию.
Если всех пользователей "выгнать" из базы и сделать индексацию - то рабочий режим восстанавливается, но стоит выйти из баз и попытаться зайти вновь.
Все повторяется, в итоге работать в сетевом режиме невозможно.
Клиента переставляли, не помогло, смена пользователя и ролей тоже не помогает.
В чем может быть проблема на станции?
Изменено: itman - 15.07.2008 08:37:22
С уважением,
Ильин Евгений
Дополнительные измерения, как правильно использовать?
 
Добрый день.
Дополнительные измерения.
К картотеке имущества подключен пользовательский вид измерения, групповая аналитика проще говоря.
Можно ли штатным образом добавить в параметры для типовой операции возможность использования дополнительного измерения?
Если да, то как?
Если нет, то как можно использовать информацию из доп. измерений картотеки для формирования проводок?
С уважением,
Ильин Евгений
Кадры.Временно принимаемые сотрудники.
 
А если на момент подключения модуля "Кадры" сотрудник был уволенным и в приказ на оформление просто не попал, так как не соответствовал условиям фильтра на тот момент?
Т.е. интересует Вопрос восстановления для сотрудников, уволенных до начала эксплуатации модуля "КАДРЫ"
С уважением,
Ильин Евгений
Карточка для ввода персональных данных
 
И еще Вопрос, по какой причине нельзя использовать стандартные средства?
С уважением,
Ильин Евгений
Потерялись ссылки на партнеров при переходе с 3.3 на 3.4
 
В 4ке перед переходом делал следующее:

function main()
local cOldName,aSHet
altd()
dbpush()
netuse('u_analit',loadpath()+'analit.dbf')
aSHET:={"601","602", и так далее}
do while !eof()
if ascan(aSHET,alltrim(u_analit->schet))>0
cOldName:=u_analit->name
select partner
seek u_analit->code
select u_analit
rlock()
u_analit->name:=partner->shortname
dbunlock()
endif
select u_analit
skip
enddo

select partner
ALERT(alias())

u_analit->(dbclosearea())
dbpop()
return

Т.е. выравнивал аналитику с партнерами, после чего импорт завершался нормально.
А то что по кассе и по платежкам нет партнера - а откуда партнер, к примеру если деньги выдаются сотруднику в кассе.
С уважением,
Ильин Евгений
Страницы: Пред. 1 ... 13 14 15 16 17 18 19 20 21 22 23 След.