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

Re: Добавление документа в модуль

Добавлено: 30 мар 2011, 19:13
BlazeBio
Вот скажите,должно появиться чего? А то у меня тупняк с созданием нового меню.

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

#ifdef ComponentVersion
#component "L_Dogovor"
#end

const
  cmDoSomething  = 3005;
end

Interface ChangePersMenu;
View select * from x$resources;
HandleEvent
cmInit :
{
If Message ( 'Изменить?', YesNo ) = cmYes
{
 var iMenu, iSubMenu : LongInt;
  DeleteMenuHowDynamics ( 'ololo' );
  iMenu := LoadMenuEx ( 'L_Dogovor::blazebio',true,false);
  AddMenuItem ( iMenu, 'лол', cmDoSomething);
  StoreMenuHowDynamics ( iMenu,'ololo');
  DisposeLoadMenu ( iMenu );
  ReinitHeaderMenu;
};
else
{
	DeleteMenuHowDynamics ( 'ololo' );
	ReinitHeaderMenu;
}
Abort;
}; 
cmDoSomething:
{
	message('Всё работает!');
}
End;
END.

BlazeBio menu
{
  {
   - 'Справочники',cmRunInterface ( 'L_dogovor::Plan' );
  }
}
А то получается какой-то действительно лол. :)

Re: Добавление документа в модуль

Добавлено: 31 мар 2011, 10:53
Vik
Абсолютно не понятно, для чего своё меню пересохранять как динамическое. Так же сомнительно, как докомпиляция собственного интерфейса. А вообще, у вас должна просто создаться запись в x$Resources с xr$Type = 3 и xr$Name = 'MENU ololo'. Это при условии, что вы сможете откомпилировать то, что написали, потому что меню BlasBio описано неверно

Re: Добавление документа в модуль

Добавлено: 05 авг 2011, 09:55
Алексей
Создал свою таблицу в базе (новый документ). Хочу работать со стандартными статусами Галактики L_DOGOVOR::StatLog
Но при вызове ругается что тип не зарегистрирован в ChkNotes.vpp.
Можно как то обойти это ?
И какие типы документов в галке оставлены под пользовательские? (типа vidsopr viddoc.... какие цифры юзать, диапозон)

Re: Добавление документа в модуль

Добавлено: 05 авг 2011, 10:51
m0p3e
Не оставили разработчики диапазона. Можно докомпилировать объектник iNotes как-то так:

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

 Alter Interface iNotes;
overload NotesObj.GetWorkDocNotes(pVidDoc : word) : Boolean; end;
Function GetWorkDocNotes(pVidDoc : word) : Boolean;
{
 Result := inherited::GetWorkDocNotes(pVidDoc);
 If not Result
   If pVidDoc = MyTipDoc
     Result := true;
}
End.

Re: Добавление документа в модуль

Добавлено: 05 авг 2011, 11:47
Алексей
в саппорте внёс вручную нужные мне записи, статусы заработали.

Re: Добавление документа в модуль

Добавлено: 05 авг 2011, 11:49
m0p3e
При проверке будет материться :)
Там ситуация следующая. При запуске интерфейса работы со статусами ищется первый подходящий статус (запись в KatNotes) с таким видом документа. Если он не находится, то запускается интерфейс CheckKatNotes, который пытается проинициализировать типовые статусы, предварительно проверив тип статуса на зарегистрированность (вот здесь рождается сообщение выше).
После ручного добавления записи в KatNotes для данного типа проверка автоматически уже не вызывается.
Если уж совсем красиво хочется сделать, то дополнительно нужно добавить обработку своего типа в CheckKatNotes. Дело 10 минут, а все требуемые статусы будет добавляться без участия саппорта. :)

Re: Добавление документа в модуль

Добавлено: 05 авг 2011, 12:17
Алексей
а требуемые это оформляемые исполняемые и т.д.? мне они как раз не нужны вообще, там полностью другая ветка. но спасибо, возьму на вооружение.

Re: Добавление документа в модуль

Добавлено: 05 авг 2011, 12:55
m0p3e
Алексей писал(а):а требуемые это оформляемые исполняемые и т.д.? мне они как раз не нужны вообще, там полностью другая ветка. но спасибо, возьму на вооружение.
Можно описать любые. Они станут стандартными :)

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

  CASE pVidDoc OF
    1..11,17,18,21..22,27,30..33,37 : // платежные документы
    {
      AddNote (0,0,0,'0','оформляемый'     ,'оформл.',1) ;
      AddNote (0,0,1,'1','исполняемый'     ,'исполн.',1) ;
      AddNote (0,0,2,'2','закрытый'        ,'закрыт' ,1) ;
      delete KatNotes where ((pVidDoc == KatNotes.VidDoc and
                              word(2) << KatNotes.Status));
    }
................................................

Re: Добавление документа в модуль

Добавлено: 26 окт 2011, 21:23
Vitaliy
m0p3e писал(а): После ручного добавления записи в KatNotes для данного типа проверка автоматически уже не вызывается.
Если уж совсем красиво хочется сделать, то дополнительно нужно добавить обработку своего типа в CheckKatNotes. Дело 10 минут, а все требуемые статусы будет добавляться без участия саппорта. :)
Ну ручное добавление можно внести в событие инициализации своего фейса с проверкой на наличие этих записей в табилце.
А вот на счет докомпиляции фейса: если мне память не изменяет, то при установке патчей, в которых докомпиленый фейс есть, прийдется передокомпилять. Или я не прав?

Re: Добавление документа в модуль

Добавлено: 26 окт 2011, 22:07
m0p3e

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

А вот на счет докомпиляции фейса: если мне память не изменяет, то при установке патчей, в которых докомпиленый фейс есть, прийдется передокомпилять. Или я не прав?
Не обязательно, но крайне желательно. В этом и суть докомпиляции - при выходе обновлений пересобираем и получаем обновление стандартного функционала + свои доработки.

Re: Добавление документа в модуль

Добавлено: 27 окт 2011, 11:50
Vitaliy
m0p3e писал(а): Не обязательно, но крайне желательно. В этом и суть докомпиляции - при выходе обновлений пересобираем и получаем обновление стандартного функционала + свои доработки.
Ну все правильно, таким образом заказчик, который не имеет лицензии на вип, даже имея исходные коды для докомпиляции будет вынужден прикупить эту самую лицензию на вип :) Ну и у себя, если надоработано не мало, надо всегда держать общий пакет для сборки, что бы сразу после установки патчей дособирать. Что не совсем удобно.
ну это уже оффтопик :)