TxoBind.vih

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

TxoBind.vih

Сообщение Алексей »

Можно небольшой пример, как с помощью этого объекта привязать ТХО и создать проводки к документу?
Что-то как не подхожу, ничего не получается, даже тупо перечень ТХО не показывается...
в поиске тоже ничего не нашел.
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: TxoBind.vih

Сообщение Алексей »

может использовать TXOPick.vih ? только у меня старый, ругается на несовпадение, а в файлах апдейтов нового нет... выложите кто-нибудь посвежее.
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: TxoBind.vih

Сообщение Алексей »

хм... бинд не работает банально потому что не подключается объект... вих сверил, в свежей поставке такой же как и у меня. смотрл ф_тхо 29 и 32 версии... другие объекты работают (атрибуты к примеру).
в чем может быть дело? инклюд подключил, дефайн компонентвершн указал... что ему надо? :-?
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

Re: TxoBind.vih

Сообщение n0where »

киньте код, там и посмотреть можно... как то не экстросенсорика не развита...
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: TxoBind.vih

Сообщение Алексей »

Вот мои вихи
TxoBind.vih

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

//******************************************************************************
//                                                      (c) корпорация Галактика
// Галактика 7.12 - Бухгалтерский контур
// Сложная привязка ТХО, и запуск сложной разноски
//******************************************************************************

#ifndef _TXOBIND_VIH_
#define _TXOBIND_VIH_

#ifdef ComponentVersion
#Component "F_TXO"
#end

#include TSoprHoz.vih

