Косяк с PutHotCommand

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

Сообщение KATZ »

Догадываюсь, в чем было дело. Ресурс с описаниями функций называется одинаково в EXTFUN.RES и в EXTFUN_WT.RES, использоваться будет какой-нибудь один из них. Вероятно, EXTFUN_WT.RES перекрывал EXTFUN.RES, а в нем точно нет ни PutHotCommand, ни xl...

Попутно вопрос к Screw: почему списки функций разбросаны по двум файлам, чем был бы плох единый список?
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

Сообщение Screw »

Если не ошибаюсь, то перечни зарегистрированных функций друг друга не перекрывают, а дополняют. Правду, полагаю, откроет Мэв, опубликовав свои конфигурации. Но перекрываться могут только описания отдельных функций.

В EXTFUN_WT лежат методы для работы с табелем учета рабочего времени (от Working Table). Декомпозиция же был сделана для сокращения сроков поставки обновлений и уменьшения зависимостей между ними. По идее он должен поставляться одновременно с выходом свежих доработок в wt.dll.
Виталий
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

в общем по порядку подключения ресурсов:
был такой бардак

Код: Выделить всё

COMPDATA.RES             
L_PLANPR.RES             
L_PHONECARD.RES          
L_OSTATKI.RES            
L_NALNAKL.RES            
L_NALOG.RES              
L_MOVECELL.RES           
L_MOL.RES                
L_MCU.RES                
L_MARKET.RES             
L_MAKENAKL.RES           
L_MAKEDO.RES             
L_KONTRBAL.RES           
L_KATPARTY.RES           
L_KATORG.RES             
L_KATNAZNA.RES           
L_KASSA.RES              
L_GRSOPR.RES             
L_GRSCH.RES              
L_GRPLAT.RES             
L_DOVER.RES              
L_DOGOVOR.RES            
L_CRM.RES                
L_CONSIG.RES             
L_COMMON.RES             
L_CESSIA.RES             
L_CALCUSL.RES            
L_BOX.RES                
L_BASEDOC.RES            
L_ADVREP.RES             
L_WOOD.RES               
L_NIOKR.RES              
L_VPR.RES                
L_VAL.RES                
L_UKSPLANS.RES           
L_UKS.RES                
L_TTNDOC.RES             
L_SPEXCH.RES             
L_SOPRDOC.RES            
L_SMETA.RES              
L_SKLAD.RES              
L_SKID.RES               
L_SF.RES                 
L_SERIALN.RES            
L_SALDOMTR.RES           
L_ROZN.RES               
L_RETTARA.RES            
L_RESERVE.RES            
L_REPOPER.RES            
L_REPBASEDOC.RES         
L_REMONT.RES             
L_REALTING.RES           
L_PRNSOPR.RES            
L_PRICES.RES             
C_WEBSERVICES.RES        
C_USERMANUAL.RES         
C_TREETUNE.RES           
C_TREE.RES               
C_STATLINE.RES           
C_PARTNER.RES            
C_OLAP.RES               
C_MAILER.RES             
C_JOIN.RES               
C_EXPIMP.RES             
C_CHECKOPER.RES          
C_CHECKKBU.RES           
C_EXTCLASS.RES           
C_TUNE.RES               
C_COMMON.RES             
C_CORPO.RES              
GALHELP.RES              
GALINFO.RES              
Z_SREDN.RES              
Z_ZAR.RES                
Z_STAFFRECRUITING.RES    
Z_CALC.RES               
Z_MP.RES                 
Z_PAYREP.RES             
Z_STAFFBUILDER.RES       
Z_STAFFREPORTS.RES       
Z_STATIS.RES             
Z_NDFL.RES               
Z_FOT.RES                
Z_STAFFDOPREPORTS.RES    
Z_MENU.RES               
Z_WT.RES                 
Z_TARSTAV.RES            
Z_STAFFTEST.RES          
Z_STAFFCAT.RES           
Z_STAFF.RES              
EXTFUN_WT.RES            
EXTFUN.RES               
Z_PFREP.RES              
Z_MGTS.RES               
Z_LSCHET.RES             
Z_KATPODR.RES            
Z_CALENDAR.RES           
M_UP.RES                 
M_TRANSP.RES             
M_TPP.RES                
M_SKLPLAN.RES            
M_SERV.RES               
M_SCRIPTS.RES            
M_QUALITY.RES            
M_MNPLAN.RES             
M_DVS.RES                
M_GETPOTR.RES            
M_EIXML.RES              
M_CONTROL.RES            
F_XLSREP.RES             
F_VZACHET.RES            
F_VEKS.RES               
F_VEDOM.RES              
F_VALUTDOC.RES           
F_UTILS.RES              
F_USERREPORT.RES         
F_TXOAPI.RES             
F_TXO.RES                
F_TREENEW.RES            
F_TEMPLATE.RES           
F_TAXES.RES              
F_SOPRHOZ.RES            
F_SHTRAF.RES             
F_SFO.RES                
F_SALDO.RES              
F_RTXO.RES               
F_POST.RES               
F_PODOT.RES              
F_PLPORREP.RES           
F_PLPOR.RES              
F_PLANSSCH.RES           
F_PAT.RES                
F_OSREP.RES              
F_OSOPER.RES             
F_OSINVCARD.RES          
F_OS.RES                 
F_OFP.RES                
F_OBOROT.RES             
F_NALOGREG.RES           
F_MBPPUB.RES             
F_MBP.RES                
F_KATKOD.RES             
F_KATDOC.RES             
F_ISKI.RES               
F_GETAN.RES              
F_FPOBOROT.RES           
F_FPKATH.RES             
F_FPHASHAN.RES           
F_FPCATALOG.RES          
F_FPBUDGET.RES           
F_FPADDFLD.RES           
F_FILIAL.RES             
F_FA.RES                 
F_EXTAN.RES              
F_DRAGM.RES              
F_DOCOB.RES              
F_DISTPL.RES             
F_DIFFRATE.RES           
F_CONSOL.RES             
F_COMMON.RES             
F_CLOSCH.RES             
F_CASHBANK.RES           
F_BUHSCHET.RES           
F_BUHREP.RES             
F_BANKDOCF.RES           
F_BACKLOG.RES            
F_AVIZO.RES              
F_APLAN.RES              
F_AN.RES                 
F_ALG.RES                
ATLHELP.RES              
вспомнил, что в свое время тоже что-то не собиралось, поднял старые CFG-шники и нашел что след. комбинация удовлетворяет моим условиям
стало

