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

Докомпиляция интерфейса ?

Добавлено: 30 сен 2009, 18:53
Gameus_
Доброго дня. Есть такая проблема: пользователи хотят видеть в интерфейсе L_DOGOVOR::GETCALPLAN поле кункт отгрузки. Смотрю конфигуратором - ссылка на marpunkt есть, а самой таблицы нет. Как тут быть ? Я так понимаю нужно докомпилировать стандартный интерфейс и добавить во вьюху таблицу ?? Если да, то можете поделиться аналогичным примером? докомпиляции никогда не делал, да и вообще, с интерфейсами не особо знаком.... из того, что нашел на форуме по alter interface - ниче не понял :(

Добавлено: 30 сен 2009, 19:08
m0p3e
Добавление полей с значениями двух атрибутов в 4 закладку карточки сотрудника через докомпиляцию

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

alter interface RecWin04 (fix 'Место работы и должность');

Create View
as Select *
from
 AttrNam PsnLinkPostN
,AttrVal PsnLinkPostV
,AttrNam PsnLinkDeptN
,AttrVal PsnLinkDeptV
Where ((
         'Место работы/учебы'  == PsnLinkDeptN.name
     and 25005                 == PsnLinkDeptN.wTable
     and PsnLinkDeptN.wTable   == PsnLinkDeptV.wTable
     and PsnLinks.nrec         == PsnLinkDeptV.cRec
     and PsnLinkDeptN.nrec     == PsnLinkDeptV.cAttrNam
     and 'Должность/профессия' == PsnLinkPostN.name
     and 25005                 == PsnLinkPostN.wTable
     and PsnLinkPostN.wTable   == PsnLinkPostV.wTable
     and PsnLinks.nrec         == PsnLinkPostV.cRec
     and PsnLinkPostN.nrec     == PsnLinkPostV.cAttrNam
      ))
;

hideFormats scrLinkedPsn;

screen scrLinkedPsn_my;
show at (,3,,19);
table PsnLinks;
Fields
  PsnLinks.SeqNmb      ('N п/п');
  PsnLinksTypeCat.Name ('Степень родства. Выбор из каталога по F3.',
          , scStaffReceptionT2ComPick) : pickbutton, protect;
  PsnLinks.RBornDate   ('Дата рождения', ,
          scStaffReceptionT2SLEditPick) : [10,'DD/MM/YYYY'], noProtect;
  PsnLinks.RFIO        ('Фамилия, Имя, Отчество') : noProtect;
  LPLivName ('Место проживания. F3-Выбор.',
          , scStaffReceptionT2ComPick) : pickbutton, protect;
  PsnLinkDeptV.vString ('Место работы/учебы родственника (Для редактирования нажмите Alt+A)') : Protect;
  PsnLinkPostV.vString ('Должность/профессия родственника (Для редактирования нажмите Alt+A)') : Protect;
  PsnLinks.LType      ('Кто родственник...') : noProtect;
  PsnLinks.KolLgota   ('Количество ММОТ в льготе') : noProtect;
  PsnLinks.DatOk      ('Дата окончания действия льготы') : noProtect;
  DateBegDocInv   ('', hcStaffijd,
         scStaffReceptionT2SLEditPick) : [10,'DD/MM/YYYY'], noProtect;
  DateEndDocInv   ('', hcStaffijd,
         scStaffReceptionT2SLEditPick) : [10,'DD/MM/YYYY'], noProtect;

Buttons
  cmPasteFromBuf,,,'Скопировать адрес сотрудника',
        hcStaffGetPersonPasspAddr;

<<   'Персональные данные родственника'
                          Р О Д С Т В Е Н Н И К И
      № п/п.@@@@  Степень родства.@@@@@@@@@@@@@@@@@@@@@@@@@   Дата рождения.@@@@@@@@@@
      Фамилия,Имя,Отчество .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      Место прописки:      .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                          <.Скопировать адрес сотрудника.>
      Место работы .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Должность .@@@@@@@@@@@@@@@@@@@@@

      [.] Иждивенец (не имеет самостоятельных доходов)`
      [.] Студент или учащийся дневного отделения     `
      [.] Инвалид                                     `
      [.] Ребенок вдовы/вдовца/одинокого опекуна      `
      Кол-во ММОТ в льготе .@@@              Дата окончания действия льготы.@@@@@@@@@@
     `Дата начала действия льготы на инвалида`   .@@@@@@@@@@
     `Дата окончания действия льготы на инвалида`.@@@@@@@@@@
>>
end; // scrLinkedPsn

HandleEvent
 cmPickAttr:
  {
   inherited::handleEvent (cmPickAttr);
   RescanPanel(#PsnLinks);
  };

End;

end.

Добавлено: 30 сен 2009, 19:15
Gameus_
я так понимаю нужны исходники, чтобы знать куда добавлять ? или нет ?

Добавлено: 30 сен 2009, 19:44
m0p3e
Зависит от задачи, но с ними однозначно лучше.

Добавлено: 30 сен 2009, 19:50
Gameus_
если есть время, можете посмотреть мой случай ? интерфейс L_DOGOVOR::GETCALPLAN (накладные на отпуск -- расшир инф -- календарный план) там ссылка на markunkt имеется... нужно подцепить саму таблицу и показать наименование пункта разгрузки. Задача как я понимаю "из простых" у меня просто нет опыта в этих делах, не знаю с какой стороны подойти....
исходников нет......

Добавлено: 01 окт 2009, 10:49
Seybukan
Добавте конфигуратором вычисляемое поле.
sTXOGetField('MARPUNKT','NAME',CALPLAN.CPUNKTP)

Добавлено: 01 окт 2009, 12:14
Gameus_
Спасибо, то, что нужно. Не знал про такую полезную функцию :)

Добавлено: 15 окт 2009, 15:53
Vik
А можно, если потребуется, самому функцию на випе написать, объявить ее как static, зарегистрировать и использовать в вычисляемых полях по тому же принципу, что и sTXOGetField

Добавлено: 16 окт 2009, 02:29
mwoland
Vik, нельзя ли поподробнее про регистрацию функции?
Охх сам прочитал. Спасибо за пинок в нужном направлении. Очень полезная инфа. Была бы тут репа - заплюсил бы.