Страница 1 из 1

VIP ТХО

Добавлено: 21 апр 2012, 17:31
Mary
Помогите, пожалуйста....Имеется VIP для ТХО;
К приходной накладной в услугах на другого контрагента всегда ранее привязывался один акт, и данный VIP хорошо отрабатывал: брал один этот акт, аналитику по нему и сумму по нему, и после выполнения алгоритмов выбрасывал проводкой в приходной накладной 19.09-60.01 НДС от этой суммы. Сейчас в услугах на другого контрагента может быть привязано 10 актов сразу к одной приходной накладной. VIP берет аналитику по одному из десяти актов, а сумму (сумму НДС) в проводку ставит по всем десяти актам в сумме. Нужно, чтоб падало 10 проводок с суммами (суммы НДС) по каждому акту… Как это добиться, подскажите пожалуйста…..
Вот VIP:
#include TXO API.vih
//Указываем что наш интерфейс реализует расчет идентификатора ТХО
VipInterface Txo_TheUslNakl implements ObjTxoIdentPlugin licensed(free);

//Простой интерфейс для обработки накладной
Interface Txo_TheUslNakl (,hcTXOWVIPParam);
//Логическая таблица, описывает структуру накладной
Create view NaklView
Var
CurSoprDoc: comp;
As select *
From katsopr,basedoc,katorg,stepdoc,
Synonym katsopr katsoprUsl,
Synonym basedoc basedocUsl,
Synonym katorg katorgUsl,
Synonym stepdoc stepdocUsl,
Synonym dogovor dogovorUsl
Where ((CurSoprDoc/==katsopr.nrec
And katsopr.nrec==katsoprUsl.ckatsopr
!!!Накладная
And katsopr.cgruzform==katorg.nrec
And katsopr.cstepdoc==stepdoc.nrec
And stepdoc.cbasedoc==basedoc.nrec
!!!Акт на услуги
And katsoprUsl.cgruzform==katorgUsl.nrec
And katsoprUsl.cdogovor==dogovorUsl.nrec
And katsoprUsl.cstepdoc==stepdocUsl.nrec
And stepdocUsl.cbasedoc==basedocUsl.nrec
//And katsoprUsl.cSchfact==katorgUsl.nrec
));
Function GetInfo: string;
{
GetInfo:=’Автоматическая установка аналитики по сопутствующему акту услуг’;
}
Function ParamMaster: string;
{
Message(‘Без параметров!’);
ParamMaster:=’’;
}
Procedure StoreCycles(hTxo: longint; buf: TTxoApiInfoDoc);
{
//установить ограничения на логическую таблицу
//CurTidkGal:=buf.TidkGal;
CurSoprDoc:==buf.cSoprDoc;
{
//очистить промежуточный буфер
TxoBodyClear(hTxo);
//закачать кау
//wFIKau_AutoDebit=11;
//wFIKau_Mode0
_loop katsoprUsl
{
TxoHeadAddKau(hTxo,wFIKau_Mode0, 1, katsoprUsl.nrec); //кау 1 – контрагент
TxoHeadAddKau(hTxo,wFIKau_Mode0, 14, dogovorUsl.nrec); //кау 2 – договор
TxoHeadAddKau(hTxo,wFIKau_Mode0, 6, basedocUsl.nrec); //кау 3 – ДО
TxoHeadAddKau(hTxo,wFIKau_Mode0, 79, katsoprUsl.cschfact); //кау 3 – сф
//закачать сумму акта/накладной
TxoBodySetSum(hTxo, katsoprUsl.summa,0,0);
//добавить в выгрузку
TxoBodyInsert(hTxo);
}
}
}
Handleevent
End;
End.

Re: VIP ТХО

Добавлено: 22 апр 2012, 00:21
edward_K
TxoHeadAddKau заменить на TxoBodyAddKau
Ну и обычно еще TxoBodyClear(hTxo);
- но это тогда всю аналитику нужно выводить.
И не забудьте циклическую обработку поставить

Re: VIP ТХО

Добавлено: 22 апр 2012, 13:00
Mary
Спасибо, на Body заменить попробую. Циклическая обработка VIP в алгоритме стоит.

Re: VIP ТХО