Код: Выделить всё

atlHelp.res          
C_CheckKBU.res       
C_CheckOper.res      
C_Common.res         
C_Corpo.res          
C_ExpImp.res         
C_ExtClass.res       
C_Join.res           
C_Mailer.res         
C_OLAP.res           
C_Partner.res        
C_StatLine.res       
C_Tree.res           
C_TreeTune.res       
C_Tune.res           
C_UserManual.res     
C_WebServices.res    
compdata.res         
EXTFUN.RES           
ExtFun_WT.res        
F_Alg.res            
F_An.res             
F_APlan.res          
F_Avizo.res          
F_BackLog.res        
F_BankDocF.res       
F_BuhRep.res         
F_BuhSchet.res       
F_CashBank.res       
F_CloSch.res         
F_Common.res         
F_Consol.res         
F_DiffRate.res       
F_DistPl.res         
F_DocOb.res          
F_DragM.res          
F_ExtAn.res          
F_FA.res             
F_Filial.res         
F_FpAddFld.res       
F_FpBudget.res       
F_FpCatalog.res      
F_FpHashAn.res       
F_FpKatH.res         
F_FpOborot.res       
F_GetAn.res          
F_Iski.res           
F_KatDoc.res         
F_KatKod.res         
F_MBP.res            
F_MBPPub.res         
F_NalogReg.res       
F_Oborot.res         
F_OFP.res            
F_OS.res             
F_OSInvCard.res      
F_OSOper.res         
F_OsRep.res          
F_Pat.res            
F_PlansSch.res       
F_PlPor.res          
F_PlPorRep.res       
F_PoDot.res          
F_Post.res           
F_RTXO.res           
F_Saldo.res          
F_SFO.res            
F_Shtraf.res         
F_SoprHoz.res        
F_Taxes.res          
F_Template.res       
F_TreeNew.res        
F_TXO.res            
F_TXOAPI.res         
F_UserReport.res     
F_UTILS.res          
F_ValutDoc.res       
F_Vedom.res          
F_Veks.res           
F_VZachet.res        
F_XlsRep.res         
GalHelp.RES          
GalInfo.res          
L_AdvRep.res         
L_BaseDoc.res        
L_Box.res            
L_CalcUsl.res        
L_Cessia.res         
L_Common.res         
L_Consig.res         
L_CRM.res            
L_Dogovor.res        
L_Dover.res          
L_GrPlat.res         
L_GrSch.res          
L_GrSopr.res         
L_Kassa.res          
L_KatNazna.res       
L_KatOrg.res         
L_KatParty.res       
L_KontrBal.res       
L_MakeDO.res         
L_MakeNakl.res       
L_Market.res         
L_MCU.res            
L_MOL.res            
L_MoveCell.res       
L_NalNakl.res        
L_Nalog.res          
L_NIOKR.res          
L_Ostatki.res        
L_PhoneCard.res      
L_PlanPR.res         
L_Prices.res         
L_PrnSopr.res        
L_Realting.res       
L_Remont.res         
L_RepBaseDoc.res     
L_RepOper.res        
L_Reserve.res        
L_RetTara.res        
L_Rozn.res           
L_SaldoMtr.res       
L_SerialN.res        
L_SF.res             
L_Skid.res           
L_Sklad.res          
L_Smeta.res          
L_SoprDoc.res        
L_SpExch.res         
L_TTNdoc.res         
L_UKS.res            
L_UksPlans.res       
L_Val.res            
L_VPr.res            
L_Wood.res           
M_Control.res        
M_DVS.res            
M_EIXML.res          
M_GetPotr.res        
M_MnPlan.res         
M_Quality.res        
M_Scripts.res        
M_Serv.res           
M_SklPlan.res        
M_TPP.res            
M_Transp.res         
M_UP.res             
supFilials.res       
support.res          
Z_Calc.res           
Z_Calendar.res       
Z_FOT.res            
Z_KATPODR.res        
Z_Lschet.res         
Z_Menu.res           
Z_MGTS.res           
Z_MP.res             
Z_NDFL.res           
Z_PAYREP.res         
Z_PFREP.res          
Z_Rlist.res          
Z_SREDN.res          
Z_Staff.res          
Z_StaffBuilder.res   
Z_StaffCat.res       
Z_StaffDopReports.res
Z_StaffIerRep.res    
Z_StaffMenu.res      
Z_StaffNastr.res     
Z_StaffRecruiting.res
Z_StaffReports.res   
Z_StaffTest.res      
Z_Statis.res         
Z_TarStav.res        
Z_WT.res             
Z_ZAR.res            
Z_ZarNastr.res       
по всей видимости нужно подключать ресурсы в алфавитном порядке следования компонент.
хотя мей би я не прав...
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

