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

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

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


Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
номенклатурный справочник
 
Добрый день !
Подскажите, плиз, как исправить ошибку, которая возникает, когда скопирована номенклатура из одной базы в другие, а именно при выходе из номен/справочника. Файл nomenkl.prg, который запускаю по Ctrl+F5 из номенклатурного справочника Бэст-4 12.01 хозрасч SP 40.Простая програмка по копированию номенклатуры в заданные БД.Есть файл txt, в нем указываю кол-во дочерних,код родителького пред-я, коды дочерних пр-й(до 10), и ******

3
000044
000052
000045
000046
******

Путь к другим базам ищется программно.
Программа работает по этим условиям ! т.е. копирует данную номен-ру в 000052,000045,000046. Проблема возникает, когда я хочу зайти в родителький ном/справочник. Выдается ошибка: "Нет файла memdat.dbf","Таблица не открыта или заблокирована","Нет файла mdoc.dbf".Мои Вопросы: как исправить эти ошибки и правильно ли обратываю строчку 4(как опуститься на уровень ниже)???? Прилагаю код
Function main()
altd()
file1 = LoadPath()
file1 = file1 + "..\pro\plugins\extensns\sclad\nomenkl.txt"
set path to file1
file2 = 'Nomenkl.txt'
file = (FOPEN(file1))

child := FREADSTR(file,81)
kol = (substr(child,1,1)) // кол-во
rod = (substr(child,4,6)) //код родительского предпр
//
LabelPro := LoadPath() + "..\pro\Label.pro"

netuse("labelpro", LabelPro,,.F.)
dbpush("labelPro","labelPro->LBL_Code == rod","labelPro->LBL_Code == rod")
if rod != labelPro->LBL_Code
alert("Код родительского прдр-я в файле не совпадает с кодом в картотеке пред-й")
endif
dbpop()

dbase := (alltrim(labelPro->LBL_Path)) + 'sclad\mlabel.dbf'
dbaseFO = (FOPEN(dbase))

//
pl = 4
for i=0 to kol
pl := pl + 8
if substr(child,pl,6) != '******' //просто конец строки
ch = (substr(child,pl,6))
//*********************************************************************
dbpush("labelPro","labelPro->LBL_Code == ch","labelPro->LBL_Code == ch")
if ch != labelPro->LBL_Code
alert("Код дочернего прдр-я в файле не совпадает с кодом в картотеке пред-й"")
endif
//*********************************************************************

mlabel->(ordsetfocus('MLABEL'))
dbase1 := (alltrim(labelPro->LBL_Path)) + 'sclad\mlabel.dbf'
netuse("mlabel1", dbase1,, .f.)
set order to 1

aa := Upper(mlabel->(Grup+Nnum)) // set order to 1
if (!dbseek(aa))
netuse("mlabel1", dbase1)
a = mlabel->(recno())
Append From (dbaseFO) Record a Fields Grup,Nnum,Name,ED,Date,Norma,ODate ;
,CodeVal,Nacen,Marka,Sort,Profil,Razmer,Koef,Ed1,Ed2,Ed3,Algo1,Algo2,Algo3 ;
,Status,Ins,Stat,Koef1,Sclads,Cod_OKDP,DateN,Ord_Policy,Ord_Syst ;
,Vendor,Lot_Min,Lot_Max,ORD_Day1,Ord_Point,Ord_QTY,ORD_Max,QTY_SFT,User_Code
else
alert("Данная номенклатура уже есть в ном/справочнике предприятия " + ch)
UnLock All
endif
else
alert("Процесс копирования закончен")
exit
UnLock All
endif
//dbpop()
mlabel1->(dbCloseArea())

Next kol
dbpop()

LabelPro->(dbCloseArea())
//mlabel->(DbUnLock()))
UnLock All
FClose(file)
FClose(file1)
FClose(file2)
return 0
 
Оля Вы сразу простите меня за занудливость.
Но моя задача Вас научить.
А поэтому давайте по порядку.
Когда Вы выполняете программу с отладчиком и проходите строку
Код
file1 = LoadPath()

Чему у Вас равно значение file1 ?
Второе когда Вы открываете таблицы используйте имена алиасов
отличные от имен таблиц а еще лучше взгляните в отладчике на
существуюшие открытые алиасы и старайтесь с ними не совпадать.
Третье применяйте обязательно функции SaveSet() и RestSet()
Описание их Вы найдете в описании функций БЭСТа в NEWS инструкция по программированию
Страницы: 1
Читают тему (гостей: 1)