Страница 1 из 1

Вызов интерфейса из frm

Добавлено: 27 дек 2023, 15:33
Espada
Доброго дня, столкнулся с проблемкой. Из frm отчёта нужно вызвать интерфейс и передать в него нрек документа. Вроде всё компилируется, и нрек передаётся в файл интерфейса, но проблема, что интерфейс не отображается пишет: Не найден объект IVIPIFCIFC SBYT_CMR::DOVERVYBOR, описывающий интерфейс вызова.
Код PRJ файла:

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

#make 'g:\Рабочая папка\Исходники Галактики\СБЫТ\CMR\интерфейс выбора.vip'
#include "g:\Рабочая папка\Исходники Галактики\СБЫТ\CMR\_callingFunction.vih"
#make 'g:\Рабочая папка\Исходники Галактики\СБЫТ\CMR\Бланк_CMR_v3.1.frm' 
Код FRM файла:

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

...
ss:string
psNrec:Comp
igetPath:M_MnPlan::DoverVybor
_Dover:String
...
.begin
psNrec := НАКЛАДНАЯ_НРЕК
ss:=igetPath.DirectoryFile(psNrec);

RunInterface(Sbyt_CMR::DoverVybor, _Dover);
End.
Код Vih файла:

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

#component 'M_MnPlan'
ObjInterface objDirectoryFile;
  function DirectoryFile(PSNrec:comp) : string;
End;

vipinterface DoverVybor implements objDirectoryFile parameters ( i : string ); 
Код Vip файла:

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

#component 'M_MnPlan'
#include _callingFunction.vih

interface DoverVybor 'Выбор Доверенности';
show at (0,3,35,16);   
...
function DirectoryFile(PSNrec:comp) : string;
{
NrecOrg := PSNrec;
Dover := string(NrecOrg,0,0);
Message('Nrec Накладной: ' + Dover);
};
HandleEvent  
По итогу Функция DirectoryFile отрабатывает и сообщение с нреком накладной выводит, но после интерфейс не запускается а пишет сообщение: Интерфейс SBYT_CMR::DOVERVYBOR не найден...
может сможете подсказать что я делаю не так :cry:

Re: Вызов интерфейса из frm

Добавлено: 29 дек 2023, 10:02
Irina_
Здравствуйте.
igetPath:M_MnPlan::DoverVybor

RunInterface('Sbyt_CMR::DoverVybor', _Dover); //имя интерфейса надо в кавычках.

В каком компоненте скомпилирован инт-с DoverVybor: M_MnPlan (определение переменной igetPath) или Sbyt_CMR (вы-зов)?

Re: Вызов интерфейса из frm

Добавлено: 29 дек 2023, 11:34
edward_K
Видимо у вас компонента не та схватилась.
Есть 3 пути
Включить vih в проект перед vip и frm
Использовать секцию declare в форме,где инклюдом подключить vih
Прописать компоненте непосредственно в вызов.
Вообще внимательно смотрите логи компиляции и устраняйте все предупреждения там 100% нужное было.

Re: Вызов интерфейса из frm

Добавлено: 03 янв 2024, 15:53
Espada
спасибо большое, всё получилось. ошибся в Frm-ке самой, да нужно было RunInterface(‘M_MnPlan::DoverVybor’, _Dover). спасибо