compdata.res никогда не подключайте!!!
ресы нужно подключать в том порядке, как они в галактике в отчете о рабочей станции - так надежней, хотя с ведением компонентной принадлежности уже не так актуально, но все могет быть.
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

compdata.res никакого криминала в себе не несет, никогда не мешал, а даже (счас точно не помню где) - без него даже чота не компилилось :-)
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

Сообщение KATZ »

Screw писал(а):Если не ошибаюсь, то перечни зарегистрированных функций друг друга не перекрывают, а дополняют... перекрываться могут только описания отдельных функций.
Если бы это было так, то наличие EXTFUN.RES гарантировало бы нормальную компиляцию, независимо от других подключенных файлов и от места EXTFUN.RES в их списке. А раз результат зависит от порядка перечисления RES-файлов - значит, перечни функций не дополняются, а перекрываются целиком.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

да. а PutHotCommand нет ужо в vipprogr.chm - могли и вообще убрать. Но это нужно смотреть всю сборку extfun.res, а в каталоге FRM\CompSrc\ExtFun\ExtFun\vip\ не все файлы, да и там только то что лежит в dll, то что определяется на уровне атлантиса там нет. Если уж очень надо, то попробуйте поискать dll, где она есть и объявить аналогично. А лучше заменить на PutCommand.
У меня впрочем компилиться нормально, патчи вчера ставил.
Вот смущает что без compdata не комплится - vip если лежит в каталоге сапорта или галки сам его подключает. Вообще добавте /r в строку компиляции - запустится сам vip после отработки строчного компилятора - и там поглядите отчет о рабочей станции.
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

Ребят, еще раз повторюсь - после "метода научного тыка", заключавшегося в перетасовке порядка подключения ресурсников (см. выше пост о порядке подключения ресов) проблема исчезла.
Всем спасибо. :-)
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

Сообщение Screw »

Долго пытался поднять упавшую на пол челюсть, просматривая список :-? Братцы, сборка Галактики обходится подключением пары-тройки ресурсов с заголовками внешних функций и базовыми интерфейсами для наследования. И всё! Ну еще ради базовых форм можно ресурс подключить, но весь же набор! Хотя мне конечно сложно оценить условия работы стороннего разработчика, поэтому я воздержусь от критики.

