поиск вида оплаты в лицевом счете
Здравствуйте. Есть необходимость проверить существование некоторых видов оплат в конкретном лицевом счете, включая данные по датах начала и окончания действия.
Есть ли функция, выполняющая такой поиск? Или хотя бы как можно перечислить все виды оплат, получить данные по датах начала и окончания?
Спасибо.
Ответ
Если в конкретном ЛС, то можно настроить видимость по набору видов и, при необходимости, отправить в Excel.
Существование за какой период нужно проверить ( за расчетный месяц?) ? Как это планируется использовать?
За расчетный месяц. Это связано с автоматическим открытием видов оплаты. Раньше я почему то думал, что закрытие это удаление. А, фактически, закрытие - это проставление даты окончания отличной от 01.01.2050. Поскольку открытие предполагается после записи ЛС (раньше не отловить, насколько я понял), то нужно сделать анализ на предмет того, что открыто и закрыто. У меня 2 вида оплаты - аванс. Алгоритм один, а назначение разное: одно - выплата через банк, другое - через кассу. Разумеется, два одновременно не должны быть открыты. Или одно, или другое. Предполагается, что закрываем одно, открывается другое.
Пример функции:
TryFindCodeValidOnDate(comb,extCode,kDate) { var Prob = CreateObject("APropBE"); Prob.Init(CLL_TOTAL_SRC,CLL_TOTAL_SUBJECT,CLL_TOTAL_PODR,comb); //инициализируем APropBE вн.кодом совместительства int rowkod[ROWMAX];//массив с номерами строк int cntrow=poiskosnkodProp(Extern_To_Intern(extCode),rowkod,0,Prob);//получаем список строк с кодом==kod for (int row=0; row<cntrow; row++) { double ikod=GetCode(rowkod[row]); var dbRow=KDateFromD(GetBegDate(rowkod[row])); var deRow=KDateFromD(GetEndDate(rowkod[row])); if (dbRow.IsValid() && dbRow.GT(kDate)) //вид еще не открыт continue; if (deRow.IsValid() && deRow.LT(kDate)) //вид закрыт continue; return row; } return -1; }
Использовать так:
var d=KDateFromInt_WithDay(1,mrasch); if (TryFindCodeValidOnDate(comb,extCode,d)==-1) //вид на 1 первое число расчетного месяца не найден.. { //код для открытия вида }
Еще вопросик. Если параметр comb имеет значение, то как получить список совместительств для лицевого счета?
var CL=CreateObject("CombineList");
var it = CL.CreateIterator();
for (it.SetBegin();!it.IsEnd();it.Next()) //цикл по должностям (it.CurKey() - внутр.код совместительства )
{
int combine=it.CurKey(); }
Сервис поддержки клиентов работает на платформе UserEcho
Пример функции:
Использовать так: