0
Отвечен

Как принять код дохода и код вычета в таблицу

Игорь Шалдин 6 лет назад в Прочее обновлен 6 лет назад 9

Здравствуйте.

Нужно сделать табличку  || Код вида НУ || Код дохода || Код вычета ||

Как принять в неё код дохода и код вычета, соответствующие каждому попавшему в таблицу виду начисления?

Ответ

Ответ

1) В script\user\USFUNCRW.S добавляем функцию 

userKOD_DOXODA(algCode,nuCode,tip)
// tip = 0 доход
// tip = 1 вычет
// tip = 2 отдельный вычет
// tip = 3 номер таблицы
// tip = 4 ДОП
{
   char Func[1024],Buf[256];
   switch(tip)
   {
     case  1:sprintf(Func,"КОД_ДОХОДА(%d,%d,ВЫЧЕТ)",algCode,nuCode);  break;
     case  2:sprintf(Func,"КОД_ДОХОДА(%d,%d,ОТДВЫЧ)",algCode,nuCode);  break;
     case  3:sprintf(Func,"КОД_ДОХОДА(%d,%d,ТАБЛ)",algCode,nuCode);  break;
     case  4:sprintf(Func,"КОД_ДОХОДА(%d,%d,ДОП)",algCode,nuCode);  break;
     default:sprintf(Func,"КОД_ДОХОДА(%d,%d)",algCode,nuCode); break;       
   }
   FreeSpaceString(Func,2,"");
   CallFuncReceive(Func,Buf,255,2);
   FreeSpaceString(Buf,2,"");
   return static_cast_to_string(Buf);
}

2)В таблице используем так:


Пример 

ХОРОШО, МНЕ ПОНРАВИЛОСЬ
Оценка удовлетворенности от Игорь Шалдин 6 лет назад
На рассмотрении

Добрый день.

Может поможет  эта табличка?


Еще в качестве примера можно посмотреть функцию

KOD_DOXODA(Code,tip)

 из SCRIPT\forms\check_ls.S

1. Табличную функцию:

КОД_ДОХОДА(код алгоритма налога, внешний код вида [, месяц]

которая используется в прикреплённой табличке я знаю. Была бы ещё аналогичная, но возвращающая код вычета, и вопрос был бы решен...


2. Если я правильно понял, то в функции KOD_DOXODA(Code,tip):

Code  - внешний код вида,

tip - отвечает за то, что возвращает функция:  0 - код дохода, 1 - код вычета

Но вот как её использовать в функции приёма? И откуда она берёт коды дохода и вычета? Из настроек налога или взносов? Если налога, то не подходит... Если взносов, то как показать из каких именно?

Табличка во вложении.Tabl3.zip


Ответ

1) В script\user\USFUNCRW.S добавляем функцию 

userKOD_DOXODA(algCode,nuCode,tip)
// tip = 0 доход
// tip = 1 вычет
// tip = 2 отдельный вычет
// tip = 3 номер таблицы
// tip = 4 ДОП
{
   char Func[1024],Buf[256];
   switch(tip)
   {
     case  1:sprintf(Func,"КОД_ДОХОДА(%d,%d,ВЫЧЕТ)",algCode,nuCode);  break;
     case  2:sprintf(Func,"КОД_ДОХОДА(%d,%d,ОТДВЫЧ)",algCode,nuCode);  break;
     case  3:sprintf(Func,"КОД_ДОХОДА(%d,%d,ТАБЛ)",algCode,nuCode);  break;
     case  4:sprintf(Func,"КОД_ДОХОДА(%d,%d,ДОП)",algCode,nuCode);  break;
     default:sprintf(Func,"КОД_ДОХОДА(%d,%d)",algCode,nuCode); break;       
   }
   FreeSpaceString(Func,2,"");
   CallFuncReceive(Func,Buf,255,2);
   FreeSpaceString(Buf,2,"");
   return static_cast_to_string(Buf);
}

2)В таблице используем так:


Пример 

Была бы ещё аналогичная, но возвращающая код вычета

можно попробовать так

КОД_ДОХОДА(241,КОДНУ,ВЫЧЕТ)

Как я понимаю, в этой функции вычет - один из параметров? Т.е. вычет д.б. заранее известен. А задача прямопротивоположная - функция должна возвращать код вычета по известным коду налога и коду НУ.

ключевое слово ВЫЧЕТ  как раз и говорит что мы хотим получить "код вычета по известным коду налога и коду НУ."

список ключевых слов "ДОХОД","ВЫЧЕТ","ОТДВЫЧ","ТАБЛ","ДОП","ВСЕ" (последний вернет все данные через запятую)


Нет, ВЫЧЕТ - это "волшебное слово", по которому программа понимает что ей нужно вернуть

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