А по существу имею сказать следующее: скорее всего, существенной оказалась перестановка EXTFUN.RES и EXTFUN_WT.RES. Если у кого сейчас есть возможность, то проверьте, пожалуйста, сию теорию. Есть у меня одна безумная догадка, но я не буду ее пока озвучивать...
Виталий
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

Screw писал(а):Долго пытался поднять упавшую на пол челюсть, просматривая список :-? Братцы, сборка Галактики обходится подключением пары-тройки ресурсов с заголовками внешних функций и базовыми интерфейсами для наследования. И всё! Ну еще ради базовых форм можно ресурс подключить, но весь же набор! ...
Виталиq, а может быть потому и возникают новые дыры при латании старых?
У меня закрадывается смутное сомнение, что большинство появляющихся новых дырок, там, где их никогда не было - как раз в том что "пара-тройка и усё"...
но опять таки - это сугубо предположения :-)
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

Сообщение Screw »

Лучший выход из любой ситуации - принимать решения, основанные на четком понимании ситуации, принципов, механизмов. "Пара-тройка..." - пример такого решения. Необходимые и достаточные. А вот касательно того, как распоряжается заголовками компилятор у меня точной информации нет. Если судить по тому, как реализовано подключение в Галактике, то перекрываются только декларации отдельных функций. Если судить по общим для любых ресурсных файлов правилам, то перекрываться должны наборы заголовков, и тогда поведение компилятора вполне объяснимо, и становится ясно, что для Галактики была разработана специальная версия метода подключения. Уточню - сообщу.
Виталий
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Косяк с PutHotCommand

Сообщение RAJAH »

Приветствую!
Такая проблема возникла: при компиляции строчником cnf-файла получаю сообщение "Потеряли функцию "PUTHOTCOMMAND"!".
Код батника:

Код: Выделить всё

<<Каталог Галактики>>vip.exe iBornDateinLS.cnf /linc=ddd /c:VIP.cfg /resources:<<Каталог Галактики>>Z_Lschet.res
Результат выполнения:

Код: Выделить всё

Путь_запуска><<Каталог Галактики>>vip.exe iBornDateinLS.cnf /linc=d
dd /c:VIP.cfg /resources:<<Каталог Галактики>>Z_Lschet.res
Interface compiler. Версия 5.4.38.5 (c) 1992-2012, корпорация "Галактика"

Считывается словарь ████████████████████████████████
Идет загрузка таблицы X$FILES<!> из базы.(|)
Путь_запуска\iBornDateinLS.cnf(0)
Потеряли функцию "PUTHOTCOMMAND"!
Продолжить выполнение?
(Нет - выход из программы, Отмена - не сообщать о дальнейших ошибках) [ Y-да N-н
ет ESC-отмена ] : да.

Путь_запуска\iBornDateinLS.cnf(53)
Путь_запуска\iBornDateinLS.cnf(53)
Путь_запуска\iBornDateinLS.cnf

Время компиляции 4.6 сек.
Что это значит, чем грозит и как победить?
KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

Re: Косяк с PutHotCommand

Сообщение KATZ »

1). В VIP.CFG есть ссылка на ресурс со списком функций EXTFUN.RES?
2). Даже если один файл компилируется, всё равно лучше делать через PRJ. Когда-то давно была у меня ситуация: файл не компилировался, но стоило всего лишь создать проект с этим единственным файлом, как всё пошло. С тех пор - только через проекты.
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Косяк с PutHotCommand

Сообщение RAJAH »

Сделал проект - то же самое. В проекте #setcurenv "galnet" написал, и ключ /resources не нужен.
Ага, нужен, оказывается: /resources: ExtFun.res указал, и ошибка исчезла, хотя ExtFun.res в репозитарии уже подключён к системе "galnet".
Последний раз редактировалось RAJAH 22 июн 2012, 10:40, всего редактировалось 1 раз.
KATZ
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49

Re: Косяк с PutHotCommand

Сообщение KATZ »

RAJAH писал(а):В проекте #setcurenv "galnet" написал, и ключ /resources не нужен.
Где-то уже обсуждалось раньше. Есть два файла с описаниями функций: EXTFUN.RES и EXTFUN_WT.RES. Список функций в обоих файлах имеет одинаковое имя. Если оба файла подключены, то фактически только один список будет доступен, а не оба. Ваша функция есть в первом списке, но отсутствует во втором. Приоритет у обоих файлов одинаковый, в каком порядке они грузятся - хз. Я бы попробовал убрать #setcurenv и явно подключить только нужные ресурсы.

Добавлено:
Только сейчас заметил, что в этой же теме и обсуждалось.
Ответить