Про InitServKau и 7.12

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

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

Ответить
Nick
Местный житель
Сообщения: 331
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Белгород

Про InitServKau и 7.12

Сообщение Nick »

Добрый день!
Вот перекомпилирую свои отчеты под 7.12. Есть у меня один ARD-отчет, где вытаскивается много атрибутов и классификаторов - и делал я это в 7.11 с помощью команд doTXOGetExtAttr и TXOGetExClassName1. Чтобы эти команды нормально отрабатывали в начале отчета я включал сервер ТХО:
.Begin
InitServKau()
End.
а в завершении отчета выключал этот сервер:
.Begin
DoneServKau()
End.

Все работало отлично. В 7.12 в отчете все атрибуты вытаскиваются нулями, а классификаторы - пустыми значениями - т.е. не пашет отчет. Простая перекомпиляция ничего не дала. Но я заметил, что если открыть окно собственных платежных поручений из ФРО и запустить мой ADR - то все нормально работает, даже со старыми ресурсниками отчета для 7.11.
Насколько я знаю, открыв окно платежек - я запускаю этот сервер ТХО - и поэтому все пашет. Но я ведь его из отчета тоже запускал... но ничего не работало. В чем может быть причина - подскажите пожалуйста.
Хотя у меня есть отчет - присоединенная форма, где таким же образом вытаскиваю атрибуты - там все пашет без вопросов - просто перекомпилировал его под 7.12 и все.
Лицензия только на компилятор форм - может в этом причина?
Max_Fin
На пенсии
Сообщения: 797
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г. Тюмень
Контактная информация:

Сообщение Max_Fin »

Вообще-то для TXO

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

function  InitServTXO        (Word)                   : Boolean; external 'G_TXO.Dll';
procedure DoneServTXO                                          ; external 'G_TXO.Dll';
Жду выхода Вселенная 2.12!
Nick
Местный житель
Сообщения: 331
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Белгород

Сообщение Nick »

Max_Fin - спасибо, я был не прав...

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

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

Хм. у меня в версии 5.85
для инициализации:
if (not InitServKAU) {message('Ошибка обработчика КАУ');abort; exit;}
для закрытия:
DoneServKau;

И работает. Это обработчик КАУ, что бы доставать наименование аналитики, либо код аналитики...
странно, про 7.12 пока не могу сказать, ещё не перешли.
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

Сообщение Screw »

Процедурные скобки вида InitXXXX-DoneXXXX мы будем заменять захватами прикладных контекстов. Вот пример такого захвата. Этот include предлагается включать в свои исходнити вместо InitServKau, DoneServKau:
(servkau.vih)
//------------------------------------------------------------------------------
// (c) Корпорация ГАЛАКТИКА
//------------------------------------------------------------------------------
// Система : ГАЛАКТИКА
// Проект : Бухгалтерский контур
// Версия : 5.85.02
// Назначение : Захват контеста Обработки аналитки
// (заменяет "процедурные" скобки InitServKau и DoneServKau)
// Ответсвенный : Герман Юрий Эдуардович (Gera)
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
//
// Для того, чтобы работали функции обработки аналитики, такие, например как:
// GetAnyKau, GivenAnName, GetAnalitikName и т.д., необходимо выполнять т.н.
// инициализацию (захват) контекста с именем 'ServKau'.
// При этом произойдет инициализация внутренних структур Галактики,
// обеспечивающая верную работу вышеуказанных функций. Если не выполнить
// инициализацию контекста, данные функции будут возвращать пустой результат
// при любом наборе входных параметров
// Освобождение контекста произойдет автоматически после выгрузки последнего
// интерфейса, который этот контекст захватывал.
//
// Для захвата контекста достаточно подключить данный vih - файл в свой
// интерфейс.
//
// Пример. ...
// #include Contexts.vih // Обработка контекстов
// ...
// Interface ...
// ...
// #include ServKau.vih // Захват контекста 'ServKau'
// ...
//
//------------------------------------------------------------------------------
// Примечание:
// В релизах 5.85.02, 7.11.01 (а также в более ранних) инициализация контекста
// производилась с помощью вызова InitServKau, освобождение с помощью
// вызова DoneServKau. В новых релизах версий 5.8x и 7.1x эти функции
// будут оставлены для совместимости прикладного кода, НО их использование
// НЕ рекомендуется.
// В следующих версиях (8.0, ...) функции InitServKau и DoneServKau будут
// недоступны для использования.
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
// Подключать данный .vih можно ТОЛЬКО ПОСЛЕ описания Interface
//------------------------------------------------------------------------------

var ServKau_Session : IContextSession;

HandleEvent

//----------------------------------------------------------------------------
// Если захват контекста произойдет два раза - ничего страшного не будет
// точнее второй раз он просто не захватится...
//----------------------------------------------------------------------------

cmInit : {
ProcessCommand(cmGetKau);
}

cmOnVipLoad : {
ProcessCommand(cmGetKau);
}

// Вроде такая команда нигде не используется
cmGetKau : {
var CL : ContextList;
CL.Add(ServKau_Session, 'ServKau');
}

cmDone : {
ProcessCommand(cmKau5);
}

cmOnVipUnload : {
ProcessCommand(cmKau5);
}

cmKau5 : {
FreeVipInterface(ServKau_Session);
}

end;
Кому интересно, могу выслать более подробную информацию о механизме контекстов. Присылайте запросы на vitaly.korzyuk@galaktika.by
Виталий
Ответить