/*
╔═══════════════════════════════════════════════════════════════════════════╗
║ (c) 1994,2000 корпорация ГАЛАКТИКА ║
║ Проект : ГАЛАКТИКА ║
║ Система : Бухгалтерский контур ║
║ Версия : 5.8x ║
║ Назначение : Пример использования TXO API ║
║ Ответственный : Ларин Михаил Николаевич (larin@galaktika.by) ║
║ Параметры : есть ║
╚═══════════════════════════════════════════════════════════════════════════╝
*/
#include TxoApi.vih
// Начиная с версии 5.85 в наименовании интерфейса
// обязательно использовать префикс "Txo_"
// Указываем, что наш интерфейс реализует расчет идентификатора ТХО
VipInterface Txo_KatSoprDemo implements ObjTxoIdentPlugin;
// Простой интерфейс для обработки накладной
Interface Txo_KatSoprDemo;
// Логическая таблица, описывает стуктуру накладной
create view DemoView
var
CurTiDkGal : word;
CurSoprDoc : comp;
P1 : String;
P2 : String;
as select
*
from
Katsopr,
SpSopr
where
((
CurSoprDoc == KatSopr.Nrec and
CurSoprDoc == SpSopr.cSopr
));
function GetInfo : string;
{
GetInfo := 'Пример использования TXO API для накладных';
}
function ParamMaster : string;
{
Message(''#3'здесь должен быть вызов окошка, чтобы помочь пользователю'#13+
''#3'заполнить строку дополнительных параметров идентификатора:'#13+
''#3'[Param1:"xxx"][Param2:"yyy"]');
ParamMaster := '[Param1:"xxx"][Param2:"yyy"]';
}
procedure StoreCycles(hTxo : longint; buf : TTxoApiInfoDoc);
{
// установить ограничения на логическую таблицу
CurTiDkGal := buf.TiDkGal;
CurSoprDoc := buf.cSoprDoc;
// заполнить нециклическую аналитику
if (getfirst KatSopr = tsOk)
{
TxoHeadAddKau(hTxo, 0,1,KatSopr.cOrg); // организация
TxoHeadAddKau(hTxo, 0,2,KatSopr.cPodrTo); // подразделение
}
// построить выгрузку циклов
// очистить промежуточный буффер
TxoBodyClear(hTxo);
TxoBodyAddDate(hTxo,3,To_Date(1,1,2013))
// закачать суммы
TxoBodySetSum(hTxo, 10,10,10);
// добавить в выгрузку
TxoBodyInsert(hTxo);
TxoBodyClear(hTxo);
TxoBodyAddDate(hTxo,3,To_Date(2,2,2013))
// закачать суммы
TxoBodySetSum(hTxo, 11,11,11);
// добавить в выгрузку
TxoBodyInsert(hTxo);
}
end.
Все хорошо компилируется.
ТХО настроена вот так:
А на выходе получается одна проводка на сумму 21 и без даты!
Спрошу здесь: как формируются проводки... в смысле порядок их отображения после формирования? я сделал индекс, формирую проводки согласно индексу нарастанием, сделал вывод в лог.файл, таблица идет как надо, а на выходе проводки получаются в разнобой... почему?
Совершенно не по теме и без деталей.
Механизм слегка отличается при закрытии счетов и в остальных случаях.
В любом случае сначала заполняться временная таблица oborotnm - вопрос когда она пишется в oborot - после отработки всей ТХО(закрытие), или после обработки каждой операции.
Я здесь как-то писал как заполнить содержание - в последней операции добавляете пустую проводку с вызовом TXO_API. Что касается отображения где то, то с каждым случаем нужно
разбираться отдельно - getifccurrentfieldname хотя бы приводите. Можете в консоле управления посмотреть лог.таблицу фейса (как правило это встроенный) - от ваших индексов как то ничего не зависит.
тема - ТХО Апи
Эдвард, не понял, что Вам непонятно, и getifccurrentfieldname чего вы хотите чтобы я вывел?
попробую ещё раз
есть ТХО Апи, которое наполняет КАУ1 какого-либо счета. Я наполняю его по порядку, т.е. сначала идут проводки с КАУ1=1 потом КАУ1=2 потом КАУ1=3 и т.д.... а на выходе получаю проводки
КАУ1=2
КАУ1=3
КАУ1=1
а хочу
КАУ1=1
КАУ1=2
КАУ1=3
видимо Вы верно пишите, сначала они идут в буфер, а уже из буфера идут каким-то им известным образом.
т.е. сортировку программно нет смысла задавать... выход один - делать столько шаблонов, сколько вариантов и в них уже отсеивать по фильтру. но так не хочется...
1. Эта конкретно про дату
2. Ctrl+F4 на поле типа дата оборотов в том фейсе, где не та сортировка. Все что приведет функция сюда. Сортировка по кау маловероятна - надо смотреть тот индекс, который используется при просмотре. Если ключ совпадает, то внутри него будет скорей всего по nrec - но смотрим про oborotnm.
ну просмотр то я думал тупо по нреку проводки... потому и давал их в своём порядке, думал так же и выйдут в просмотр
интересно то что формируется бывает
5
5
3
1
5
2
почему пятёрки не подряд... раз по нрекам... ай. видимо гиблое занятие по фиг на них тогда.