Заказ.
При добавлении номенклатуры возникает ошибка
Ошибка времени выполнения: Индекс массива 0 запрещен.
Такое происходит не со всеми номенклатурами, а с теми у которых указана налоговая группа 18%. (Номенклатура->Ссылки->Налоговая группа номенкл.)
Я воспользовался отладчиком и выявил следующую картину "падежа " =) :
стек :
\Classes\TaxSales\calc - line 112
\Classes\SalesCalcTax_Sales\calcTax - line 12
\Classes\TradeTotals\Calc - line 203
\Classes\SalesTotals\Calc - line 6
\Classes\SalesCreditLimit\calcLine - line 6
\Classes\SalesCreditLimit\calcLineEstimates - line 6
\Data Dictionary\Tables\SalesLine\Methods\calcCreditEstimate - line 5
\Classes\SalesLineType\insert - line 51
\Data Dictionary\Tables\SalesLine\Methods\Insert - line 9
\Classes\FormDataSource\write
\Forms\SalesTable\Data Sources\SalesLine\Methods\write - line 17
\Classes\FormDataSource\Prev
\Classes\FormRun\task
\Classes\SysSetupFormRun\task - line 20
код, вызвавший ошибку
Класс TaxSales, метод calc (выделенно стрелкой)
PHP код:
....................................
if (amountsInclTaxExist)
{
while select sum(sourceTaxAmountCur)
from taxWorkTrans
group by sourceRecId
where taxWorkTrans.sourceTableId == salesLineTableId &&
taxWorkTrans.taxDirection != TaxDirection::UseTax &&
taxWorkTrans.taxOrigin != TaxOrigin::TaxReversed
{
=>> amountInclTax[taxWorkTrans.sourceRecId] = currency::amount(amountInclTax[taxWorkTrans.sourceRecId],sourceCurrencyCode);
amountExclTax[taxWorkTrans.sourceRecId] = currency::amount(amountExclTax[taxWorkTrans.sourceRecId],sourceCurrencyCode);
......................................................
Из отладчика видно, что taxWorkTrans.sourceRecId = 0. Но что это за временная таблица и почему она пуста ?
Понятно, что дело связано с расчетом налогов, но в чем причина пока не пойму. Классы Tax и TaxSales - огромные доселе неизвестные мне зверюги .... Если кто сталкивался с подобным или может быть у кого есть мысли в чем причина особого поведения номенклатур с 18% налогом, подскажите!