VIP ТХО
Модераторы: m0p3e, edward_K, Модераторы
VIP ТХО
Помогите, пожалуйста....Имеется 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.
К приходной накладной в услугах на другого контрагента всегда ранее привязывался один акт, и данный 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.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: VIP ТХО
TxoHeadAddKau заменить на TxoBodyAddKau
Ну и обычно еще TxoBodyClear(hTxo);
- но это тогда всю аналитику нужно выводить.
И не забудьте циклическую обработку поставить
Ну и обычно еще TxoBodyClear(hTxo);
- но это тогда всю аналитику нужно выводить.
И не забудьте циклическую обработку поставить
Re: VIP ТХО
Спасибо, на Body заменить попробую. Циклическая обработка VIP в алгоритме стоит.
Re: VIP ТХО
поставила body вместо hеаd. Поставила в проводке циклическую обработку по накладным/актам и циклический для алгоритма...выдает проводки по каждому акту,с нужной суммой ндс,но не выдает аналитику... в проводке стоит 'режим 0'...
Re: VIP ТХО
А циклическая обработка по аналитикам то стоит?
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
Re: VIP ТХО
стоит циклическая обработка в проводке в алгоритме и в окне 'циклическая обработка' там идет организации,договоры,до,накладные/акты.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: VIP ТХО
Для начала уж скажите какая именно не заполняется
TxoHeadAddKau(hTxo,wFIKau_Mode0, 1, katsoprUsl.nrec); //кау 1 – контрагент
- вот тут вы пытаетесь запихнуть в организации накладную. Наверное это неправильно.
Кроме того должно быть "VIP_" а не "VIP"
Вообще лучше коды системных аналитик подставлять константами из Inc (ест. их нужно подключить при компиляции) -
так будет наглядней.
TxoHeadAddKau(hTxo,wFIKau_Mode0, 1, katsoprUsl.nrec); //кау 1 – контрагент
- вот тут вы пытаетесь запихнуть в организации накладную. Наверное это неправильно.
Кроме того должно быть "VIP_" а не "VIP"
Вообще лучше коды системных аналитик подставлять константами из Inc (ест. их нужно подключить при компиляции) -
так будет наглядней.
Re: VIP ТХО
"VIP_" - стоит. Исхода получила два:
1. Если стоит "VIP_" и циклическая обработка по аналитике, то выпадает 10 проводок с аналитикой организация, договор, ДО, но без СФ и сумма ставится общая по всем 10 актам.
2. Если к этому добавляю циклическую обработку NP_[Рез:Налоги"НДС_18.00"] - (результата НДС), то выдает 10 проводок с правильными суммами по каждому акту, но аналитику перестает выводить вообще...
В общем, как-то так...
1. Если стоит "VIP_" и циклическая обработка по аналитике, то выпадает 10 проводок с аналитикой организация, договор, ДО, но без СФ и сумма ставится общая по всем 10 актам.
2. Если к этому добавляю циклическую обработку NP_[Рез:Налоги"НДС_18.00"] - (результата НДС), то выдает 10 проводок с правильными суммами по каждому акту, но аналитику перестает выводить вообще...
В общем, как-то так...
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: VIP ТХО
что то я не видел что циклическая для СФ стоит. С ключем NP все несколько сложнее. Здесь вам придется составлять некую пропорцию, поскольку в общем случае NP разобъет все проводки на кол-во позиций в накладной
К тому же посмотрите его описание - он может то же на режимы чего то пулять. Включите линейный протокол ТХО и уровень поставьте "отладочная информация".
К тому же посмотрите его описание - он может то же на режимы чего то пулять. Включите линейный протокол ТХО и уровень поставьте "отладочная информация".
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Не формируются проводки в цикле
Доброго всем. Прошу подказать, в чём может быть причина неформирования проводок по простейшему алгоритму с циклом по МЦ
Настройка шаболна ТХО и протокол:
Если убрать признак цикла &Vip[Obj:"AVOTCH"], то проводка формируется..
Код: Выделить всё
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 ТХО
Проблема тут:
Если используете циклическую обработку по МЦ надо использовать соответствующую функцию:
Код: Выделить всё
TxoHeadAddKau(hTxo, 160, 4, cMc); // spstep.cmcusl
Код: Выделить всё
TxoBodyAddKau(hTxo, 160, 4, cMc); // spstep.cmcusl
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: VIP ТХО
Это я уже экспериментировал..Поправил функцию- не полегчало:
Код: Выделить всё
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]
│
Финпроводки │ Не формировались
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: VIP ТХО
Хм..на людей тоже наверное Txobody а не TXoHead
У Вас же циклическая обработка
У Вас же циклическая обработка
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: VIP ТХО
Как раз TxoHead по людям- то и срабатывает- в протоколе видно. Подотчётник из заголовка берётся, и по нему циклить не надо.Den писал(а):Хм..на людей тоже наверное Txobody а не TXoHead
У Вас же циклическая обработка
Парадокс в том, что похожий алгоритм к накладным на приход продукции из производства работает..
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: VIP ТХО
Для циклической вообще то надо &VIP_????. Если есть сомнения то лучше все писать в body + циклическая в настройке проводки. Обязательно после ТxoBodyClear.