Вопрос по TXO API
Модераторы: m0p3e, edward_K, Модераторы
-
- Постоянный обитатель
- Сообщения: 159
- Зарегистрирован: 28 сен 2005, 19:48
- Откуда: mos
- Контактная информация:
Вопрос по TXO API
У меня есть ТХО, которая обрабатывает некоторые данные по таблице соответствия. Таблица соответствия находится в ексель-файле. Получается, что для каждой проводки вызывается ТХО и соответственно происходит загрузка ексель - файла во временную таблицу, что естественно занимает много лишнего времени... Можно ли как-нибудь сделать так чтобы таблица загружалась только при первом запуске ТХО?
Можно закешировать содержимое эскель файла в таблицу в памяти
1) объявить таблицу в памяти на уровне проекта (перед словом interface)
2) в алгоритме где идет загрузка из эскель сделать что то типа:
3) далее по алгоритму использовать закаченные данные
1) объявить таблицу в памяти на уровне проекта (перед словом interface)
Код: Выделить всё
table struct MyRef
(
...
);
VipInterface Txo_MyAlg Implements ObjTxoIdentPlugin;
Interface Txo_MyAlg;
Код: Выделить всё
if( getfirst MyRef <> tsOk )
{
mtChangeRefCount(tnMyRef, 1);
//это на 1 увеличить число ссылок на таблицу в памяти, чтобы она не закрылась до конца работы с Галактикой
// перекачать данные из экселя в память
}
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Вопрос по TXO API
Есть ли возможность при написании алгоритма в кредит счета заполнить либо счет (по условию) либо поставить режим "выбор из каталога".
что-то я так поглядел и не понял... в настройке шаблона же сразу пишешь либо "выбор из каталога" либо "режим 0" к примеру... а хотелось бы этот режим определить программно, возможно?
З.Ы.: дело в том что я не знаю какой кредит ставить... знает только бухгалтер. и нигде в базе инфы нет.
что-то я так поглядел и не понял... в настройке шаблона же сразу пишешь либо "выбор из каталога" либо "режим 0" к примеру... а хотелось бы этот режим определить программно, возможно?
З.Ы.: дело в том что я не знаю какой кредит ставить... знает только бухгалтер. и нигде в базе инфы нет.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Вопрос по TXO API
Выбора из каталога лучше избегать. Как вариант можно настроить внешний атрибут к чему либо (текстовый или ссылочный на прочие таблицы) и в апихе его подхватывать. Например можно к подразделениям - если речь о затратных счетах, или к группам МЦ, если речь о накладных. Не забудьте циклическую обработку включить по счету субсчету.
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Вопрос по TXO API
не очень понятно все же есть то условие в БД, которое можно выловить для определения нужно счета или нет ?Алексей писал(а):.... заполнить либо счет (по условию) ...
З.Ы.: дело в том что я не знаю какой кредит ставить... знает только бухгалтер. и нигде в базе инфы нет.
и как широк диапазон возможных счетов, которые могут проходить по кредиту ?
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Вопрос по TXO API
скажем так, это ТХО к документу на внутреннее перемещение в спец.одежде, когда человек переходит с одного подразделения в другое.
если срок носки позиции СФО меньше года, то в дебет счет пишем затратный счет подразделения нового, а вот в кредит затратный счет старого подразделения, и вот тут непонятно какой счет подставлять и какой цех, т.к. по кодировкам и аналитикам нет полной аналогии...
заставлять писать ШЗ кредита в какой-нибудь атрибут? в принципе можно...
и всё-таки, ответа на мой вопрос не последовало: можно ли программно изменять настройку шаблона, чтобы заполнялось либо автоматом либо давало возможность пользователю выбирать из каталога ?
если срок носки позиции СФО меньше года, то в дебет счет пишем затратный счет подразделения нового, а вот в кредит затратный счет старого подразделения, и вот тут непонятно какой счет подставлять и какой цех, т.к. по кодировкам и аналитикам нет полной аналогии...
заставлять писать ШЗ кредита в какой-нибудь атрибут? в принципе можно...
и всё-таки, ответа на мой вопрос не последовало: можно ли программно изменять настройку шаблона, чтобы заполнялось либо автоматом либо давало возможность пользователю выбирать из каталога ?
-
- Постоянный гость
- Сообщения: 60
- Зарегистрирован: 25 июн 2009, 14:59
Re: Вопрос по TXO API
Я бы настроил ТХО с несколькими проводками с заранее указанными счетами\субсчетами, а для формирования той или иной проводки при привязке ТХО я написал бы ТХО АПИ, которая бы анализировала срок использования спецодежды.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Вопрос по TXO API
В теории то можно все. Тут главное то что - проводки формируются по каждой операции и сначала наверное выполняется алгоритм, а потом ручной выбор аналитики. Если это так то в алгоритме меняете hozobor по идее этого хватит - но распространиться на все проводки по этом hozobor. В последней операции вам нужно запустить алгоритм , который все вернет обратно. Но это путь ведущий в никуда. Лучше уж в каждой спецификации указать тогда и дебет и кредит раз совсем плохо, но вроде все решают почти стандартными алгоритмами.
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Вопрос по TXO API
ясн. ладно, завтра ещё подумаю, предложу варианты. так то обычно мало перемещений туда-сюда по цехам...
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: Вопрос по TXO API
Господа, прошу подсказать по ТХО АPI для закрытия счетов:
Как достать сумму исходящего сальдо? Есть объект TTxoInfoCloSch, но не вижу суммы. Вот фрагмент кода из примера (LaaLaa):
Как достать сумму исходящего сальдо? Есть объект TTxoInfoCloSch, но не вижу суммы. Вот фрагмент кода из примера (LaaLaa):
Код: Выделить всё
procedure StoreCycles(hTxo : longint; buf : TTxoApiInfoDoc);
{
TxoDebugMsg(hTxo,'InfoCloSch','// проверка работоспособности функции TxoGetInfoCloSch');
var bufCloSch : TTxoInfoCloSch;
if ( TxoGetInfoCloSch(hTxo, bufCloSch) )
{
TxoDebugMsg(hTxo,'InfoCloSch','PlansSch ='+string(bufCloSch.cPlansSch ));
TxoDebugMsg(hTxo,'InfoCloSch','Schet ='+string(bufCloSch.Schet ));
TxoDebugMsg(hTxo,'InfoCloSch','DbSchet ='+string(bufCloSch.DbSchet ));
TxoDebugMsg(hTxo,'InfoCloSch','SubSch ='+string(bufCloSch.SubSch ));
TxoDebugMsg(hTxo,'InfoCloSch','wKau_1 ='+string(bufCloSch.wKau_1 ));
TxoDebugMsg(hTxo,'InfoCloSch','wKau_2 ='+string(bufCloSch.wKau_2 ));
TxoDebugMsg(hTxo,'InfoCloSch','wKau_3 ='+string(bufCloSch.wKau_3 ));
TxoDebugMsg(hTxo,'InfoCloSch','wKau_4 ='+string(bufCloSch.wKau_4 ));
TxoDebugMsg(hTxo,'InfoCloSch','wKau_5 ='+string(bufCloSch.wKau_5 ));
TxoDebugMsg(hTxo,'InfoCloSch','wKau_6 ='+string(bufCloSch.wKau_6 ));
TxoDebugMsg(hTxo,'InfoCloSch','cKau_1 ='+string(bufCloSch.cKau_1 ));
TxoDebugMsg(hTxo,'InfoCloSch','cKau_2 ='+string(bufCloSch.cKau_2 ));
TxoDebugMsg(hTxo,'InfoCloSch','cKau_3 ='+string(bufCloSch.cKau_3 ));
TxoDebugMsg(hTxo,'InfoCloSch','cKau_4 ='+string(bufCloSch.cKau_4 ));
TxoDebugMsg(hTxo,'InfoCloSch','cKau_5 ='+string(bufCloSch.cKau_5 ));
TxoDebugMsg(hTxo,'InfoCloSch','cKau_6 ='+string(bufCloSch.cKau_6 ));
TxoDebugMsg(hTxo,'InfoCloSch','cPodr ='+string(bufCloSch.cPodr ));
TxoDebugMsg(hTxo,'InfoCloSch','cGoNewPer ='+string(bufCloSch.cGoNewPer));
TxoDebugMsg(hTxo,'InfoCloSch','cSaldoNm ='+string(bufCloSch.cSaldoNm ));
TxoDebugMsg(hTxo,'InfoCloSch','BuhSprNo ='+string(bufCloSch.BuhSprNo ));
}
TxoDebugMsg(hTxo,'InfoDoc','// проверка работоспособности буфера buf');
CurTiDkGal := buf.TiDkGal;
CurSoprDoc := buf.cSoprDoc;
TxoDebugMsg(hTxo,'InfoDoc','buf.cSoprHoz ='+string(buf.cSoprHoz )+' Журнал хозопераций ');
TxoDebugMsg(hTxo,'InfoDoc','buf.TiDkGal ='+string(buf.TiDkGal )+' Тип документа системный ');
TxoDebugMsg(hTxo,'InfoDoc','buf.TiDk ='+string(buf.TiDk )+' Тип документа пользоватеьский');
TxoDebugMsg(hTxo,'InfoDoc','buf.cSoprDoc ='+string(buf.cSoprDoc )+' Документ ');
TxoDebugMsg(hTxo,'InfoDoc','buf.cHozOper ='+string(buf.cHozOper )+' ТХО ');
TxoDebugMsg(hTxo,'InfoDoc','buf.cPlansSch ='+string(buf.cPlansSch)+' Регистр учета ');
TxoDebugMsg(hTxo,'InfoDoc','buf.KodReg ='+string(buf.KodReg )+' Код регистра учета ');
TxoDebugMsg(hTxo,'InfoDoc','buf.cObor ='+string(buf.cObor )+' Шаблон ТХО ');
TxoDebugMsg(hTxo,'InfoDoc','buf.DatOb ='+string(buf.DatOb )+' Дата проводки ');
TxoDebugMsg(hTxo,'InfoDoc','buf.cValut ='+string(buf.cValut )+' Валюта проводки ');
TxoDebugMsg(hTxo,'InfoDoc','buf.dBeginFp ='+string(buf.dBeginFp )+' Начало периода документа ');
TxoDebugMsg(hTxo,'InfoDoc','buf.dEndFp ='+string(buf.dEndFp )+' Конец периода документа ');
-
- Местный житель
- Сообщения: 552
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Челябинск
- Контактная информация:
Re: Вопрос по TXO API
Разобрался сам: по ссылке bufCloSch.cSaldoNm находим текущую запись в рассчитанном сальдо, оттуда выуживаем искомую сумму.
Вопрос снят.
Вопрос снят.