TXOAPI - подстановка счета автоматически, и надо учесть КАУ
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
TXOAPI - подстановка счета автоматически, и надо учесть КАУ
Хочу сделать алгоритм, который бы в дебет счета выбирал затратный счет по определенному алгоритму.
Сам счет мне заполнить удалось(TxoHeadAddSchet), а вот аналитика (пользовательская) к разным счетам разная и заполнить её мне никак не удается. Может быть есть какой-то способ?
З.Ы.: Алгоритм не циклический.
Сам счет мне заполнить удалось(TxoHeadAddSchet), а вот аналитика (пользовательская) к разным счетам разная и заполнить её мне никак не удается. Может быть есть какой-то способ?
З.Ы.: Алгоритм не циклический.
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
да не в этом дело. это я делаю.
в самой галактике как в шаблоне указать какую аналитику по КАУ заполнять? Я же все 3 кау в КАУ1 не могу указать.
Если там указать КАУ от 25-го счета, то когда заполняется 25-й счет - то и КАУ заполнится. Как только счет идет 23 - КАУ пустое.
Если указать при настроке КАУ от 23-го счета - с точностью до наоборот...
Получается что если на счетах стоит КАУ, то заполнится он из ТХО АПИ только в том случае, если у всех возможных счетов (которые могут подставится) будет одинаковое КАУ...
З.Ы.: Выход конечно есть, настроить столько шаблонов, сколько счетов и в алгоритме проверять считанный счет со счетом из шаблона, если все ок - цифру в сумму, если нет - 0.
в самой галактике как в шаблоне указать какую аналитику по КАУ заполнять? Я же все 3 кау в КАУ1 не могу указать.
Если там указать КАУ от 25-го счета, то когда заполняется 25-й счет - то и КАУ заполнится. Как только счет идет 23 - КАУ пустое.
Если указать при настроке КАУ от 23-го счета - с точностью до наоборот...
Получается что если на счетах стоит КАУ, то заполнится он из ТХО АПИ только в том случае, если у всех возможных счетов (которые могут подставится) будет одинаковое КАУ...
З.Ы.: Выход конечно есть, настроить столько шаблонов, сколько счетов и в алгоритме проверять считанный счет со счетом из шаблона, если все ок - цифру в сумму, если нет - 0.
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Сделал новую ТХО. Задал у дебета счет /субсчет <режим1>, у кредита счет/субсчет <режим2>. В полях КАУ дебета и кредита все оставил по умолчанию (пустышки)Алексей писал(а):да не в этом дело. это я делаю.
в самой галактике как в шаблоне указать какую аналитику по КАУ заполнять? Я же все 3 кау в КАУ1 не могу указать.
Если там указать КАУ от 25-го счета, то когда заполняется 25-й счет - то и КАУ заполнится. Как только счет идет 23 - КАУ пустое.
Если указать при настроке КАУ от 23-го счета - с точностью до наоборот...
Получается что если на счетах стоит КАУ, то заполнится он из ТХО АПИ только в том случае, если у всех возможных счетов (которые могут подставится) будет одинаковое КАУ...
З.Ы.: Выход конечно есть, настроить столько шаблонов, сколько счетов и в алгоритме проверять считанный счет со счетом из шаблона, если все ок - цифру в сумму, если нет - 0.
Далее в апи рисую :
....
procedure StoreCycles(hTxo : longint; buf : TTxoApiInfoDoc);
{
var cur_sch , cur_sub :string ;
....
if runinterface('GetBuhSchet',1,0000000000000005h,cur_sch,cur_sub)<>CmCancel
{
Message('cur_sch='+cur_sch+' cur_sub='+cur_sub);
}
// выбираю 68/04 . У меня три уровня КАУ на нем....
case cur_sch of
'368': {
TxoHeadAddSchet(hTxo, wFlKau_Mode1,cur_sch,subschet);
TxoHeadAddKau(hTxo, wFlKau_mode1,10005,000000000000029Dh);
TxoHeadAddKau(hTxo, wFlKau_mode1,44,000100000000000Ch);
TxoHeadAddKau(hTxo, wFlKau_mode1,2, 9);
}
// выбираю 69/02. Тут два уровня КАУ. Первый совпадает, второй отличный ....третьего вообще нема.
'369': {
TxoHeadAddSchet(hTxo, wFlKau_Mode1,cur_sch,subschet);
TxoHeadAddKau(hTxo, wFlKau_mode1,10005,000000000000029Dh);
TxoHeadAddKau(hTxo, wFlKau_mode1,10015,281474976710673);
}
end;
TxoHeadAddSchet(hTxo, wFlKau_Mode2,'379','02');
}
Собрал, запустил на выполнение ТХО то с такой апи - корректно все встает в дебет и при первом выборе (68/04 )при втором (69/02)...и КАУ встают корректно.
Делал наспех, так что все тупо в лоб... или я опять тебя не понял
Сегодня в аське меня уже спрашивали про это. Повторю еще раз.
Если аналитика не циклическая то пример Den-а будет работать даже в таком виде:
procedure StoreCycles(hTxo : longint; buf : TTxoApiInfoDoc);
{
var cur_sch , cur_sub :string ;
....
if runinterface('GetBuhSchet',1,0000000000000005h,cur_sch,cur_sub)<>CmCancel
{
Message('cur_sch='+cur_sch+' cur_sub='+cur_sub);
}
TxoHeadAddSchet(hTxo, wFlKau_Mode1,cur_sch,subschet);
TxoHeadAddKau(hTxo, wFlKau_mode1,10005,000000000000029Dh);
TxoHeadAddKau(hTxo, wFlKau_mode1,44,000100000000000Ch);
TxoHeadAddKau(hTxo, wFlKau_mode1,2, 9);
TxoHeadAddKau(hTxo, wFlKau_mode1,10015,281474976710673);
}
В окне настройки ТХО для КАУ ничего при этом указывать не нужно. Только <режим 1> для счета. Алгоритм ТХО сам разберется куда какую аналитику поставить.
Но это сработает только для нециклических КАУ. Если по документу нужно сформировать много проводок в цикле, то тогда действительно проблема. Перечень возможных аналитик ограничен 6-ю для каждой стороны проводки, и 10-ю в полях циклическая обработка. В окне настройки ТХО также нужно переключить формат Alt+S.
Если аналитика не циклическая то пример Den-а будет работать даже в таком виде:
procedure StoreCycles(hTxo : longint; buf : TTxoApiInfoDoc);
{
var cur_sch , cur_sub :string ;
....
if runinterface('GetBuhSchet',1,0000000000000005h,cur_sch,cur_sub)<>CmCancel
{
Message('cur_sch='+cur_sch+' cur_sub='+cur_sub);
}
TxoHeadAddSchet(hTxo, wFlKau_Mode1,cur_sch,subschet);
TxoHeadAddKau(hTxo, wFlKau_mode1,10005,000000000000029Dh);
TxoHeadAddKau(hTxo, wFlKau_mode1,44,000100000000000Ch);
TxoHeadAddKau(hTxo, wFlKau_mode1,2, 9);
TxoHeadAddKau(hTxo, wFlKau_mode1,10015,281474976710673);
}
В окне настройки ТХО для КАУ ничего при этом указывать не нужно. Только <режим 1> для счета. Алгоритм ТХО сам разберется куда какую аналитику поставить.
Но это сработает только для нециклических КАУ. Если по документу нужно сформировать много проводок в цикле, то тогда действительно проблема. Перечень возможных аналитик ограничен 6-ю для каждой стороны проводки, и 10-ю в полях циклическая обработка. В окне настройки ТХО также нужно переключить формат Alt+S.
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: TXOAPI - подстановка счета автоматически, и надо учесть
есть к примеру три документа... у всех трёх документов разные КАУ1
в ТХО АПИ алгоритме КАУ1 прописывается как TxoHeadAddKau т.к. к документу много проводок, но у всех КАУ одинаковая в пределах одного док-та.
Если пакетно привязать ТХО ко всем трём документам (пометить инсертом и выбрать ТХО) то КАУ1 заполняется данными из первого документа! Если же привязывать ТХО по одному к документу (без пометки инсерта а пройтись и три раза выбрать ТХО) то КАУ1 заполняется корректно
Вопрос такой: это моя ошибка или ошибка атлантиса? по сути, я думал что TxoHeadAddKau распространяется только на проводки одного документа, но не мог предположить что на все следующие ... т.е. при обработке 2-го и 3-го документов используется заполненный ранее буфер 1-го документа
Как решить задачу - перенести заполнение КАУ в циклическую обработку или как то очищать заполненный до этого буфер?
З.Ы.: функция TxoHeadClear(hTxo) вызывается в самом начале работы функции StoreCycles
в ТХО АПИ алгоритме КАУ1 прописывается как TxoHeadAddKau т.к. к документу много проводок, но у всех КАУ одинаковая в пределах одного док-та.
Если пакетно привязать ТХО ко всем трём документам (пометить инсертом и выбрать ТХО) то КАУ1 заполняется данными из первого документа! Если же привязывать ТХО по одному к документу (без пометки инсерта а пройтись и три раза выбрать ТХО) то КАУ1 заполняется корректно
Вопрос такой: это моя ошибка или ошибка атлантиса? по сути, я думал что TxoHeadAddKau распространяется только на проводки одного документа, но не мог предположить что на все следующие ... т.е. при обработке 2-го и 3-го документов используется заполненный ранее буфер 1-го документа
Как решить задачу - перенести заполнение КАУ в циклическую обработку или как то очищать заполненный до этого буфер?
З.Ы.: функция TxoHeadClear(hTxo) вызывается в самом начале работы функции StoreCycles
Re: TXOAPI - подстановка счета автоматически, и надо учесть
Внутри сервера ТХО коллекция HeadKau которая связана с функциями TxoHeadClear TxoHeadAddKau очищается для каждого нового документа. Даже если вы их пометили плюсом к обработке. Проблема вряд-ли в этих функциях.
Скорее всего проблема в параметрах которые вы туда подаете. Скорее всего вы где-то в своем коде вызвали функцию TxoAllowRecallStoreCycles. Вызов этой функции дает сигнал не пере создавать ваш объект на каждый документ при обработке пачки документов. Если вызов этой функции TxoAllowRecallStoreCycles у вас присутствует вы сами должны позаботиться об получении актуальных данных для каждого документа.
В частности т.к. StoreCycles вызывается многократно без пересоздания объекта некоторые глобальные переменные или позиции в таблицах могут быть взяты из прошлого документа.
PS: Вспомните задачу: "Буратине дали три яблока. Два он съел. Сколько яблок осталось у Буратины? Думаете одно? Hичего подобного. Hикто же не знает сколько у него уже было яблок до этого. Мораль - обнуляйте переменные!!! "
Скорее всего проблема в параметрах которые вы туда подаете. Скорее всего вы где-то в своем коде вызвали функцию TxoAllowRecallStoreCycles. Вызов этой функции дает сигнал не пере создавать ваш объект на каждый документ при обработке пачки документов. Если вызов этой функции TxoAllowRecallStoreCycles у вас присутствует вы сами должны позаботиться об получении актуальных данных для каждого документа.
В частности т.к. StoreCycles вызывается многократно без пересоздания объекта некоторые глобальные переменные или позиции в таблицах могут быть взяты из прошлого документа.
PS: Вспомните задачу: "Буратине дали три яблока. Два он съел. Сколько яблок осталось у Буратины? Думаете одно? Hичего подобного. Hикто же не знает сколько у него уже было яблок до этого. Мораль - обнуляйте переменные!!! "
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: TXOAPI - подстановка счета автоматически, и надо учесть
ой, а я совсем забыл про эту волшебную функцию, TxoAllowRecallStoreCycles, действительно стоит.
получается что эту функцию можно применять только если уверен на 100% что headkau совпадают, верно?
получается что эту функцию можно применять только если уверен на 100% что headkau совпадают, верно?
Re: TXOAPI - подстановка счета автоматически, и надо учесть
Нет, просто то что в HeadKau сами передаете, сделайте чтобы оно корректно перевычислялось. Вы сами туда передаете протухшие значения. Проверьте в отладчике что туда вы передаете?