GetProfName(Prof)
{
   char s[256];
   GetValueClassif("T_GUIDE\\prof.tab",Prof,s,255,"Value","Kod");
   return s;
}

Message ( &Arg,  &pcT, W, A)
//////////////////////////////////////////////////////////////////
// Сообщение(парам1,парам2)
// парам1 - текст сообщения
// парам2 - заголовок окна
//////////////////////////////////////////////////////////////////
{
   var FuncParam =  CreateObject("ParamFuncRW");
   FuncParam.IInitial(static_cast_to_string(Arg),",",10);
   int CountParam=FuncParam.Count();

   if ( CountParam )
   {
      AmbaMessageBox(FuncParam.Get(0),FuncParam.Get(1),1);
   }
   return pcT;
}

ToLeft( &Arg,  &pcT, W, A)
//////////////////////////////////////////////////////////////////
// Выравнивание числа по левому краю
//////////////////////////////////////////////////////////////////
{
   double Sum = atof(GetVarValue(Arg));
   char StrTmp[W+256];
   sprintf(StrTmp,"%-*.*f",W,A,Sum);
   Text_Text(pcT,StrTmp,W);
   return pcT;
}

UserCombineRefF2(&buffer,bufsize,handle,&C_Params)
{
  // функция для вызова справочника совместительств из таблицы
  // у поля Совместительство в таблице настройки написать в функции предварительной обработки:
  // CLASSIF(S:UserCombineRefF2) 
  // ЧИТАЕТ ЛИЦЕВОЙ СЧЕТ с табельным номером взятым из поля C_FIO 

  char ss[bufsize+1];
  CharToOem(buffer,ss);
  var CTabl=CreateObject("CurPrnTbl");
  CTabl.Initial(C_Params.pTabl);
  int Tn=atoi(CTabl.TextS("C_FIO",CTabl.Get_N_Rcr()));
  int er=LSRead(Tn,2);
  if (er==1)
  {
    int rc=ShowCombineRef(ss,ss, 2, 5, 70, 15);
    if (rc!=ESC)
    {
	   OemToChar(ss, buffer);
      return 1;
    }
  }
  return 0;
}

/*
// Функция которая для преднастроенного режима "по-среднему" и индексу фонда возвращает индекс "целевого фонда" (на который надо записать сумму с этого фонда)
// idSredn - id режима расчета по-среднему
// fond - индекс фонда, для которого ищем целевой
// objSredn - класс расчета среднего, из него можно достать например настройки objSredn.GetNastr(...)
// Возвращаемый результат: индекс "целевого" фонда
UserGetTargetFondPoSredn(idSredn,fond,objSredn)
{
   var d = objSredn.GetNastr().GetDateSr();
   // для преднастроенного режима с id = 2 все кроме второго фонда объединяем на первом фонде
   if ( idSredn==2 )
      return fond!=1?0:1;
   return 0; // на первый фонд
}
*/

/*
// Функция которая для преднастроенного режима "по-среднему" и индексу фонда возвращает код вида Н-У для суммы среднего
// idSredn - id режима расчета по-среднему
// codNU - внутрениий кода Н-У в соответствии с настройками этого режима "по-среднему"
// fond - индекс фонда, для которого ищем целевой
// objSredn - класс расчета среднего, из него можно достать например настройки objSredn.GetNastr(...)
// Возвращаемый результат: внутренний код вида на который надо записать сумму "по-среднему" для этого фонда
UserGetCodNUPoSredn(idSredn,codNU,fond,objSredn)
{
   var d = objSredn.GetNastr().GetDateSr();
   // для преднастроенного режима с id = 2 код вида для второго фонда - следующий после того, который взят в настройках (введен в панели)
   // для всех остальных - то что взято из настроек/введено в панели
   if ( idSredn==2 )
      return fond!=1?codNU:(codNU+1);
   return codNU; // вид в соответствии с настройками или то, что введен в панели перед расчетом
}
*/

/* 
// Пример функции, которая окончательно причесывает "строчку" стажа попадающую в отчет
// iDatBegStag - дата начала строки стажа в виде ГГГГММДД
// iDatBegPer, iDatEndPer - даты начала и конца отчетного периода в виде ГГГГММДД
UserPatchRowStag(iDatBegStag,iDatBegPer,iDatEndPer)
{
   var dbeg = KDateFromIntDate(iDatBegStag);
   var trStag = CreateObject("TStag");
   trStag.InitD(dbeg.ToString());
   if ( trStag.GetStagS("’…ђ“‘‹")=="ЋЉ“" )
   {
      trStag.SetStagS("’…ђ“‘‹","");
      trStag.SetStagS("’…ђђЉ","");
      trStag.SaveKch(dbeg.ToString());
   }
   return 0;
}
*/

/*
// Пример функции, которая определяет для ЛС дату начала отпуска по БиР (по уходу) для отчета "ЕФС-1 СТАЖ. Назначение выплат по ОСС"
// absM - абсолютный месяц, по который собираем отчет (с начала года)
// pDate - объект KDate который надо заполнить датой начала отпуска
// в результате вернуть строку в Win кодировке с типом отпуска - ДЕКРЕТ, ДЕТИ или ДЕТИПРЛ
// если pDate не заполнен или в результате пустая строка - программа будет искать дату встроенным механизмом
Efs1GetOssVacationDateAndTypeForCurrentLS(absM, pDate)
{
   var ps = "usrKchFld"; //поле где хранится дата начала отпуса по БиР
   var kchDate = KDateFromInt_LastDay(absM);
   char buf[256];
   GetKchValue(ps, buf, 255, kchDate);
   pDate.SetDate(buf);
   if (pDate.IsValid())
      return "ДЕКРЕТ";
   return "";
}
*/