Ваши комментарии

Пример функции:

/*
numSet- номер сетки
row - номер строки в сетке ( нумерация с 1)
d1 - дата начала периода (в виде строки дд.мм.гггг)
d2 - дата окончания периода
*/
GetRateValues(numSet,row,d1,d2)
{
  var map = CreateObject("MapString");
  char zplPath[256];  GetCurrentDirectory(255,zplPath);  // путь до zpl
  char filePath[256];sprintf(filePath,"%s\\TABLSET\\Tabl%d.Set",zplPath,numSet);  // путь до сетки
  if ( access(filePath,0) )
  {
    AmbaMessageBox("Файл с сеткой не найден","Ошибка",MB_OK|MB_ICONERROR,0);
    return map;
  }
  
  var db=KDateFromStr(d1);
  var de=KDateFromStr(d2);
  
  var tabl = CreateObject("CurPrnTbl");  tabl.InitialNameFile(to_string(filePath));
  int countFld=tabl.Count_Fld();// число столбцов
  //цикл по столбцам
  double prevRateValue=0.;
  for(int idxFld=0; idxFld < countFld ;idxFld++)
  {
    string fldName=tabl.Name(idxFld);FreeSpaceString (fldName,3,""); 
    var date=KDateFromStr(fldName);
    //нас интересую только столбцы с датой
    if(!date.IsValid()) 
      continue;
    
    //значение ставки
    double rateValue=atof(tabl.Text(idxFld,row-1));
    prevRateValue=rateValue;
    
    //дата не входит в интересующий нас период
    if (date.GT(de) || date.LT(db))
      continue;
    
    //добавим значение ставки на начало периода
    if(!map.IsExist(db.GetDouble()))
      map.Add(db.GetDouble(),prevRateValue);
    
    //добавим значение ставки на дату date  
    map.Add(date.GetDouble(),rateValue);
  }
  return map;
}

Пример использования:

var map=GetRateValues(85,3,"01.01.2020","31.08.2020");
ShowRates(map,"01.01.2020","31.08.2020");

Результат:

Скрипт: USFUNCRW.S

Вы хотите, что первым всегда печатался "основной источник"?

Непонятно почему вы не можете дать развернутый ответ на поставленный вопрос...

Переделывать печатные формы для каждого банка, с сомнительной для пользователя выгодой, то еще удовольствие.

Извините, что утомил вас вопросами. 

Включаю режим молчания.

З.Ы. Для сбера можете взять этот патч.( в поставку НЕ войдет)

В печатную форму добавлен столбец ТН:

patch.zip

З.ы.ы. с таким опытом сопровождения добавить столбец в печатную форму должно быть не сложным делом..

Добрый день.

Откуда родилась такая задача? 

Мы никогда не занимались сортировкой "источников" в печатных формах...

Почему первым должен быть именно федеральный бюждет?

З.ы. на сортировку источников влияет не только настройка "порядок" в  списке источников, но и в  к.ч. "итоговый источник финансирования"  и  местоположение вида 305(источник, на котором заведен 305 считает главным, если включена настройка Учет ист.результ.п/н для сортировки Н-У:Настройка -> 6. Общие настройки системы -> 5. Специальные настройки системы)

Добрый день.

Данный вопрос обсуждался в этой теме

Я подумал у вас проблема с расчетом 121 вида.

При расчете часовой ставки для расчета процентных надбавок ( символ 4) берутся все виды, помеченные символом 1 в С1

Вы можете переопределить функцию для расчета ставки, либо переопределить сам 17 алгоритм

Если все сделали правильно - разницы по 040 и 070 быть не должно

Для 15го алгоритма вы в первом параметре можете указать номер столбца ТВХ, по которому должен рассчитываться вид...

1)В ТВХ добавляете столбец

2)В столбце отмечаете символом 1 те виды,  на которые должен крутиться вид 121

3)Номер добавленного столбца указываете в параметрах алгоритма у  121 вида

Сервис поддержки клиентов работает на платформе UserEcho