Добавлено: 23 апр 2012, 17:43
Mary
поставила body вместо hеаd. Поставила в проводке циклическую обработку по накладным/актам и циклический для алгоритма...выдает проводки по каждому акту,с нужной суммой ндс,но не выдает аналитику...:( в проводке стоит 'режим 0'...

Re: VIP ТХО

Добавлено: 23 апр 2012, 17:57
n0where
А циклическая обработка по аналитикам то стоит?

Re: VIP ТХО

Добавлено: 23 апр 2012, 18:00
Mary
стоит циклическая обработка в проводке в алгоритме и в окне 'циклическая обработка' там идет организации,договоры,до,накладные/акты.

Re: VIP ТХО

Добавлено: 23 апр 2012, 19:42
edward_K
Для начала уж скажите какая именно не заполняется
TxoHeadAddKau(hTxo,wFIKau_Mode0, 1, katsoprUsl.nrec); //кау 1 – контрагент
- вот тут вы пытаетесь запихнуть в организации накладную. Наверное это неправильно.
Кроме того должно быть "VIP_" а не "VIP"
Вообще лучше коды системных аналитик подставлять константами из Inc (ест. их нужно подключить при компиляции) -
так будет наглядней.

Re: VIP ТХО

Добавлено: 24 апр 2012, 00:24
Mary
"VIP_" - стоит. Исхода получила два:
1. Если стоит "VIP_" и циклическая обработка по аналитике, то выпадает 10 проводок с аналитикой организация, договор, ДО, но без СФ и сумма ставится общая по всем 10 актам.
2. Если к этому добавляю циклическую обработку NP_[Рез:Налоги"НДС_18.00"] - (результата НДС), то выдает 10 проводок с правильными суммами по каждому акту, но аналитику перестает выводить вообще...
В общем, как-то так...

Re: VIP ТХО

Добавлено: 24 апр 2012, 02:01
edward_K
что то я не видел что циклическая для СФ стоит. С ключем NP все несколько сложнее. Здесь вам придется составлять некую пропорцию, поскольку в общем случае NP разобъет все проводки на кол-во позиций в накладной
К тому же посмотрите его описание - он может то же на режимы чего то пулять. Включите линейный протокол ТХО и уровень поставьте "отладочная информация".

Не формируются проводки в цикле

Добавлено: 26 сен 2014, 14:13
zna
Доброго всем. Прошу подказать, в чём может быть причина неформирования проводок по простейшему алгоритму с циклом по МЦ

Код: Выделить всё

VipInterface Txo_AvOtch implements ObjTxoIdentPlugin Licensed(Free);
Interface Txo_AvOtch;
function GetInfo: string; {GetInfo := 'Формирование спецификации авансового отчёта по ДО 140925';}
function ParamMaster: string;{ParamMaster := '';}
procedure StoreCycles(hTxo: longint; buf: TTxoApiInfoDoc);
{
   var cMc, cPersons: comp;
   var dKol, dSum: double;
   cMc:= 281474976722109;
   cPersons:= 281474976710672;
   dKol:=111; dSum:=222;
   TxoAllowRecallStoreCycles(hTxo);
   TxoHeadClear(hTxo);
   TxoHeadAddKau(hTxo, wFlKau_Mode0, cgKau_Persons, cPersons);
   TxoBodyClear(hTxo);
   TxoHeadAddKau(hTxo, 160, 4, cMc);            //   spstep.cmcusl
   TxoBodySetSum(hTxo, dSum,0,dKol);//double(spstep.kol * spstep.price),0,double(spstep.kol));
   TxoBodyInsert(hTxo);
}
end.
Настройка шаболна ТХО и протокол:Изображение
Если убрать признак цикла &Vip[Obj:"AVOTCH"], то проводка формируется..

Код: Выделить всё

[26/09/2014  14:11  naz]
                                 Протокол расчетов по ТХО

   Тег        │   Сообщение
 ─────────────┼─────────────────────────────────────────────────────────────────────────────────
              │ 
 Документ     │ Авансовый отчет, № 00016 от 06/03/2014 г. на сумму 2011.92
 Шаблон ТХО   │ DAV Приобретение материалов и товаров через подотчетное лицо  
 Оптимизация  │ Повторное использование объекта "F_TXOAPI::TXO_AVOTCH" разрешено.
 Бухпроводка  │ 8: Дебет 10.01 [1:Хомут червячный 12-27][П:Склад База ТЭЦ] Кредит 71 [1:Тимофеев
              │  Андрей Владимирович] (0, 0 руб, 0 шт); 06/03/2014; 
 Формула 0    │ &ASPKEYQ00 := (&Vip_[Obj:"AVOTCH"], , &Vip_[Obj:"AVOTCH"]) = (0, 0, 0); 
              │ [rfCompiled rfHasCycles rfCount]
 Формула 1    │ &VIP_[OBJ:"AVOTCH"] = (0, 0, 0); [rfCompiled rfHasCycles rfCount]
              │ 
 Финпроводки  │ Не формировались       

Re: VIP ТХО

Добавлено: 26 сен 2014, 14:59
Ольга
Проблема тут:

Код: Выделить всё

TxoHeadAddKau(hTxo, 160, 4, cMc);            //   spstep.cmcusl
Если используете циклическую обработку по МЦ надо использовать соответствующую функцию:

Код: Выделить всё

TxoBodyAddKau(hTxo, 160, 4, cMc);            //   spstep.cmcusl

Re: VIP ТХО

Добавлено: 26 сен 2014, 15:31
zna
Это я уже экспериментировал..Поправил функцию- не полегчало:

Код: Выделить всё

procedure StoreCycles(hTxo: longint; buf: TTxoApiInfoDoc);
{
   var cMc, cPersons: comp;
   var dKol, dSum: double;
   cMc:= 281474976722109;
   cPersons:= 281474976710672;
   dKol:=111; dSum:=222;
   TxoAllowRecallStoreCycles(hTxo);
   TxoHeadClear(hTxo);
   TxoHeadAddKau(hTxo, wFlKau_Mode0, cgKau_Persons, cPersons);
   TxoBodyClear(hTxo);
   TxoBodyAddKau(hTxo, 160, 4, cMc);           
   TxoBodySetSum(hTxo, dSum,0,dKol);
   TxoBodyInsert(hTxo);
   TxoDebugMsg(hTxo, 'AvOt','140926');
}

Код: Выделить всё

[01/03/2014  15:25  naz]
                                 Протокол расчетов по ТХО

   Тег        │   Сообщение
 ─────────────┼─────────────────────────────────────────────────────────────────────────────────
              │ 
 Документ     │ Авансовый отчет, № 00016 от 06/03/2014 г. на сумму 2011.92
 Шаблон ТХО   │ DAV Приобретение материалов и товаров через подотчетное лицо  
 AvOt         │ 140926
 Оптимизация  │ Повторное использование объекта "F_TXOAPI::TXO_AVOTCH" разрешено.
 Бухпроводка  │ 8: Дебет 10.01 [1:][П:Склад База ТЭЦ] Кредит 71 [1:Тимофеев Андрей Владимирович]
              │  (0, 0 руб, 0 ); 06/03/2014; 
 Формула 0    │ &ASPKEYQ00 := (&Vip_[Obj:"AVOTCH"], , &Vip_[Obj:"AVOTCH"]) = (0, 0, 0); 
              │ [rfCompiled rfHasCycles rfCount]
 Формула 1    │ &VIP_[OBJ:"AVOTCH"] = (0, 0, 0); [rfCompiled rfHasCycles rfCount]
              │ 
 Финпроводки  │ Не формировались             

Re: VIP ТХО

Добавлено: 26 сен 2014, 18:28
Den
Хм..на людей тоже наверное Txobody а не TXoHead
У Вас же циклическая обработка

Re: VIP ТХО

Добавлено: 29 сен 2014, 08:17
zna
Den писал(а):Хм..на людей тоже наверное Txobody а не TXoHead
У Вас же циклическая обработка
Как раз TxoHead по людям- то и срабатывает- в протоколе видно. Подотчётник из заголовка берётся, и по нему циклить не надо.
Парадокс в том, что похожий алгоритм к накладным на приход продукции из производства работает..

Re: VIP ТХО

Добавлено: 29 сен 2014, 10:57
edward_K
Для циклической вообще то надо &VIP_????. Если есть сомнения то лучше все писать в body + циклическая в настройке проводки. Обязательно после ТxoBodyClear.