#doc
Объектный интерфейс для привязки и разноски Шаблонов ТХО </brief><br><br>
В модуле Хозоперации существует два понятия Сквозная и Раздельная привязка ТХО по регистрам учета.
<b>Сквозная привязка ТХО по регистрам учета</b> - это когда к одной записи журнала хозопераций привязывается
одна ТХО, внутри этой ТХО настроены шаблоны по разным регистрам учета.
<b>Раздельная привязка ТХО по регистрам учета</b> - это когда к одной записи журнала хозопераций привязывается
несколько ТХО по одной на каждый регистр учета, внутри каждой ТХО рассматриваются шаблоны, относящиеся
только к соответствующему регистру учета.
Для поддержки каждой из этих схем привязки разработан объектный интерфейс <b>ObjTXOBinder</b>.
Привязка осуществляется к записям журнала хозяйственных операций (таблица SoprHoz).
Передача текущей записи SoprHoz производится через буфер с позицией (см. параметр <b>buf:type$p_SoprHoz</b>).
#end
ObjInterface ObjTxoBinder;
  #doc
  определить, настроена ли сквозная привязка (= true), или раздельная привязка (= false)
  #end
  function isSimpleBinding(tiDk: word) : boolean;

  #doc
  сбросить сервер ТХО (нужно обязательно вызвать пережкаждым сеансом разноски ТХО)
  #end
  procedure ResetServer;

  #doc
  показать протокол расчетов ТХО (нужно обязательно вызывать после каждого сеанса разноски ТХО)
  #end
  procedure ProcessProtokol;

  #doc
  построить дерево привязки TXO
  #end
  function BuildTree(buf:#TSoprHozX) : boolean;

  #doc
  показать дерево привязки, чтобы сделать сложную привязку TXO
  #end
  function Bind(buf:#TSoprHozX; CurPlansSch : comp) : boolean;

  #doc
  показать список ТХО  в заданном регистре, чтобы сделать привязку TXO в заданном регистре
  #end
  function BindInReg(buf:#TSoprHozX; CurPlansSch : comp) : boolean;

  #doc
  сохранить сложную привязку в базе
  #end
  function Apply(var buf:#TSoprHozX) : boolean;

  #doc
  сохранить привязку в MagOper в заданном регистре
  #end
  function ApplyInReg(var buf:#TSoprHozX; CurPlansSch:comp) : boolean;

  #doc
  Разноска, корректировка и отмена ТХО согласно сложной привязки из дерева привязок KatH
  #end
  function RealizeOperationsTree(buf:#TSoprHozX) : boolean;

  #doc
  Разноска по шаблону выбранному в BindInReg для заданного регистра учета
  #end
  function RealizeOperationsTreeInReg(buf:#TSoprHozX; CurPlansSch:comp) : boolean;

  #doc
  Разноска ТХО согласно сложной привязки из MagOper
  #end
  function Execute(buf:#TSoprHozX) : boolean;

  #doc
  Разноска ТХО из MagOper в заданном регистре
  #end
  function ExecuteInReg(buf:#TSoprHozX; CurPlansSch:comp) : boolean;

  #doc
  при сквозной привязке - разноска ТХО только в заданном регистре учета<br>
  при раздельной привязке - разноска ТХО согласно сложной привязки из MagOper в заданном регистре учета (ExecuteInReg)
  #end
  function ExecuteAloneInReg(buf:#TSoprHozX; CurPlansSch:comp) : boolean;

  #doc
  Корректировка ТХО согласно сложной привязки из MagOper
  #end
  function ExecuteCorr(buf:#TSoprHozX; wCorParam:word) : boolean;

  #doc
  Корректировка ТХО из MagOper в заданном регистре
  #end
  function ExecuteCorrInReg(buf:#TSoprHozX; wCorParam:word; CurPlansSch:comp) : boolean;

  #doc
  при сквозной привязке - корректировка ТХО только в заданном регистре учета<br>
  при раздельной привязке - корректировка ТХО согласно сложной привязки из MagOper в заданном регистре учета (ExecuteCorrInReg)
  #end
  function ExecuteCorrAloneInReg(buf:#TSoprHozX; wCorParam:word; CurPlansSch:comp) : boolean;

  #doc
  Формирование контрольных проводок для протокола контроля проводок
  #end
  function ExecuteCheckAloneInReg(buf:#TSoprHozX; CurPlansSch:comp) : boolean;

  #doc
  Отмена ТХО по всем регистрам учета
  #end
  function UnBind(var buf:#TSoprHozX) : boolean;

  #doc
  Отмена ТХО в заданном регистре учета
  #end
  function UnBindInReg(var buf:#TSoprHozX; CurPlansSch:comp) : boolean;

  #doc
  при сквозной привязке - отмена ТХО только в заданном регистре учета <br>
  при раздельной привязке - отмена ТХО в заданном регистре учета (UnBindInReg)
  #end
  function UnBindAloneInReg(var buf:#TSoprHozX; CurPlansSch:comp) : boolean;

  #doc
  удаление оборотов, без отвязки ТXО по всем регистрам учета
  #end
  function DeleteOborots(buf:#TSoprHozX) : boolean;

  #doc
  удаление оборотов, без отвязки ТXО в заданном регистре
  #end
  function DeleteOborotsInReg(buf:#TSoprHozX; CurPlansSch:comp) : boolean;

  #doc
  при сквозной привязке - удаление оборотов без отвязки ТХО только в заданном регистре учета <br>
  при раздельной привязке - удаление оборотов без отвязки ТХО в заданном регистре учета (DeleteOborotsInReg)
  #end
  function DeleteOborotsAloneInReg(buf:#TSoprHozX; CurPlansSch:comp) : boolean;

  #doc
  удалить ТXО без удаления оборотов по всем регистрам учета
  #end
  function DeleteTXO (var buf:#TSoprHozX) : boolean;

  #doc
  удалить ТXО без удаления оборотов в заданном регистре учета
  #end
  function DeleteTXOInReg(var buf:#TSoprHozX; CurPlansSch:comp) : boolean;

  #doc
  удалить ссылку на ТXO в таблице SoprHoz (вне зависимости от настроек типа документа)
  #end
  function DeleteRefSoprHoz(var buf:#TSoprHozX) : boolean;

  #doc
  обновить ссылку на ТXO в таблице SoprHoz или MagOper (вне зависимости от настроек типа документа)
  #end
  function UpdateRef(IsSoprHoz : boolean; var buf:#TSoprHozX; CurPlansSch:comp; cHozOper : comp) : boolean;

  #doc
  для высветки в интерфесах полей "привязки ТХО"
  #end
  function ShowName(buf:#TSoprHozX) : string;

  #doc
  для высветки в интерфесах полей "привязки ТХО" - полное наименование
  #end
  function ShowFullName(buf:#TSoprHozX; var Name1,Name2,Name3 : string) : boolean;

  #doc
  для высветки в интерфесах полей "привязки ТХО" в заданном регистре учета
  #end
  function ShowNameInReg(buf:#TSoprHozX; CurPlansSch:comp) : string;

  #doc
  для высветки в интерфесах полей "привязки ТХО" в заданном регистре учета - полное наименование
  #end
  function ShowFullNameInReg(buf:#TSoprHozX; CurPlansSch:comp; var Name1, Name2, Name3 : string) : boolean;

  #doc
  для высветки "привязки ТХО" в интерфесах документов с несколькими записями SoprHoz
  #end
  function ShowNameForSoprDoc(TiDkGal,TiDkUser : word; cSoprDoc : comp) : string;

  #doc
  получить NRec ТХО по SoprHoz в заданном регистре учета
  #end
  function GetHozOperNRecInReg(buf:#TSoprHozX; CurPlansSch:comp) : comp;

  #doc
  построить дерево привязки по настройке из каталога документов
  #end
  function BuildTreeByTiDk(TiDkGal:word) : boolean;

  #doc
  программно изменить значение операции в дереве привязок
  #end
  function SetOperation(cPlansSch : comp; wOper : word; cHozOper : comp; wCorParam : word) : boolean;

  #doc
  высветка операций дерева
  #end
  function ShowTreeInfo : string;

  #doc
  иполнить операции указанные в дереве
  #end
  function RealizeAndApplyOperations(var buf:#TSoprHozX) : boolean;

  #doc
  программно усановить операцию генерации проводок на дату и отмены сторно
  #end
  function SetRemakeOperationInReg(cPlansSch : comp; Date_Storno, Date_New :date) : boolean;

  #doc
  специальный режим перегенерации проводок при изменении спецификации проведенных документов
  #end
  function ReMakeForLinkedDocPosition(buf : #TSoprHozX; wTable : word; cTable : comp) : boolean;
end;

ObjInterface ObjTxoBinderKatHMethod;
  #doc
  Позиционирование на первую запись таблицы KatH
  #end
  function GetFirstKatH : boolean;

  #doc
  Позиционирование на следующую запись таблицы KatH
  #end
  function GetNextKatH : boolean;

  #doc
  получить текущую запись таблицы KatH
  #end
  function GetKatHRecord(var Nrec      : comp;      // "Nrec"
                         var cNode     : comp;      // "cNode"
                         var Name      : string;// "Name"
                         var Mode      : word;      //  "Режим разноски"
                         var Priority  : word;       //"Приоритет регистра учета"
                         var cPlansSch : comp;       //"регистр учета"
                         var cHozOper  : comp;       //"типовая операция"
                         var Oper      : word;       //"Операция"
                         var CorParam  : word): boolean;       //"Признак корректировки"

  #doc
  обновить запись таблицы KatH для регистра учета cPlansSch
  #end
  function UpdateKatHRecord( Name      : string;// "Name"
                             Mode      : word;      //  "Режим разноски"
                             Priority  : word;       //"Приоритет регистра учета"
                             cPlansSch : comp;       //"регистр учета"
                             cHozOper  : comp;       //"типовая операция"
                             Oper      : word;       //"Операция"
                             CorParam  : word): boolean;       //"Признак корректировки"

end;

VipInterface TxoBinder
  Implements ObjTxoBinder,ObjTxoBinderKatHMethod
  #ifdef Atl51
  Licensed (Free) // (B_Hozop) - Не делать
  #end
;

#end // _TXOBIND_VIH_
TXOPick.vih

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

//********************************************************************************
//                                                        (c) корпорация Галактика
// Галактика 8.1 - Бухгалтерский контур
// Функции привязки\отвязки ТХО для документов
//********************************************************************************

#ifdef ComponentVersion
#Component "F_TXO"
#end

#include TSoprHoz.vih

#doc
Функции привязки\отвязки ТХО (только для некоторых документов)
#end
ObjInterface ObjTXOPick;
  #doc
  привязка ТXО<br>
  <pre>
  Mode - битовый параметр, по битам
    0-ой 1 - обрабатывать обороты, 0 - нет
    1-ый 1 - пакетный режим, 0 - нет
    2-ой 1 - обрабатывать все регистры учета в пакетном режиме, 0 - текущий
    cRegistr - регистр учета (план счетов в бухгалтерии)
  </pre>
  #end
  Function PickTXO(Mode : word; cRegistr : comp; var bp_SoprHoz : #TSoprHozX) : boolean;

  #doc
  множественная привязка ТXО (MarkerSH - маркер с сопрхозами)
  #end
  Function PickTXOMulti(Mode : word; var MarkerSH : longint; cRegistr : comp) : boolean;

  #doc
  отвязка ТXО
  #end
  Function DelTXO(Mode : word; cRegistr : comp; var bp_SoprHoz : #TSoprHozX) : boolean;

  #doc
  наименование ТXО для SoprHoz
  #end
  Function GetHozOperName(cRegistr : comp; bp_SoprHoz : #TSoprHozX) : string;

  #doc
  наименование ТXО для документа   (сейчас не реализована)
  #end
  Function GetHozoperNameForDoc(_cHozOper : comp) : string;

  #doc
  3 наименования из HozOper
  #end
  Function GetHozOperNames(cRegistr : comp; bp_SoprHoz : #TSoprHozX; var TXOName1, TXOName2, TXOName3 : string) : boolean;

  #doc
  определить, настроена ли сквозная привязка (= true), или раздельная привязка (= false)
  #end
  Function isSimpleBinding(tiDk: word) : boolean;
end;

VipInterface iTXOPick
  Implements ObjTXOPick
  #ifdef Atl51
  Licensed (Free) // (B_Hozop) - Не делать
  #end
;
вот текст тестового интерфейса... на оба объекта - несовпадение контрольной суммы...

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

#define ComponentVerstion

#include TXOPick.vih
#include TXOBind.vih


Interface test;
//createw view;
var bind_  : TXOBinder new;
    pick_  : iTXOPick new;

HandleEvent
cmInit:
{
    message('1');
    bind_.isSimpleBinding(551);
    message('2');
    pick_.isSimpleBinding(551);
    message('3');
    CloseInterface(0);
}
end;
END.
может у меня устаревшие какие-то? есть у кого новые? версия f_txo 8.10.29
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: TxoBind.vih

Сообщение Алексей »

никто не пробовал или у всех работает? :) дайте вихи плиз! :)

и ещё, я помню что я давно как-то использовал функцию вроде паскальную, которой передавал нрек хоз.операции и нрек ТХО и она формировала проводки по шаблонам... а что за функция вспомнить хоть убей не могу... может кто подскажет? такой вариант тоже подошёл бы.
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: TxoBind.vih

Сообщение Алексей »

Отбой, нашёл нужные функции паскаля из G_Txo.dll
TxoMakeSpecial(cSoprHoz, cHozOper, cPlansSch) - создание проводок по шаблону
TxoDeleteSpecial(cSoprHoz, cPlansSch) - удаление проводок.

единственно, надо в katsopr.chozoper и soprhoz.chozoper самому ссылки на ТХО проставлять и апдейтить.
Ответить