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

Добрый день.

Этих данных в программе нет - можете забивать данные прямо в форму..

вот так должно работать (в ExtSrcToInt()  нужно передавать не массив символов, а один символ)

istn=GetSrcName(ExtSrcToInt(ist[0])); 

З.ы.

1)лучше давать "говорящие" названия переменным

2)объявлять переменную лучше в месте ее использования

var Tabl = CreateObject("CurPrnTbl");
long adr = Tabl.GetAdrListTabl();
int rcr = Tabl.GetRcrInListTabl();
var svlist = CreateObject("CurPrnTbl");
svlist.Initial(adr);
char istCode[2]; istCode=svlist.TextS("Src",rcr); //здесь внешний код источника, при отладке вижу значение ist="О" (если источник О)
string istName=GetSrcName(ExtSrcToInt(istCode[0])); 

Добрый день!

По внешнему коду источника определяем внутренний код, а потом вызываем GetSrcName()...

GetSrcName(ExtSrcToInt('Х'))

Указывайте РВ только по первому источнику

Добрый вечер.

Примерно так:

int stolbec=25;
int month=mtek;
string date="24.06.2020";
GetSummFromValidRows(date,stolbec,month)
{
//получаем список видов
var nuList=GetListNu(stolbec);
var validOnDate=KDateFromStr(date);
double rez=0.;
//цикл по видам
for (bool Cur=nuList.InitIterator();Cur;Cur=nuList.Next())
{
int code=atoi(nuList.GetCurKey()); //внутренний код вида
int rowkod[ROWMAX];//массив с номерами строк
int cntrow=poiskosnkod(code,rowkod,1,0);
if ( cntrow==0 || KDateFromStr(GetEndDate(rowkod[0])).LT(validOnDate)) //строку не нашли или дата окончания строки continue ;

double summ=CollectSumm(code,0,month,CL_MV);//сумма по виду за месяц month
rez+=summ;
}
return rez;
}

GetListNu(stolbec)
//stolb - столбец ТВХ
{
var mapNu = CreateObject("MapString");
mapNu.Clear();
for (int i=0;i < cntplus;i++)
{
char Sim[2];Sim[1]=0;
Sim[0]=Sim_For_Intern_Cod(kodnu1[i],stolbec-1); //определяем символ в ТВХ
if ( Sim!="0" )
MapNu.Add(to_string(kodnu1[i]),"");
}
return mapNu;
}

Какой то витиеватый вопрос... скорей всего повлияет, например idки (используются для заполнения 6-ндфл) разнесутся на суммы, попавшие в ведомость.

Может вам сначала стоит попробовать? Хотя бы на копии базы?

Если вы хотите выполнить разноску в будущий месяц, то проблем в этом нет

Есть ли какой-то сакральный смысл, чтобы разносить сразу

В момент формирования ведомости программа "запоминает" какие суммы и по каким вида попали в ведомость.

(При повторном формировании ведомости суммы, попавшие в предыдущие ведомости, в текущую ведомость не попадут)

А чтобы в дальнейшем "дебет сошелся с кредитом" выполняется автоматическая разноска ведомости.

Основная претензия расчетчиков к данной настройке, что сразу выполняется разноска

Чем мешает разноска?

От "своих" расчетчиков я претензий не получал..

Бюджетники по 10 раз и так и сяк выверяют сформированные ведомости, прежде чем их разнести в ЛС

Да хоть 100.. 

Сформировали - не понравилось - удалили, сформировали заново.

Объясните на конкретном примере: чем вам мешаете разнесенная сумма?

но в июне месяце приказ на увольнение с 28 06 2020

Какие изменения вы внесли в программу в связи с этим "неожиданным" приказом на увольнение?

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

Зайдите в ЛС

В правом верхнем углу выберите  07.2020

Встаньте на строку отпуска

Нажмите F4 (пересчитать строку)

Какой смысл перекладывать массив символов из BufCnf в StrSimv?

так тоже должно работать

char BufCnf[256];
GetCommonCnf("MINUS_DNI","отпуск",BufCnf,255);
int id = dney_v_tab(BufCnf,calm,info.z1,info.z2);

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